diff options
author | Matthew Miller <matthew@millerti.me> | 2020-05-20 08:44:12 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2020-05-20 08:44:12 -0700 |
commit | 2c51287bec3592ebf7d40d886c41da8fb51cbc21 (patch) | |
tree | 603ec65541ea461cbe78c198c34574238eebd10a /packages/server/src/assertion/parseAssertionAuthData.ts | |
parent | d9074ec54935aa2155151d2dd9dea0974f33da29 (diff) |
Initialize lerna project and move code to `server`
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, + }; +} |