diff options
Diffstat (limited to 'packages/server/src/helpers/parseAuthenticatorData.ts')
-rw-r--r-- | packages/server/src/helpers/parseAuthenticatorData.ts | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/server/src/helpers/parseAuthenticatorData.ts b/packages/server/src/helpers/parseAuthenticatorData.ts index 60bde01..991f1df 100644 --- a/packages/server/src/helpers/parseAuthenticatorData.ts +++ b/packages/server/src/helpers/parseAuthenticatorData.ts @@ -56,6 +56,14 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti intBuffer = intBuffer.slice(firstEncoded.byteLength); } + let extensionsDataBuffer: Buffer | undefined = undefined; + if (flags.ed) { + const firstDecoded = cbor.decodeFirstSync(intBuffer); + const firstEncoded = cbor.encode(firstDecoded); + extensionsDataBuffer = firstEncoded; + intBuffer = intBuffer.slice(firstEncoded.byteLength); + } + return { rpIdHash, flagsBuf, @@ -65,6 +73,7 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti aaguid, credentialID, credentialPublicKey, + extensionsDataBuffer, }; } @@ -83,4 +92,5 @@ export type ParsedAuthenticatorData = { aaguid?: Buffer; credentialID?: Buffer; credentialPublicKey?: Buffer; + extensionsDataBuffer?: Buffer; }; |