diff options
author | Jarrett Helton <jaydhelton@gmail.com> | 2021-08-24 18:40:09 -0400 |
---|---|---|
committer | Jarrett Helton <jaydhelton@gmail.com> | 2021-08-24 18:40:09 -0400 |
commit | 22260e63c0b2a91d8f5db4000304e73b2bff9277 (patch) | |
tree | 87c3ecded4690c29cb474d0d6cd69d5ac7ef5fe6 /packages/server/src/helpers/parseAuthenticatorData.ts | |
parent | 2bb27c6febdbacbd7bbe4356318a6b3fa6fd84db (diff) | |
parent | 30ecc73b9856747337523f1e367b10d9d96a4a95 (diff) |
Merge remote-tracking branch 'origin/master' into v4/rename-methods-and-types
Diffstat (limited to 'packages/server/src/helpers/parseAuthenticatorData.ts')
-rw-r--r-- | packages/server/src/helpers/parseAuthenticatorData.ts | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/server/src/helpers/parseAuthenticatorData.ts b/packages/server/src/helpers/parseAuthenticatorData.ts index 9b13195..911c9e0 100644 --- a/packages/server/src/helpers/parseAuthenticatorData.ts +++ b/packages/server/src/helpers/parseAuthenticatorData.ts @@ -45,17 +45,18 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti const firstDecoded = decodeCborFirst(authData.slice(pointer)); const firstEncoded = Buffer.from(cbor.encode(firstDecoded) as ArrayBuffer); credentialPublicKey = firstEncoded; - authData = authData.slice((pointer += firstEncoded.byteLength)); + pointer += firstEncoded.byteLength; } let extensionsDataBuffer: Buffer | undefined = undefined; if (flags.ed) { - const firstDecoded = decodeCborFirst(authData); + const firstDecoded = decodeCborFirst(authData.slice(pointer)); const firstEncoded = Buffer.from(cbor.encode(firstDecoded) as ArrayBuffer); extensionsDataBuffer = firstEncoded; - authData = authData.slice((pointer += firstEncoded.byteLength)); + pointer += firstEncoded.byteLength; } + // Pointer should be at the end of the authenticator data, otherwise too much data was sent if (authData.byteLength > pointer) { throw new Error('Leftover bytes detected while parsing authenticator data'); } |