diff options
author | Matthew Miller <matthew@millerti.me> | 2021-02-02 14:48:47 -0800 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2021-02-02 14:48:47 -0800 |
commit | 25dec97c0f7c395cf41616973e973bd08508af85 (patch) | |
tree | 30de846192fed476b9cb1fa9a058a96f1743f1be | |
parent | 406c20648cbfa6b6e47600065f0c8f7c8990d998 (diff) |
Return attestationObject as Buffer
-rw-r--r-- | packages/server/src/attestation/verifyAttestationResponse.ts | 9 | ||||
-rw-r--r-- | packages/server/src/helpers/decodeAttestationObject.ts | 7 | ||||
-rw-r--r-- | packages/typescript-types/src/index.ts | 2 |
3 files changed, 8 insertions, 10 deletions
diff --git a/packages/server/src/attestation/verifyAttestationResponse.ts b/packages/server/src/attestation/verifyAttestationResponse.ts index 109d824..be14402 100644 --- a/packages/server/src/attestation/verifyAttestationResponse.ts +++ b/packages/server/src/attestation/verifyAttestationResponse.ts @@ -111,8 +111,9 @@ export default async function verifyAttestationResponse( } } - const attestationObject = decodeAttestationObject(response.attestationObject); - const { fmt, authData, attStmt } = attestationObject; + const attestationObject = base64url.toBuffer(response.attestationObject); + const decodedAttestationObject = decodeAttestationObject(attestationObject); + const { fmt, authData, attStmt } = decodedAttestationObject; const parsedAuthData = parseAuthenticatorData(authData); const { aaguid, rpIdHash, flags, credentialID, counter, credentialPublicKey } = parsedAuthData; @@ -248,7 +249,7 @@ export default async function verifyAttestationResponse( credentialID, credentialType, userVerified: flags.uv, - attestationObject: response.attestationObject, + attestationObject, }; } @@ -279,6 +280,6 @@ export type VerifiedAttestation = { credentialID: Buffer; credentialType: string; userVerified: boolean; - attestationObject: string; + attestationObject: Buffer; }; }; diff --git a/packages/server/src/helpers/decodeAttestationObject.ts b/packages/server/src/helpers/decodeAttestationObject.ts index fd6ad21..362e8a0 100644 --- a/packages/server/src/helpers/decodeAttestationObject.ts +++ b/packages/server/src/helpers/decodeAttestationObject.ts @@ -6,11 +6,8 @@ import cbor from 'cbor'; * * @param base64AttestationObject Base64URL-encoded Attestation Object */ -export default function decodeAttestationObject( - base64AttestationObject: string, -): AttestationObject { - const toBuffer = base64url.toBuffer(base64AttestationObject); - const toCBOR: AttestationObject = cbor.decodeAllSync(toBuffer)[0]; +export default function decodeAttestationObject(attestationObject: Buffer): AttestationObject { + const toCBOR: AttestationObject = cbor.decodeAllSync(attestationObject)[0]; return toCBOR; } diff --git a/packages/typescript-types/src/index.ts b/packages/typescript-types/src/index.ts index ef6ebcc..3e14e8b 100644 --- a/packages/typescript-types/src/index.ts +++ b/packages/typescript-types/src/index.ts @@ -121,7 +121,7 @@ export type AuthenticatorDevice = { // From browser's `startAttestation()` -> AttestationCredentialJSON.transports (API L2 and up) transports?: AuthenticatorTransport[]; // If desired, store the original value of response.attestationObject for later scrutiny - attestationObject?: Base64URLString; + attestationObject?: Buffer; }; /** |