fake_fast_pair_data_encryptor.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef ASH_QUICK_PAIR_FAST_PAIR_HANDSHAKE_FAKE_FAST_PAIR_DATA_ENCRYPTOR_H_
  5. #define ASH_QUICK_PAIR_FAST_PAIR_HANDSHAKE_FAKE_FAST_PAIR_DATA_ENCRYPTOR_H_
  6. #include "ash/quick_pair/fast_pair_handshake/fast_pair_data_encryptor.h"
  7. namespace ash {
  8. namespace quick_pair {
  9. class FakeFastPairDataEncryptor : public FastPairDataEncryptor {
  10. public:
  11. FakeFastPairDataEncryptor();
  12. FakeFastPairDataEncryptor(const FakeFastPairDataEncryptor&) = delete;
  13. FakeFastPairDataEncryptor& operator=(const FakeFastPairDataEncryptor&) =
  14. delete;
  15. ~FakeFastPairDataEncryptor() override;
  16. void public_key(absl::optional<std::array<uint8_t, 64>> public_key) {
  17. public_key_ = std::move(public_key);
  18. }
  19. void encrypted_bytes(std::array<uint8_t, kBlockSizeBytes> encrypted_bytes) {
  20. encrypted_bytes_ = std::move(encrypted_bytes);
  21. }
  22. void response(absl::optional<DecryptedResponse> response) {
  23. response_ = std::move(response);
  24. }
  25. void passkey(absl::optional<DecryptedPasskey> passkey) {
  26. passkey_ = std::move(passkey);
  27. }
  28. // FastPairDataEncryptor:
  29. const std::array<uint8_t, kBlockSizeBytes> EncryptBytes(
  30. const std::array<uint8_t, kBlockSizeBytes>& bytes_to_encrypt) override;
  31. const absl::optional<std::array<uint8_t, 64>>& GetPublicKey() override;
  32. void ParseDecryptedResponse(
  33. const std::vector<uint8_t>& encrypted_response_bytes,
  34. base::OnceCallback<void(const absl::optional<DecryptedResponse>&)>
  35. callback) override;
  36. void ParseDecryptedPasskey(
  37. const std::vector<uint8_t>& encrypted_passkey_bytes,
  38. base::OnceCallback<void(const absl::optional<DecryptedPasskey>&)>
  39. callback) override;
  40. private:
  41. absl::optional<std::array<uint8_t, 64>> public_key_ = absl::nullopt;
  42. std::array<uint8_t, kBlockSizeBytes> encrypted_bytes_ = {};
  43. absl::optional<DecryptedResponse> response_ = absl::nullopt;
  44. absl::optional<DecryptedPasskey> passkey_ = absl::nullopt;
  45. };
  46. } // namespace quick_pair
  47. } // namespace ash
  48. #endif // ASH_QUICK_PAIR_FAST_PAIR_HANDSHAKE_FAKE_FAST_PAIR_DATA_ENCRYPTOR_H_