summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/parseAuthenticatorData.ts
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2022-07-22 19:11:46 -0700
committerGitHub <noreply@github.com>2022-07-22 19:11:46 -0700
commitea6ced40a0edbdd7c9be9270bb168b7f117547bd (patch)
tree23d64ae95264edecd19590c3612046d86e2e8ddc /packages/server/src/helpers/parseAuthenticatorData.ts
parentcfa689214f772a6375dcc385714982209ddf1f08 (diff)
parentc532f52e265ab272762f872f70346ce2f66f0199 (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.ts6
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;
};