diff options
5 files changed, 12 insertions, 3 deletions
diff --git a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts index e7853aa..0f92613 100644 --- a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts +++ b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts @@ -112,6 +112,7 @@ export default function verifyAttestationAndroidSafetyNet( const toReturn: VerifiedAttestation = { verified: verifySignature(signatureBuffer, signatureBaseBuffer, certificate), + userVerified: false, }; /** * END Verify Signature @@ -121,7 +122,9 @@ export default function verifyAttestationAndroidSafetyNet( if (toReturn.verified) { const authDataStruct = parseAttestationAuthData(authData); console.debug('authDataStruct:', authDataStruct); - const { counter, credentialID, COSEPublicKey } = authDataStruct; + const { counter, credentialID, COSEPublicKey, flags } = authDataStruct; + + toReturn.userVerified = flags.uv; if (!COSEPublicKey) { throw new Error('No public key was provided by authenticator'); diff --git a/packages/server/src/attestation/verifications/verifyFIDOU2F.ts b/packages/server/src/attestation/verifications/verifyFIDOU2F.ts index ad9ef63..b60597d 100644 --- a/packages/server/src/attestation/verifications/verifyFIDOU2F.ts +++ b/packages/server/src/attestation/verifications/verifyFIDOU2F.ts @@ -65,6 +65,7 @@ export default function verifyAttestationFIDOU2F( const toReturn: VerifiedAttestation = { verified: verifySignature(sig, signatureBase, publicKeyCertPEM), + userVerified: flags.uv, }; if (toReturn.verified) { diff --git a/packages/server/src/attestation/verifications/verifyNone.ts b/packages/server/src/attestation/verifications/verifyNone.ts index cafb77a..a6b742a 100644 --- a/packages/server/src/attestation/verifications/verifyNone.ts +++ b/packages/server/src/attestation/verifications/verifyNone.ts @@ -49,6 +49,7 @@ export default function verifyAttestationNone( const toReturn: VerifiedAttestation = { verified: true, + userVerified: flags.uv, authenticatorInfo: { fmt, counter, diff --git a/packages/server/src/attestation/verifications/verifyPacked.ts b/packages/server/src/attestation/verifications/verifyPacked.ts index 63b3248..04aff7b 100644 --- a/packages/server/src/attestation/verifications/verifyPacked.ts +++ b/packages/server/src/attestation/verifications/verifyPacked.ts @@ -24,7 +24,7 @@ export default function verifyAttestationPacked(attestationObject: AttestationOb const authDataStruct = parseAttestationAuthData(authData); - const { COSEPublicKey, counter, credentialID } = authDataStruct; + const { COSEPublicKey, counter, credentialID, flags } = authDataStruct; if (!COSEPublicKey) { throw new Error('No public key was provided by authenticator'); @@ -45,7 +45,10 @@ export default function verifyAttestationPacked(attestationObject: AttestationOb clientDataHash, ]); - const toReturn: VerifiedAttestation = { verified: false }; + const toReturn: VerifiedAttestation = { + verified: false, + userVerified: flags.uv, + }; const publicKey = convertCOSEtoPKCS(COSEPublicKey); if (x5c) { diff --git a/packages/typescript-types/src/index.ts b/packages/typescript-types/src/index.ts index f4cb6ae..15771b0 100644 --- a/packages/typescript-types/src/index.ts +++ b/packages/typescript-types/src/index.ts @@ -139,6 +139,7 @@ export type ClientDataJSON = { */ export type VerifiedAttestation = { verified: boolean, + userVerified: boolean; authenticatorInfo?: { fmt: ATTESTATION_FORMATS, counter: number, |