diff options
author | Matthew Miller <matthew@millerti.me> | 2022-07-22 19:11:46 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-22 19:11:46 -0700 |
commit | ea6ced40a0edbdd7c9be9270bb168b7f117547bd (patch) | |
tree | 23d64ae95264edecd19590c3612046d86e2e8ddc /packages/server/src/helpers/parseAuthenticatorData.ts | |
parent | cfa689214f772a6375dcc385714982209ddf1f08 (diff) | |
parent | c532f52e265ab272762f872f70346ce2f66f0199 (diff) |
Merge pull request #230 from agektmr/dev
Return `AuthenticationExtensionsAuthenticatorOutputs` as part of registration and authentication
Diffstat (limited to 'packages/server/src/helpers/parseAuthenticatorData.ts')
-rw-r--r-- | packages/server/src/helpers/parseAuthenticatorData.ts | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/packages/server/src/helpers/parseAuthenticatorData.ts b/packages/server/src/helpers/parseAuthenticatorData.ts index 6bf5b9a..199513a 100644 --- a/packages/server/src/helpers/parseAuthenticatorData.ts +++ b/packages/server/src/helpers/parseAuthenticatorData.ts @@ -1,5 +1,6 @@ import cbor from 'cbor'; import { decodeCborFirst } from './decodeCbor'; +import { decodeAuthenticatorExtensions, AuthenticationExtensionsAuthenticatorOutputs } from './decodeAuthenticatorExtensions'; /** * Make sense of the authData buffer contained in an Attestation @@ -52,11 +53,14 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti pointer += firstEncoded.byteLength; } + let extensionsData: AuthenticationExtensionsAuthenticatorOutputs | undefined = undefined; let extensionsDataBuffer: Buffer | undefined = undefined; + if (flags.ed) { const firstDecoded = decodeCborFirst(authData.slice(pointer)); const firstEncoded = Buffer.from(cbor.encode(firstDecoded) as ArrayBuffer); extensionsDataBuffer = firstEncoded; + extensionsData = decodeAuthenticatorExtensions(extensionsDataBuffer); pointer += firstEncoded.byteLength; } @@ -74,6 +78,7 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti aaguid, credentialID, credentialPublicKey, + extensionsData, extensionsDataBuffer, }; } @@ -95,5 +100,6 @@ export type ParsedAuthenticatorData = { aaguid?: Buffer; credentialID?: Buffer; credentialPublicKey?: Buffer; + extensionsData?: AuthenticationExtensionsAuthenticatorOutputs; extensionsDataBuffer?: Buffer; }; |