diff options
author | Matthew Miller <matthew@millerti.me> | 2020-06-30 08:10:30 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2020-06-30 08:10:30 -0700 |
commit | b3664f1e7a47cc4180c2ff2664092f9a2bc23d15 (patch) | |
tree | 94597c66cb24f0b46dcf3fbe8405669560eba5a0 /packages/server/src/helpers/parseAuthenticatorData.ts | |
parent | 6231a2af7340614dcbc1fdd8a839200a6939b8de (diff) |
Parse extensions data buffer from authData
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; }; |