From b2300328e1efadc9e674ff31ef4fb28ef7ded21c Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Thu, 11 Jul 2024 12:43:51 -0400 Subject: [PATCH] Refactor PublicKeyCredentialCreationOptions to match WebAuthn spec (#3443) --- .../PublicKeyCredentialCreationOptions.kt | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/model/PublicKeyCredentialCreationOptions.kt b/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/model/PublicKeyCredentialCreationOptions.kt index f06e2c857b..a6bcb7fb72 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/model/PublicKeyCredentialCreationOptions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/datasource/network/model/PublicKeyCredentialCreationOptions.kt @@ -30,7 +30,9 @@ data class PublicKeyCredentialCreationOptions( @SerialName("authenticatorAttachment") val authenticatorAttachment: AuthenticatorAttachment? = null, @SerialName("residentKey") - val residentKey: ResidentKeyRequirement? = null, + val residentKeyRequirement: ResidentKeyRequirement? = null, + @SerialName("userVerification") + val userVerification: UserVerificationRequirement? = null, ) { /** * Enum class representing the types of attachments associated with selection criteria. @@ -50,13 +52,38 @@ data class PublicKeyCredentialCreationOptions( @Serializable enum class ResidentKeyRequirement { /** - * User verification is preferred during selection, if supported. + * Resident keys are preferred during selection, if supported. */ @SerialName("preferred") PREFERRED, /** - * User verification is required during selection. + * Resident keys are required during selection. + */ + @SerialName("required") + REQUIRED, + } + + /** + * Enum class indicating the type of user verification requested by the relying party. + */ + @Serializable + enum class UserVerificationRequirement { + /** + * User verification should not be performed. + */ + @SerialName("discouraged") + DISCOURAGED, + + /** + * User verification is preferred, if supported by the device or application. + */ + @SerialName("preferred") + PREFERRED, + + /** + * User verification is required. If is cannot be performed the registration process + * should be terminated. */ @SerialName("required") REQUIRED,