summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/crypto
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-06-17 12:40:42 -0300
committerSebastian <sebasjm@gmail.com>2021-06-17 12:49:47 -0300
commit1c7423dbad6c7a7d8efffadb3c854d961da17336 (patch)
tree8e98a834e092f2c72f0f8f10934f696e52800165 /packages/taler-wallet-core/src/crypto
parent46f3fcbbfbf6869128e1c596b620af63b770eb93 (diff)
downloadwallet-core-1c7423dbad6c7a7d8efffadb3c854d961da17336.tar.gz
wallet-core-1c7423dbad6c7a7d8efffadb3c854d961da17336.tar.bz2
wallet-core-1c7423dbad6c7a7d8efffadb3c854d961da17336.zip
fix support with webpack{4,5} in browser environment
added missing .js extension to the imports split index use browser field in package json
Diffstat (limited to 'packages/taler-wallet-core/src/crypto')
-rw-r--r--packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts46
-rw-r--r--packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts8
-rw-r--r--packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts6
-rw-r--r--packages/taler-wallet-core/src/crypto/workers/synchronousWorker.ts6
4 files changed, 10 insertions, 56 deletions
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 eab4a2e5c..909c6a60a 100644
--- a/packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts
+++ b/packages/taler-wallet-core/src/crypto/primitives/nacl-fast.ts
@@ -5,16 +5,6 @@
// Implementation derived from TweetNaCl version 20140427.
// See for details: http://tweetnacl.cr.yp.to/
-import * as mod from "module";
-
-let require: any;
-
-if (typeof require !== "function" && mod.default && mod.default.createRequire) {
- // We need this require function to synchronously
- // import the "crypto" module in the CSPRNG initialization.
- require = mod.default.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];
@@ -2806,10 +2796,6 @@ function checkArrayTypes(...args: Uint8Array[]): void {
}
}
-function cleanup(arr: Uint8Array): void {
- for (let i = 0; i < arr.length; i++) arr[i] = 0;
-}
-
export function randomBytes(n: number): Uint8Array {
const b = new Uint8Array(n);
randombytes(b, n);
@@ -3031,35 +3017,3 @@ export function secretbox_open(
return m.subarray(crypto_secretbox_ZEROBYTES);
}
-function initPRNG() {
- // Initialize PRNG if environment provides CSPRNG.
- // If not, methods calling randombytes will throw.
- // @ts-ignore-error
- const cr = typeof self !== "undefined" ? self.crypto || self.msCrypto : null;
- if (cr && cr.getRandomValues) {
- // Browsers.
- const QUOTA = 65536;
- setPRNG(function (x: Uint8Array, n: number) {
- let i;
- const v = new Uint8Array(n);
- for (i = 0; i < n; i += QUOTA) {
- cr.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
- }
- for (i = 0; i < n; i++) x[i] = v[i];
- cleanup(v);
- });
- } else if (typeof require !== "undefined") {
- // Node.js.
- // eslint-disable-next-line @typescript-eslint/no-var-requires
- const cr = require("crypto");
- if (cr && cr.randomBytes) {
- setPRNG(function (x: Uint8Array, n: number) {
- const v = cr.randomBytes(n);
- for (let i = 0; i < n; i++) x[i] = v[i];
- cleanup(v);
- });
- }
- }
-}
-
-initPRNG();
diff --git a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
index 1969dee95..9cffef035 100644
--- a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
+++ b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
@@ -45,7 +45,7 @@ import {
MakeSyncSignatureRequest,
} from "@gnu-taler/taler-util";
import { AmountJson, Amounts } from "@gnu-taler/taler-util";
-import * as timer from "../../util/timer";
+import * as timer from "../../util/timer.js";
import {
encodeCrock,
decodeCrock,
@@ -63,9 +63,9 @@ import {
setupRefreshTransferPub,
setupTipPlanchet,
setupWithdrawPlanchet,
-} from "../talerCrypto";
-import { randomBytes } from "../primitives/nacl-fast";
-import { kdf } from "../primitives/kdf";
+} from "../talerCrypto.js";
+import { randomBytes } from "../primitives/nacl-fast.js";
+import { kdf } from "../primitives/kdf.js";
import { Timestamp, timestampTruncateToSecond } from "@gnu-taler/taler-util";
import { Logger } from "@gnu-taler/taler-util";
diff --git a/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts b/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts
index 453a46945..90016ab42 100644
--- a/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts
+++ b/packages/taler-wallet-core/src/crypto/workers/nodeThreadWorker.ts
@@ -17,10 +17,10 @@
/**
* Imports
*/
-import { CryptoWorkerFactory } from "./cryptoApi";
-import { CryptoWorker } from "./cryptoWorker";
+import { CryptoWorkerFactory } from "./cryptoApi.js";
+import { CryptoWorker } from "./cryptoWorker.js";
import os from "os";
-import { CryptoImplementation } from "./cryptoImplementation";
+import { CryptoImplementation } from "./cryptoImplementation.js";
import { Logger } from "@gnu-taler/taler-util";
const logger = new Logger("nodeThreadWorker.ts");
diff --git a/packages/taler-wallet-core/src/crypto/workers/synchronousWorker.ts b/packages/taler-wallet-core/src/crypto/workers/synchronousWorker.ts
index 5327670bd..f6b8ac5d7 100644
--- a/packages/taler-wallet-core/src/crypto/workers/synchronousWorker.ts
+++ b/packages/taler-wallet-core/src/crypto/workers/synchronousWorker.ts
@@ -14,10 +14,10 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { CryptoImplementation } from "./cryptoImplementation";
+import { CryptoImplementation } from "./cryptoImplementation.js";
-import { CryptoWorkerFactory } from "./cryptoApi";
-import { CryptoWorker } from "./cryptoWorker";
+import { CryptoWorkerFactory } from "./cryptoApi.js";
+import { CryptoWorker } from "./cryptoWorker.js";
/**
* The synchronous crypto worker produced by this factory doesn't run in the