summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/server/src/attestation/verifyAttestationResponse.ts9
-rw-r--r--packages/server/src/helpers/decodeAttestationObject.ts7
-rw-r--r--packages/typescript-types/src/index.ts2
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;
};
/**