diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/device/fido/pin.h | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/device/fido/pin.h')
-rw-r--r-- | chromium/device/fido/pin.h | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/chromium/device/fido/pin.h b/chromium/device/fido/pin.h index da7a00faa1d..88d16f09205 100644 --- a/chromium/device/fido/pin.h +++ b/chromium/device/fido/pin.h @@ -24,6 +24,16 @@ namespace device { namespace pin { +// Permission list flags. See +// https://drafts.fidoalliance.org/fido-2/stable-links-to-latest/fido-client-to-authenticator-protocol.html#permissions +enum class Permissions : uint8_t { + kMakeCredential = 0x01, + kGetAssertion = 0x02, + kCredentialManagement = 0x04, + kBioEnrollment = 0x08, + kPlatformConfiguration = 0x10, +}; + // kProtocolVersion is the version of the PIN protocol that this code // implements. constexpr int kProtocolVersion = 1; @@ -166,19 +176,42 @@ class PinTokenRequest : public TokenRequest { friend std::pair<CtapRequestCommand, base::Optional<cbor::Value>> AsCTAPRequestValuePair(const PinTokenRequest&); - private: + protected: uint8_t pin_hash_[16]; }; +class PinTokenWithPermissionsRequest : public PinTokenRequest { + public: + PinTokenWithPermissionsRequest(const std::string& pin, + const KeyAgreementResponse& peer_key, + const uint8_t permissions, + const base::Optional<std::string> rp_id); + PinTokenWithPermissionsRequest(PinTokenWithPermissionsRequest&&); + PinTokenWithPermissionsRequest(const PinTokenWithPermissionsRequest&) = + delete; + ~PinTokenWithPermissionsRequest() override; + + friend std::pair<CtapRequestCommand, base::Optional<cbor::Value>> + AsCTAPRequestValuePair(const PinTokenWithPermissionsRequest&); + + private: + uint8_t permissions_; + base::Optional<std::string> rp_id_; +}; + class UvTokenRequest : public TokenRequest { public: - explicit UvTokenRequest(const KeyAgreementResponse& peer_key); + UvTokenRequest(const KeyAgreementResponse& peer_key, + base::Optional<std::string> rp_id); UvTokenRequest(UvTokenRequest&&); UvTokenRequest(const UvTokenRequest&) = delete; virtual ~UvTokenRequest(); friend std::pair<CtapRequestCommand, base::Optional<cbor::Value>> AsCTAPRequestValuePair(const UvTokenRequest&); + + private: + base::Optional<std::string> rp_id_; }; // TokenResponse represents the response to a pin-token request. In order to |