| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_WEBAUTHN_JSON_VALUE_CONVERSIONS_H_ |
| #define COMPONENTS_WEBAUTHN_JSON_VALUE_CONVERSIONS_H_ |
| |
| #include "base/values.h" |
| #include "third_party/blink/public/mojom/webauthn/authenticator.mojom-forward.h" |
| |
| namespace webauthn { |
| |
| // Converts a `PublicKeyCredentialCreationOptions` into a `base::Value`. |
| // |
| // The output conforms to the WebAuthn `PublicKeyCredentialCreationOptionsJSON` |
| // dictionary IDL (see |
| // https://w3c.github.io/webauthn/#dictdef-publickeycredentialcreationoptionsjson). |
| base::Value ToValue( |
| const blink::mojom::PublicKeyCredentialCreationOptionsPtr& options); |
| |
| // Converts a `PublicKeyCredentialRequestOptions` into a `base::Value`. |
| // |
| // The output conforms to the WebAuthn `PublicKeyCredentialRequestOptionsJSON` |
| // dictionary IDL (see |
| // https://w3c.github.io/webauthn/#dictdef-publickeycredentialrequestoptionsjson). |
| base::Value ToValue( |
| const blink::mojom::PublicKeyCredentialRequestOptionsPtr& options); |
| |
| // Converts a `base::Value` encoding a `PublicKeyCredential` instance from a |
| // WebAuthn `get()` request into a `MakeCredentialAuthenticatorResponse`. |
| // Returns a pair of the converted message and an error string. The message will |
| // be nullptr on error, and the error string empty on success. |
| // |
| // The input is expected to conform to the WebAuthn RegistrationResponseJSON |
| // dictionary IDL (see |
| // https://w3c.github.io/webauthn/#dictdef-registrationresponsejson). |
| std::pair<blink::mojom::MakeCredentialAuthenticatorResponsePtr, std::string> |
| MakeCredentialResponseFromValue(const base::Value& value); |
| |
| // Converts a `base::Value` encoding a `PublicKeyCredential` instance from a |
| // WebAuthn `get()` request into a `GetAssertionAuthenticatorResponse`. Returns |
| // a pair of the converted message and an error string. The message will be |
| // nullptr on error, and the error string empty on success. |
| // |
| // The input is expected to conform to the WebAuthn AuthenticationResponseJSON |
| // dictionary IDL (see |
| // https://w3c.github.io/webauthn/#dictdef-authenticationresponsejson). |
| std::pair<blink::mojom::GetAssertionAuthenticatorResponsePtr, std::string> |
| GetAssertionResponseFromValue(const base::Value& value); |
| |
| } // namespace webauthn |
| |
| #endif // COMPONENTS_WEBAUTHN_JSON_VALUE_CONVERSIONS_H_ |