discoverable_credential_metadata.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2022 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 DEVICE_FIDO_DISCOVERABLE_CREDENTIAL_METADATA_H_
  5. #define DEVICE_FIDO_DISCOVERABLE_CREDENTIAL_METADATA_H_
  6. #include <vector>
  7. #include "base/component_export.h"
  8. #include "device/fido/public_key_credential_user_entity.h"
  9. namespace device {
  10. // DiscoverableCredentialMetadata contains information about a credential that
  11. // may be available silently. Specifically, the credential ID and user
  12. // information.
  13. class COMPONENT_EXPORT(DEVICE_FIDO) DiscoverableCredentialMetadata {
  14. public:
  15. DiscoverableCredentialMetadata(std::string rp_id,
  16. std::vector<uint8_t> cred_id,
  17. PublicKeyCredentialUserEntity user);
  18. DiscoverableCredentialMetadata();
  19. DiscoverableCredentialMetadata(const DiscoverableCredentialMetadata& other);
  20. DiscoverableCredentialMetadata(DiscoverableCredentialMetadata&& other);
  21. DiscoverableCredentialMetadata& operator=(
  22. const DiscoverableCredentialMetadata& other);
  23. DiscoverableCredentialMetadata& operator=(
  24. DiscoverableCredentialMetadata&& other);
  25. ~DiscoverableCredentialMetadata();
  26. bool operator==(const DiscoverableCredentialMetadata& other) const;
  27. std::string rp_id;
  28. std::vector<uint8_t> cred_id;
  29. PublicKeyCredentialUserEntity user;
  30. // system_created is set to true for credentials that were created
  31. // automatically by the system. This can happen on Windows where (at least) a
  32. // credential for login.microsoft.com can be auto-created for users.
  33. bool system_created = false;
  34. };
  35. } // namespace device
  36. #endif // DEVICE_FIDO_DISCOVERABLE_CREDENTIAL_METADATA_H_