summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/parseAuthenticatorData.ts
diff options
context:
space:
mode:
authorEiji Kitamura <agektmr@google.com>2022-07-22 15:35:41 +0900
committerEiji Kitamura <agektmr@google.com>2022-07-22 15:35:41 +0900
commit53dd14e4dc21b1d97224f6b8b5f36285ed72283a (patch)
tree418a31a7b3e870b3ec2b5b1b6ee784a21aa5d231 /packages/server/src/helpers/parseAuthenticatorData.ts
parent7fdfa35dd57b3998f0fbe78f2111434de3c3afc9 (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.ts10
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;
};