From 87c3275a771272a84bb178374b381bcaefbdacec Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 25 Jun 2023 10:42:30 -0700 Subject: Populate new values when available --- packages/browser/src/methods/startRegistration.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'packages/browser/src') diff --git a/packages/browser/src/methods/startRegistration.ts b/packages/browser/src/methods/startRegistration.ts index 546347b..5b97a5e 100644 --- a/packages/browser/src/methods/startRegistration.ts +++ b/packages/browser/src/methods/startRegistration.ts @@ -64,6 +64,26 @@ export async function startRegistration( transports = response.getTransports(); } + // L3 says this is required, but browser and webview support are still not guaranteed. + let responsePublicKeyAlgorithm: number | undefined = undefined; + if (typeof response.getPublicKeyAlgorithm === 'function') { + responsePublicKeyAlgorithm = response.getPublicKeyAlgorithm(); + } + + let responsePublicKey: string | undefined = undefined; + if (typeof response.getPublicKey === 'function') { + const _publicKey = response.getPublicKey(); + if (_publicKey !== null) { + responsePublicKey = bufferToBase64URLString(_publicKey); + } + } + + // L3 says this is required, but browser and webview support are still not guaranteed. + let responseAuthenticatorData: string | undefined; + if (typeof response.getAuthenticatorData === 'function') { + responseAuthenticatorData = bufferToBase64URLString(response.getAuthenticatorData()); + } + return { id, rawId: bufferToBase64URLString(rawId), @@ -71,6 +91,9 @@ export async function startRegistration( attestationObject: bufferToBase64URLString(response.attestationObject), clientDataJSON: bufferToBase64URLString(response.clientDataJSON), transports, + publicKeyAlgorithm: responsePublicKeyAlgorithm, + publicKey: responsePublicKey, + authenticatorData: responseAuthenticatorData, }, type, clientExtensionResults: credential.getClientExtensionResults(), -- cgit v1.2.3