summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/server/src/attestation/verifications/verifyAndroidSafetyNet.ts5
-rw-r--r--packages/server/src/attestation/verifications/verifyFIDOU2F.ts1
-rw-r--r--packages/server/src/attestation/verifications/verifyNone.ts1
-rw-r--r--packages/server/src/attestation/verifications/verifyPacked.ts7
-rw-r--r--packages/typescript-types/src/index.ts1
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,