diff options
Diffstat (limited to 'packages/server/src/helpers/generateChallenge.ts')
-rw-r--r-- | packages/server/src/helpers/generateChallenge.ts | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/server/src/helpers/generateChallenge.ts b/packages/server/src/helpers/generateChallenge.ts index 8277674..40b12a4 100644 --- a/packages/server/src/helpers/generateChallenge.ts +++ b/packages/server/src/helpers/generateChallenge.ts @@ -1,9 +1,9 @@ -import { isoCrypto } from './iso'; +import { isoCrypto } from './iso/index.ts'; /** * Generate a suitably random value to be used as an attestation or assertion challenge */ -export function generateChallenge(): Uint8Array { +export async function generateChallenge(): Promise<Uint8Array> { /** * WebAuthn spec says that 16 bytes is a good minimum: * @@ -14,7 +14,12 @@ export function generateChallenge(): Uint8Array { */ const challenge = new Uint8Array(32); - isoCrypto.getRandomValues(challenge); + await isoCrypto.getRandomValues(challenge); - return challenge; + return _generateChallengeInternals.stubThis(challenge); } + +// Make it possible to stub the return value during testing +export const _generateChallengeInternals = { + stubThis: (value: Uint8Array) => value, +}; |