diff options
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..e6aa011 --- /dev/null +++ b/packages/server/src/assertion/parseAssertionAuthData.ts @@ -0,0 +1,28 @@ +import { ParsedAssertionAuthData } from "@libTypes"; + +/** + * 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, + }; +} |