diff options
author | Matthew Miller <matthew@millerti.me> | 2023-06-25 11:16:24 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-25 11:16:24 -0700 |
commit | 67aad754c531a53bc0f9915ebdfc0e995df74a47 (patch) | |
tree | 9bf7c563778134b2e8b8df1c423f04d7e216ff37 /packages/browser/src/methods/startRegistration.ts | |
parent | ba4ce17cbc5e6aed06e8b909f47784ccd06c78d8 (diff) | |
parent | 5787bb38d60bda3bcada741353016ca328f116f0 (diff) |
Merge pull request #400 from MasterKale/feat/json-type-updatesm7n-openwrtopenwrt
feat/json-type-updates
Diffstat (limited to 'packages/browser/src/methods/startRegistration.ts')
-rw-r--r-- | packages/browser/src/methods/startRegistration.ts | 23 |
1 files changed, 23 insertions, 0 deletions
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(), |