diff options
author | Matthew Miller <matthew@millerti.me> | 2022-04-11 22:51:18 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2022-05-15 21:49:33 -0700 |
commit | f26bb73d3d620b68b902bb5f6110cf025fcb4571 (patch) | |
tree | 870ff29c6bd6aec107b7636e0377b8e29e2506f9 /packages/server/src/helpers/parseAuthenticatorData.ts | |
parent | 5c189bca1dc480e919bb82077b51829f29123375 (diff) |
Improve readability of flag parsing
Diffstat (limited to 'packages/server/src/helpers/parseAuthenticatorData.ts')
-rw-r--r-- | packages/server/src/helpers/parseAuthenticatorData.ts | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/server/src/helpers/parseAuthenticatorData.ts b/packages/server/src/helpers/parseAuthenticatorData.ts index 911c9e0..a816d15 100644 --- a/packages/server/src/helpers/parseAuthenticatorData.ts +++ b/packages/server/src/helpers/parseAuthenticatorData.ts @@ -18,11 +18,13 @@ export default function parseAuthenticatorData(authData: Buffer): ParsedAuthenti const flagsBuf = authData.slice(pointer, (pointer += 1)); const flagsInt = flagsBuf[0]; + // Bit positions can be referenced here: + // https://www.w3.org/TR/webauthn-2/#flags const flags = { - up: !!(flagsInt & 0x01), - uv: !!(flagsInt & 0x04), - at: !!(flagsInt & 0x40), - ed: !!(flagsInt & 0x80), + up: !!(flagsInt & 1 << 0), // User Presence + uv: !!(flagsInt & 1 << 2), // User Verified + at: !!(flagsInt & 1 << 6), // Attested Credential Data Present + ed: !!(flagsInt & 1 << 7), // Extension Data Present flagsInt, }; |