diff options
author | Eiji Kitamura <agektmr@google.com> | 2022-07-22 15:35:41 +0900 |
---|---|---|
committer | Eiji Kitamura <agektmr@google.com> | 2022-07-22 15:35:41 +0900 |
commit | 53dd14e4dc21b1d97224f6b8b5f36285ed72283a (patch) | |
tree | 418a31a7b3e870b3ec2b5b1b6ee784a21aa5d231 /packages/server/src/helpers/parseAuthenticatorData.ts | |
parent | 7fdfa35dd57b3998f0fbe78f2111434de3c3afc9 (diff) |
Fixes to reflect comments
- Rename `decodeExtensions` to `decodeAuthenticatorExtensions`
- Mention authenticator extension
- Include decoding in `parseAuthenticatorData`
- Add tests for `decodeAuthenticatorExtensions`
Diffstat (limited to 'packages/server/src/helpers/parseAuthenticatorData.ts')
-rw-r--r-- | packages/server/src/helpers/parseAuthenticatorData.ts | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/server/src/helpers/parseAuthenticatorData.ts b/packages/server/src/helpers/parseAuthenticatorData.ts index 6bf5b9a..e79580b 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 decodeAuthenticatorExtensionData, { AuthenticationExtensionsAuthenticatorOutputs } from './decodeAuthenticatorExtensions'; /** * Make sense of the authData buffer contained in an Attestation @@ -52,11 +53,12 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti pointer += firstEncoded.byteLength; } - let extensionsDataBuffer: Buffer | undefined = undefined; + let extensions: AuthenticationExtensionsAuthenticatorOutputs | undefined = undefined; + if (flags.ed) { const firstDecoded = decodeCborFirst(authData.slice(pointer)); const firstEncoded = Buffer.from(cbor.encode(firstDecoded) as ArrayBuffer); - extensionsDataBuffer = firstEncoded; + extensions = decodeAuthenticatorExtensionData(firstEncoded); pointer += firstEncoded.byteLength; } @@ -74,7 +76,7 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti aaguid, credentialID, credentialPublicKey, - extensionsDataBuffer, + extensions, }; } @@ -95,5 +97,5 @@ export type ParsedAuthenticatorData = { aaguid?: Buffer; credentialID?: Buffer; credentialPublicKey?: Buffer; - extensionsDataBuffer?: Buffer; + extensions?: AuthenticationExtensionsAuthenticatorOutputs; }; |