From 1c7423dbad6c7a7d8efffadb3c854d961da17336 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 17 Jun 2021 12:40:42 -0300 Subject: fix support with webpack{4,5} in browser environment added missing .js extension to the imports split index use browser field in package json --- .../src/crypto/primitives/nacl-fast.ts | 46 ---------------------- .../src/crypto/workers/cryptoImplementation.ts | 8 ++-- .../src/crypto/workers/nodeThreadWorker.ts | 6 +-- .../src/crypto/workers/synchronousWorker.ts | 6 +-- 4 files changed, 10 insertions(+), 56 deletions(-) (limited to 'packages/taler-wallet-core/src/crypto') 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 */ -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 -- cgit v1.2.3