summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/generateChallenge.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src/helpers/generateChallenge.ts')
-rw-r--r--packages/server/src/helpers/generateChallenge.ts13
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,
+};