From e2287d6d5ba01868263d8a08d45ddc60b0ab91fb Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 13 Jul 2021 14:10:38 +0200 Subject: make TextEncoder/Decoder creation lazy for polyfill to work --- .../taler-wallet-core/src/crypto/talerCrypto.ts | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'packages/taler-wallet-core/src') diff --git a/packages/taler-wallet-core/src/crypto/talerCrypto.ts b/packages/taler-wallet-core/src/crypto/talerCrypto.ts index 5739bc464..7e08d2051 100644 --- a/packages/taler-wallet-core/src/crypto/talerCrypto.ts +++ b/packages/taler-wallet-core/src/crypto/talerCrypto.ts @@ -18,22 +18,13 @@ * Native implementation of GNU Taler crypto. */ +/** + * Imports. + */ import * as nacl from "./primitives/nacl-fast.js"; import bigint from "big-integer"; import { kdf } from "./primitives/kdf.js"; -// @ts-ignore -const decoder = new TextDecoder(); -if (typeof decoder !== "object") { - throw Error("FATAL: TextDecoder not available"); -} - -// @ts-ignore -const encoder = new TextEncoder(); -if (typeof encoder !== "object") { - throw Error("FATAL: TextEncoder not available"); -} - export function getRandomBytes(n: number): Uint8Array { return nacl.randomBytes(n); } @@ -203,11 +194,22 @@ function kdfMod( } } +let encoder: any; +let decoder: any; + export function stringToBytes(s: string): Uint8Array { + if (!encoder) { + // @ts-ignore + encoder = new TextEncoder(); + } return encoder.encode(s); } export function bytesToString(b: Uint8Array): string { + if (!decoder) { + // @ts-ignore + decoder = new TextDecoder(); + } return decoder.decode(b); } -- cgit v1.2.3