mirror of
https://github.com/bitwarden/android.git
synced 2025-03-16 03:08:50 +03:00
Extract FIDO 2 user verification enum (#3614)
This commit is contained in:
parent
7cf7536857
commit
d2432f7cf7
9 changed files with 47 additions and 36 deletions
|
@ -2,14 +2,19 @@ package com.x8bit.bitwarden.data.autofill.fido2.model
|
|||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* Models the request options for a passkey request, based off the spec found at:
|
||||
* https://www.w3.org/TR/webauthn-2/#dictionary-assertion-options
|
||||
*/
|
||||
@Serializable
|
||||
data class PasskeyAssertionOptions(
|
||||
@SerialName("challenge") val challenge: String,
|
||||
@SerialName("allowCredentials") val allowCredentials: List<PublicKeyCredentialDescriptor>?,
|
||||
@SerialName("rpId") val relyingPartyId: String?,
|
||||
@SerialName("userVerification") val userVerification: String?,
|
||||
@SerialName("challenge")
|
||||
val challenge: String,
|
||||
@SerialName("allowCredentials")
|
||||
val allowCredentials: List<PublicKeyCredentialDescriptor>?,
|
||||
@SerialName("rpId")
|
||||
val relyingPartyId: String?,
|
||||
@SerialName("userVerification")
|
||||
val userVerification: UserVerificationRequirement?,
|
||||
)
|
||||
|
|
|
@ -63,31 +63,6 @@ data class PasskeyAttestationOptions(
|
|||
@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,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package com.x8bit.bitwarden.data.autofill.fido2.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* 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,
|
||||
}
|
|
@ -13,7 +13,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType
|
|||
import com.x8bit.bitwarden.data.autofill.fido2.manager.Fido2CredentialManager
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2RegisterCredentialResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PasskeyAttestationOptions.AuthenticatorSelectionCriteria.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.util.isActiveWithFido2Credentials
|
||||
import com.x8bit.bitwarden.data.platform.manager.PolicyManager
|
||||
import com.x8bit.bitwarden.data.platform.manager.SpecialCircumstanceManager
|
||||
|
|
|
@ -14,7 +14,7 @@ import com.x8bit.bitwarden.data.autofill.fido2.manager.Fido2CredentialManager
|
|||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2RegisterCredentialResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2ValidateOriginResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PasskeyAttestationOptions.AuthenticatorSelectionCriteria.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.manager.AutofillSelectionManager
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData
|
||||
import com.x8bit.bitwarden.data.autofill.util.isActiveWithFido2Credentials
|
||||
|
|
|
@ -19,7 +19,7 @@ import com.x8bit.bitwarden.data.auth.repository.model.VaultUnlockType
|
|||
import com.x8bit.bitwarden.data.autofill.fido2.manager.Fido2CredentialManager
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2RegisterCredentialResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PasskeyAttestationOptions.AuthenticatorSelectionCriteria.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.createMockFido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
|
||||
import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package com.x8bit.bitwarden.ui.vault.feature.addedit.util
|
||||
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PublicKeyCredentialDescriptor
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PasskeyAssertionOptions
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PublicKeyCredentialDescriptor
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.UserVerificationRequirement
|
||||
|
||||
/**
|
||||
* Returns a mock FIDO 2 [PasskeyAssertionOptions] object to simulate a credential
|
||||
|
@ -19,5 +20,5 @@ fun createMockPasskeyAssertionOptions(
|
|||
),
|
||||
),
|
||||
relyingPartyId = "mockRelyingPartyId-$number",
|
||||
userVerification = "mockUserVerification-$number",
|
||||
userVerification = UserVerificationRequirement.PREFERRED,
|
||||
)
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.vault.feature.addedit.util
|
|||
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PasskeyAttestationOptions
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PublicKeyCredentialDescriptor
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.UserVerificationRequirement
|
||||
|
||||
/**
|
||||
* Returns a mock FIDO 2 [PasskeyAttestationOptions] object to simulate a credential
|
||||
|
@ -10,7 +11,7 @@ import com.x8bit.bitwarden.data.autofill.fido2.model.PublicKeyCredentialDescript
|
|||
@Suppress("MaxLineLength")
|
||||
fun createMockPasskeyAttestationOptions(
|
||||
number: Int,
|
||||
userVerificationRequirement: PasskeyAttestationOptions.AuthenticatorSelectionCriteria.UserVerificationRequirement? = null,
|
||||
userVerificationRequirement: UserVerificationRequirement? = null,
|
||||
) = PasskeyAttestationOptions(
|
||||
authenticatorSelection = PasskeyAttestationOptions
|
||||
.AuthenticatorSelectionCriteria(userVerification = userVerificationRequirement),
|
||||
|
|
|
@ -16,7 +16,7 @@ import com.x8bit.bitwarden.data.autofill.fido2.manager.Fido2CredentialManager
|
|||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2RegisterCredentialResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2ValidateOriginResult
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.PasskeyAttestationOptions.AuthenticatorSelectionCriteria.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.UserVerificationRequirement
|
||||
import com.x8bit.bitwarden.data.autofill.fido2.model.createMockFido2CredentialRequest
|
||||
import com.x8bit.bitwarden.data.autofill.manager.AutofillSelectionManager
|
||||
import com.x8bit.bitwarden.data.autofill.manager.AutofillSelectionManagerImpl
|
||||
|
|
Loading…
Add table
Reference in a new issue