summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/helpers/generateChallenge.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/packages/server/src/helpers/generateChallenge.ts b/packages/server/src/helpers/generateChallenge.ts
index 3813385..b10e3d3 100644
--- a/packages/server/src/helpers/generateChallenge.ts
+++ b/packages/server/src/helpers/generateChallenge.ts
@@ -1,3 +1,5 @@
+import { webcrypto } from 'node:crypto';
+
/**
* Generate a suitably random value to be used as an attestation or assertion challenge
*/
@@ -11,7 +13,14 @@ export function generateChallenge(): Uint8Array {
* Just in case, let's double it
*/
const challenge = new Uint8Array(32);
- globalThis.crypto.getRandomValues(challenge);
+
+ if (globalThis.crypto) {
+ // We're in a browser-like runtime, use global Crypto
+ globalThis.crypto.getRandomValues(challenge);
+ } else {
+ // We're in Node, use Node's Crypto
+ webcrypto.getRandomValues(challenge);
+ }
return challenge;
}