diff options
Diffstat (limited to 'packages/server/src')
-rw-r--r-- | packages/server/src/authentication/verifyAuthenticationResponse.ts | 8 | ||||
-rw-r--r-- | packages/server/src/registration/verifyRegistrationResponse.ts | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/packages/server/src/authentication/verifyAuthenticationResponse.ts b/packages/server/src/authentication/verifyAuthenticationResponse.ts index e7ec1ec..d804224 100644 --- a/packages/server/src/authentication/verifyAuthenticationResponse.ts +++ b/packages/server/src/authentication/verifyAuthenticationResponse.ts @@ -2,6 +2,7 @@ import base64url from 'base64url'; import { AuthenticationCredentialJSON, AuthenticatorDevice, + CredentialDeviceType, } from '@simplewebauthn/typescript-types'; import decodeClientDataJSON from '../helpers/decodeClientDataJSON'; @@ -10,6 +11,7 @@ import convertPublicKeyToPEM from '../helpers/convertPublicKeyToPEM'; import verifySignature from '../helpers/verifySignature'; import parseAuthenticatorData from '../helpers/parseAuthenticatorData'; import isBase64URLString from '../helpers/isBase64URLString'; +import { parseBackupFlags } from '../helpers/parseBackupFlags'; export type VerifyAuthenticationResponseOpts = { credential: AuthenticationCredentialJSON; @@ -178,11 +180,15 @@ export default function verifyAuthenticationResponse( ); } + const { credentialDeviceType, credentialBackedUp } = parseBackupFlags(flags); + const toReturn = { verified: verifySignature(signature, signatureBase, publicKey), authenticationInfo: { newCounter: counter, credentialID: authenticator.credentialID, + credentialDeviceType, + credentialBackedUp, }, }; @@ -205,5 +211,7 @@ export type VerifiedAuthenticationResponse = { authenticationInfo: { credentialID: Buffer; newCounter: number; + credentialDeviceType: CredentialDeviceType; + credentialBackedUp: boolean; }; }; diff --git a/packages/server/src/registration/verifyRegistrationResponse.ts b/packages/server/src/registration/verifyRegistrationResponse.ts index e5c21ca..36876f8 100644 --- a/packages/server/src/registration/verifyRegistrationResponse.ts +++ b/packages/server/src/registration/verifyRegistrationResponse.ts @@ -2,6 +2,7 @@ import base64url from 'base64url'; import { RegistrationCredentialJSON, COSEAlgorithmIdentifier, + CredentialDeviceType, } from '@simplewebauthn/typescript-types'; import decodeAttestationObject, { @@ -14,6 +15,7 @@ import toHash from '../helpers/toHash'; import decodeCredentialPublicKey from '../helpers/decodeCredentialPublicKey'; import { COSEKEYS } from '../helpers/convertCOSEtoPKCS'; import convertAAGUIDToString from '../helpers/convertAAGUIDToString'; +import { parseBackupFlags } from '../helpers/parseBackupFlags'; import settingsService from '../services/settingsService'; import { supportedCOSEAlgorithmIdentifiers } from './generateRegistrationOptions'; @@ -233,6 +235,8 @@ export default async function verifyRegistrationResponse( }; if (toReturn.verified) { + const { credentialDeviceType, credentialBackedUp } = parseBackupFlags(flags); + toReturn.registrationInfo = { fmt, counter, @@ -242,6 +246,8 @@ export default async function verifyRegistrationResponse( credentialType, attestationObject, userVerified: flags.uv, + credentialDeviceType, + credentialBackedUp, }; } @@ -275,6 +281,8 @@ export type VerifiedRegistrationResponse = { credentialType: "public-key"; attestationObject: Buffer; userVerified: boolean; + credentialDeviceType: CredentialDeviceType; + credentialBackedUp: boolean; }; }; |