diff options
Diffstat (limited to 'packages/server/src')
4 files changed, 15 insertions, 8 deletions
diff --git a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts index 6f5365a..da69603 100644 --- a/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts +++ b/packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts @@ -110,7 +110,9 @@ export default function verifyAttestationAndroidSafetyNet( const authDataStruct = parseAttestationAuthData(authData); const { counter, credentialID, COSEPublicKey, flags } = authDataStruct; - toReturn.userVerified = flags.uv; + if (!flags.up) { + throw new Error('User was not present for attestation (None)'); + } if (!COSEPublicKey) { throw new Error('No public key was provided by authenticator (SafetyNet)'); @@ -120,6 +122,8 @@ export default function verifyAttestationAndroidSafetyNet( throw new Error('No credential ID was provided by authenticator (SafetyNet)'); } + toReturn.userVerified = flags.uv; + const publicKey = convertCOSEtoPKCS(COSEPublicKey); toReturn.authenticatorInfo = { diff --git a/packages/server/src/attestation/verifications/verifyFIDOU2F.ts b/packages/server/src/attestation/verifications/verifyFIDOU2F.ts index 75e664f..a509d5d 100644 --- a/packages/server/src/attestation/verifications/verifyFIDOU2F.ts +++ b/packages/server/src/attestation/verifications/verifyFIDOU2F.ts @@ -1,5 +1,5 @@ import base64url from 'base64url'; -import { AttestationObject, VerifiedAttestation, U2F_USER_PRESENTED } from '@webauthntine/typescript-types'; +import { AttestationObject, VerifiedAttestation } from '@webauthntine/typescript-types'; import toHash from '@helpers/toHash'; import convertCOSEtoPKCS from '@helpers/convertCOSEtoPKCS'; @@ -27,7 +27,7 @@ export default function verifyAttestationFIDOU2F( counter, } = authDataStruct; - if (!(flags.flagsInt & U2F_USER_PRESENTED)) { + if (!(flags.up)) { throw new Error('User was NOT present during authentication (FIDOU2F)'); } diff --git a/packages/server/src/attestation/verifications/verifyNone.ts b/packages/server/src/attestation/verifications/verifyNone.ts index 4f967d1..d6d20d0 100644 --- a/packages/server/src/attestation/verifications/verifyNone.ts +++ b/packages/server/src/attestation/verifications/verifyNone.ts @@ -24,6 +24,10 @@ export default function verifyAttestationNone( flags, } = authDataStruct; + if (!flags.up) { + throw new Error('User was not present for attestation (None)'); + } + if (!COSEPublicKey) { throw new Error('No public key was provided by authenticator (None)'); } @@ -32,11 +36,6 @@ export default function verifyAttestationNone( throw new Error('No credential ID was provided by authenticator (None)'); } - // Make sure the (U)ser (P)resent for the attestation - if (!flags.up) { - throw new Error('User was not present for attestation (None)'); - } - const publicKey = convertCOSEtoPKCS(COSEPublicKey); const toReturn: VerifiedAttestation = { diff --git a/packages/server/src/attestation/verifications/verifyPacked.ts b/packages/server/src/attestation/verifications/verifyPacked.ts index 98b4e66..497cfbe 100644 --- a/packages/server/src/attestation/verifications/verifyPacked.ts +++ b/packages/server/src/attestation/verifications/verifyPacked.ts @@ -26,6 +26,10 @@ export default function verifyAttestationPacked(attestationObject: AttestationOb const { COSEPublicKey, counter, credentialID, flags } = authDataStruct; + if (!flags.up) { + throw new Error('User was not present for attestation (Packed)'); + } + if (!COSEPublicKey) { throw new Error('No public key was provided by authenticator (Packed)'); } |