summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src/helpers/generateChallenge.ts
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2023-08-22 10:13:03 -0700
committerGitHub <noreply@github.com>2023-08-22 10:13:03 -0700
commitfefc95e4535e6ecf903f647124a492fba3fd11d6 (patch)
tree4c924d43d32fb12a780533302eaf5dee08875d75 /packages/server/src/helpers/generateChallenge.ts
parent443c341bc2163f07b93a3ef84a43294d10b826f8 (diff)
parent2935857c76d458c26701842e500f8d97d17499c5 (diff)
Merge pull request #425 from MasterKale/feat/server-esm-take-2-dnt
feat/server-esm-take-2-dnt
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,
+};