summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-06-14 18:19:18 +0200
committerFlorian Dold <florian@dold.me>2021-06-14 18:19:18 +0200
commitb4f97f4592cbab6632aff4f1ea4bedccdbf00d3a (patch)
treefd87fd5a819912f5a616c24fd2ccc951685d00ec
parent1cde390c23f2668a3777752632c48febd10a28ee (diff)
downloadwallet-core-b4f97f4592cbab6632aff4f1ea4bedccdbf00d3a.tar.gz
wallet-core-b4f97f4592cbab6632aff4f1ea4bedccdbf00d3a.tar.bz2
wallet-core-b4f97f4592cbab6632aff4f1ea4bedccdbf00d3a.zip
make CSPRNG work on ES6
-rw-r--r--packages/taler-wallet-core/package.json2
-rw-r--r--packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts12
-rw-r--r--packages/taler-wallet-core/tsconfig.json4
3 files changed, 13 insertions, 5 deletions
diff --git a/packages/taler-wallet-core/package.json b/packages/taler-wallet-core/package.json
index 9956cb312..e14ae0dd2 100644
--- a/packages/taler-wallet-core/package.json
+++ b/packages/taler-wallet-core/package.json
@@ -68,7 +68,7 @@
},
"ava": {
"files": [
- "lib/**/*test*"
+ "lib/**/*test.*"
]
}
}
diff --git a/packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts b/packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts
index acaebf546..711c83ec6 100644
--- a/packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts
+++ b/packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts
@@ -5,6 +5,12 @@
// Implementation derived from TweetNaCl version 20140427.
// See for details: http://tweetnacl.cr.yp.to/
+import { createRequire } from "module";
+
+// We need this require function to synchronously
+// import the "crypto" module in the CSPRNG initialization.
+const require = createRequire(import.meta.url);
+
const gf = function (init: number[] = []): Float64Array {
const r = new Float64Array(16);
if (init) for (let i = 0; i < init.length; i++) r[i] = init[i];
@@ -3021,7 +3027,7 @@ export function secretbox_open(
return m.subarray(crypto_secretbox_ZEROBYTES);
}
-(function () {
+function initPRNG() {
// Initialize PRNG if environment provides CSPRNG.
// If not, methods calling randombytes will throw.
// @ts-ignore-error
@@ -3050,4 +3056,6 @@ export function secretbox_open(
});
}
}
-})();
+}
+
+initPRNG();
diff --git a/packages/taler-wallet-core/tsconfig.json b/packages/taler-wallet-core/tsconfig.json
index c8f5c23b2..3da332364 100644
--- a/packages/taler-wallet-core/tsconfig.json
+++ b/packages/taler-wallet-core/tsconfig.json
@@ -4,7 +4,7 @@
"composite": true,
"declaration": true,
"declarationMap": false,
- "target": "ES6",
+ "target": "ES2017",
"module": "ESNext",
"moduleResolution": "node",
"sourceMap": true,
@@ -21,7 +21,7 @@
"esModuleInterop": true,
"importHelpers": true,
"rootDir": "./src",
- "typeRoots": ["./node_modules/@types"]
+ "typeRoots": ["./node_modules/@types"],
},
"references": [
{