aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-util/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-util/src')
-rw-r--r--packages/taler-util/src/argon2-impl.missing.ts10
-rw-r--r--packages/taler-util/src/argon2-impl.node.ts19
-rw-r--r--packages/taler-util/src/argon2.ts18
-rw-r--r--packages/taler-util/src/taler-crypto.ts18
4 files changed, 55 insertions, 10 deletions
diff --git a/packages/taler-util/src/argon2-impl.missing.ts b/packages/taler-util/src/argon2-impl.missing.ts
new file mode 100644
index 000000000..32a10fe5a
--- /dev/null
+++ b/packages/taler-util/src/argon2-impl.missing.ts
@@ -0,0 +1,10 @@
+
+export async function HashArgon2idImpl(
+ password: Uint8Array,
+ salt: Uint8Array,
+ iterations: number,
+ memorySize: number,
+ hashLength: number,
+): Promise<Uint8Array> {
+ throw new Error("Method not implemented.");
+}
diff --git a/packages/taler-util/src/argon2-impl.node.ts b/packages/taler-util/src/argon2-impl.node.ts
new file mode 100644
index 000000000..d1a36c4fe
--- /dev/null
+++ b/packages/taler-util/src/argon2-impl.node.ts
@@ -0,0 +1,19 @@
+import { argon2id } from "hash-wasm";
+
+export async function HashArgon2idImpl(
+ password: Uint8Array,
+ salt: Uint8Array,
+ iterations: number,
+ memorySize: number,
+ hashLength: number,
+): Promise<Uint8Array> {
+ return await argon2id({
+ password: password,
+ salt: salt,
+ iterations: iterations,
+ memorySize: memorySize,
+ hashLength: hashLength,
+ parallelism: 1,
+ outputType: "binary",
+ });
+}
diff --git a/packages/taler-util/src/argon2.ts b/packages/taler-util/src/argon2.ts
new file mode 100644
index 000000000..a2e04e53e
--- /dev/null
+++ b/packages/taler-util/src/argon2.ts
@@ -0,0 +1,18 @@
+import * as impl from "#argon2-impl";
+
+export async function hashArgon2id(
+ password: Uint8Array,
+ salt: Uint8Array,
+ iterations: number,
+ memorySize: number,
+ hashLength: number,
+): Promise<Uint8Array> {
+ return await impl.HashArgon2idImpl(
+ password,
+ salt,
+ iterations,
+ memorySize,
+ hashLength,
+ );
+}
+
diff --git a/packages/taler-util/src/taler-crypto.ts b/packages/taler-util/src/taler-crypto.ts
index cabe2b7d0..408b7e7c2 100644
--- a/packages/taler-util/src/taler-crypto.ts
+++ b/packages/taler-util/src/taler-crypto.ts
@@ -24,7 +24,7 @@
import * as nacl from "./nacl-fast.js";
import { hmacSha256, hmacSha512 } from "./kdf.js";
import bigint from "big-integer";
-import { argon2id } from "hash-wasm";
+import * as argon2 from "./argon2.js";
import {
CoinEnvelope,
CoinPublicKeyString,
@@ -277,15 +277,13 @@ export async function hashArgon2id(
hashLength,
);
}
- return await argon2id({
- password: password,
- salt: salt,
- iterations: iterations,
- memorySize: memorySize,
- hashLength: hashLength,
- parallelism: 1,
- outputType: "binary",
- });
+ return await argon2.hashArgon2id(
+ password,
+ salt,
+ iterations,
+ memorySize,
+ hashLength,
+ );
}
export function eddsaGetPublic(eddsaPriv: Uint8Array): Uint8Array {