diff options
author | Matthew Miller <matthew@millerti.me> | 2020-05-22 10:34:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-22 10:34:40 -0700 |
commit | 27d2104bfd297ac6e6e6ffe17ad12ad9dcd1bd3d (patch) | |
tree | c6c005074f78ef079d1195acbf03f6abd31bc562 /packages/server/src/assertion/parseAssertionAuthData.ts | |
parent | d9074ec54935aa2155151d2dd9dea0974f33da29 (diff) | |
parent | 1038e1a9bb04a1b638248ff6cf7d57c21304a668 (diff) |
Merge pull request #1 from MasterKale/feature/lerna
feature/monorepo
Diffstat (limited to 'packages/server/src/assertion/parseAssertionAuthData.ts')
-rw-r--r-- | packages/server/src/assertion/parseAssertionAuthData.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/server/src/assertion/parseAssertionAuthData.ts b/packages/server/src/assertion/parseAssertionAuthData.ts new file mode 100644 index 0000000..bdd636a --- /dev/null +++ b/packages/server/src/assertion/parseAssertionAuthData.ts @@ -0,0 +1,28 @@ +import { ParsedAssertionAuthData } from "@webauthntine/typescript-types"; + +/** + * Make sense of the authData buffer contained in an Assertion + */ +export default function parseAssertionAuthData(authData: Buffer): ParsedAssertionAuthData { + let intBuffer = authData; + + const rpIdHash = intBuffer.slice(0, 32); + intBuffer = intBuffer.slice(32); + + const flagsBuf = intBuffer.slice(0, 1); + intBuffer = intBuffer.slice(1); + + const flags = flagsBuf[0]; + const counterBuf = intBuffer.slice(0, 4); + intBuffer = intBuffer.slice(4); + + const counter = counterBuf.readUInt32BE(0); + + return { + rpIdHash, + flagsBuf, + flags, + counter, + counterBuf, + }; +} |