diff options
author | Matthew Miller <matthew@millerti.me> | 2021-08-02 11:23:20 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2021-08-02 11:23:20 -0700 |
commit | e317f261e61417e21b7c06da182befaf096b3d89 (patch) | |
tree | 72cf10d1ac8f8ce063321b5c3a0ad0eb60dd6865 | |
parent | 06097255f04fd043865d721a6eeb43e6b350a012 (diff) |
Refactor attestation format type
-rw-r--r-- | packages/server/src/attestation/verifyAttestationResponse.ts | 18 | ||||
-rw-r--r-- | packages/server/src/helpers/decodeAttestationObject.ts | 19 |
2 files changed, 18 insertions, 19 deletions
diff --git a/packages/server/src/attestation/verifyAttestationResponse.ts b/packages/server/src/attestation/verifyAttestationResponse.ts index 0dc200f..5e6a203 100644 --- a/packages/server/src/attestation/verifyAttestationResponse.ts +++ b/packages/server/src/attestation/verifyAttestationResponse.ts @@ -4,7 +4,7 @@ import { COSEAlgorithmIdentifier, } from '@simplewebauthn/typescript-types'; -import decodeAttestationObject, { ATTESTATION_FORMAT } from '../helpers/decodeAttestationObject'; +import decodeAttestationObject, { AttestationFormat } from '../helpers/decodeAttestationObject'; import decodeClientDataJSON from '../helpers/decodeClientDataJSON'; import parseAuthenticatorData from '../helpers/parseAuthenticatorData'; import toHash from '../helpers/toHash'; @@ -179,7 +179,7 @@ export default async function verifyAttestationResponse( * Verification can only be performed when attestation = 'direct' */ let verified = false; - if (fmt === ATTESTATION_FORMAT.FIDO_U2F) { + if (fmt === 'fido-u2f') { verified = verifyFIDOU2F({ attStmt, clientDataHash, @@ -188,7 +188,7 @@ export default async function verifyAttestationResponse( rpIdHash, aaguid, }); - } else if (fmt === ATTESTATION_FORMAT.PACKED) { + } else if (fmt === 'packed') { verified = await verifyPacked({ attStmt, authData, @@ -196,14 +196,14 @@ export default async function verifyAttestationResponse( credentialPublicKey, aaguid, }); - } else if (fmt === ATTESTATION_FORMAT.ANDROID_SAFETYNET) { + } else if (fmt === 'android-safetynet') { verified = await verifyAndroidSafetynet({ attStmt, authData, clientDataHash, aaguid, }); - } else if (fmt === ATTESTATION_FORMAT.ANDROID_KEY) { + } else if (fmt === 'android-key') { verified = await verifyAndroidKey({ attStmt, authData, @@ -211,7 +211,7 @@ export default async function verifyAttestationResponse( credentialPublicKey, aaguid, }); - } else if (fmt === ATTESTATION_FORMAT.TPM) { + } else if (fmt === 'tpm') { verified = await verifyTPM({ aaguid, attStmt, @@ -219,14 +219,14 @@ export default async function verifyAttestationResponse( credentialPublicKey, clientDataHash, }); - } else if (fmt === ATTESTATION_FORMAT.APPLE) { + } else if (fmt === 'apple') { verified = await verifyApple({ attStmt, authData, clientDataHash, credentialPublicKey, }); - } else if (fmt === ATTESTATION_FORMAT.NONE) { + } else if (fmt === 'none') { if (Object.keys(attStmt).length > 0) { throw new Error('None attestation had unexpected attestation statement'); } @@ -275,7 +275,7 @@ export default async function verifyAttestationResponse( export type VerifiedAttestation = { verified: boolean; attestationInfo?: { - fmt: ATTESTATION_FORMAT; + fmt: AttestationFormat; counter: number; aaguid: string; credentialPublicKey: Buffer; diff --git a/packages/server/src/helpers/decodeAttestationObject.ts b/packages/server/src/helpers/decodeAttestationObject.ts index 8b69c90..3aa39d7 100644 --- a/packages/server/src/helpers/decodeAttestationObject.ts +++ b/packages/server/src/helpers/decodeAttestationObject.ts @@ -10,18 +10,17 @@ export default function decodeAttestationObject(attestationObject: Buffer): Atte return toCBOR; } -export enum ATTESTATION_FORMAT { - FIDO_U2F = 'fido-u2f', - PACKED = 'packed', - ANDROID_SAFETYNET = 'android-safetynet', - ANDROID_KEY = 'android-key', - TPM = 'tpm', - APPLE = 'apple', - NONE = 'none', -} +export type AttestationFormat = + | 'fido-u2f' + | 'packed' + | 'android-safetynet' + | 'android-key' + | 'tpm' + | 'apple' + | 'none'; export type AttestationObject = { - fmt: ATTESTATION_FORMAT; + fmt: AttestationFormat; attStmt: AttestationStatement; authData: Buffer; }; |