[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated (0b6060283 -> 0ac5dba08)
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated (0b6060283 -> 0ac5dba08) |
Date: |
Wed, 26 Jul 2023 20:10:45 +0200 |
This is an automated email from the git hooks/post-receive script.
ivan-avalos pushed a change to branch master
in repository wallet-core.
from 0b6060283 wallet-core: task loop logging
new ef51ba983 WIP: initial work for Anastasis in qtart
new e0f32dc89 taler-util: import hash-wasm only when building for Node
new 72a0da7bb anastasis-core: tsconfig
new 5a91ec2da Move anastasis CLI into separate package
new 0f6310bba wallet-core-embedded: add initial states to Anastasis handler
new 0ac5dba08 taler-wallet-embedded: add argon2id test
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
Makefile | 9 ++-
bootstrap | 1 +
packages/anastasis-cli/Makefile | 41 +++++++++++++
packages/anastasis-cli/README.md | 4 ++
.../bin/anastasis-cli.mjs} | 5 +-
.../build-node.mjs | 2 +-
.../package.json | 10 +--
.../src/import-meta-url.js | 0
.../src/cli.ts => anastasis-cli/src/index.ts} | 2 +-
.../tsconfig.json | 3 +
packages/anastasis-core/package.json | 1 -
packages/anastasis-core/src/cli-entry.ts | 7 ---
packages/anastasis-core/src/crypto.ts | 34 +++++------
packages/anastasis-core/src/index.node.ts | 2 -
packages/anastasis-core/tsconfig.json | 4 +-
packages/taler-util/package.json | 9 ++-
packages/taler-util/src/argon2-impl.missing.ts | 10 +++
packages/taler-util/src/argon2-impl.node.ts | 19 ++++++
packages/taler-util/src/argon2.ts | 18 ++++++
packages/taler-util/src/taler-crypto.ts | 33 ++++++++++
packages/taler-wallet-embedded/package.json | 3 +-
packages/taler-wallet-embedded/src/wallet-qjs.ts | 71 +++++++++++++++++++++-
pnpm-lock.yaml | 48 ++++++++++++---
tsconfig.build.json | 3 +
24 files changed, 283 insertions(+), 56 deletions(-)
create mode 100644 packages/anastasis-cli/Makefile
create mode 100644 packages/anastasis-cli/README.md
copy packages/{taler-wallet-cli/bin/taler-wallet-cli.mjs =>
anastasis-cli/bin/anastasis-cli.mjs} (88%)
copy packages/{taler-wallet-cli => anastasis-cli}/build-node.mjs (97%)
copy packages/{taler-wallet-cli => anastasis-cli}/package.json (81%)
copy packages/{taler-harness => anastasis-cli}/src/import-meta-url.js (100%)
rename packages/{anastasis-core/src/cli.ts => anastasis-cli/src/index.ts} (97%)
copy packages/{anastasis-core => anastasis-cli}/tsconfig.json (93%)
delete mode 100644 packages/anastasis-core/src/cli-entry.ts
delete mode 100644 packages/anastasis-core/src/index.node.ts
create mode 100644 packages/taler-util/src/argon2-impl.missing.ts
create mode 100644 packages/taler-util/src/argon2-impl.node.ts
create mode 100644 packages/taler-util/src/argon2.ts
diff --git a/Makefile b/Makefile
index 85c332194..f493c24e9 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@ dist:
$(git-archive-all) \
--include ./configure \
--include ./packages/taler-wallet-cli/configure \
+ --include ./packages/anastasis-cli/configure \
--include ./packages/demobank-ui/configure \
--include ./packages/taler-harness/configure \
--include ./packages/merchant-backoffice-ui/configure \
@@ -121,15 +122,17 @@ install:
pnpm install --frozen-lockfile
pnpm run compile
make -C packages/taler-wallet-cli TOPLEVEL=yes install-nodeps
+ make -C packages/anastasis-cli TOPLEVEL=yes install-nodeps
make -C packages/taler-harness TOPLEVEL=yes install-nodeps
make -C packages/demobank-ui TOPLEVEL=yes install-nodeps
make -C packages/merchant-backoffice-ui TOPLEVEL=yes install-nodeps
make -C packages/aml-backoffice-ui TOPLEVEL=yes install-nodeps
.PHONY: install-tools
-# Install taler-wallet-cli and taler-harness
+# Install taler-wallet-cli, anastasis-cli and taler-harness
install-tools:
- pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-cli...
--filter @gnu-taler/taler-harness...
- pnpm run --filter @gnu-taler/taler-wallet-cli... --filter
@gnu-taler/taler-harness... compile
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-cli...
--filder @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness...
+ pnpm run --filter @gnu-taler/taler-wallet-cli... --filter
@gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness... compile
make -C packages/taler-wallet-cli TOPLEVEL=yes install-nodeps
+ make -C packages/anastasis-cli TOPLEVEL=yes install-nodeps
make -C packages/taler-harness TOPLEVEL=yes install-nodeps
diff --git a/bootstrap b/bootstrap
index d5e3838d6..4b03f0921 100755
--- a/bootstrap
+++ b/bootstrap
@@ -27,6 +27,7 @@ copy_configure() {
our_configure=build-system/taler-build-scripts/configure
copy_configure "$our_configure" ./configure
copy_configure "$our_configure" ./packages/taler-wallet-cli/configure
+copy_configure "$our_configure" ./packages/anastasis-cli/configure
copy_configure "$our_configure" ./packages/demobank-ui/configure
copy_configure "$our_configure" ./packages/merchant-backoffice-ui/configure
copy_configure "$our_configure" ./packages/taler-harness/configure
diff --git a/packages/anastasis-cli/Makefile b/packages/anastasis-cli/Makefile
new file mode 100644
index 000000000..292f7000f
--- /dev/null
+++ b/packages/anastasis-cli/Makefile
@@ -0,0 +1,41 @@
+# This Makefile has been placed in the public domain.
+
+ifeq ($(TOPLEVEL), yes)
+ $(info top-level build)
+ -include ../../.config.mk
+else
+ $(info package-level build)
+ -include ../../.config.mk
+ -include .config.mk
+endif
+
+$(info prefix is $(prefix))
+
+all:
+ @echo use 'make install' to build and install anastasis-cli
+
+ifndef prefix
+.PHONY: warn-noprefix install
+warn-noprefix:
+ @echo "no prefix configured, did you run ./configure?"
+install: warn-noprefix
+else
+install_target = $(prefix)/lib/anastasis-cli
+.PHONY: install install-nodeps deps
+install-nodeps:
+ ./build-node.mjs
+ install -d $(prefix)/bin
+ install -d $(install_target)/bin
+ install -d $(install_target)/node_modules/anastasis-cli
+ install -d $(install_target)/node_modules/anastasis-cli/bin
+ install -d $(install_target)/node_modules/anastasis-cli/dist
+ install ./dist/anastasis-cli-bundled.cjs
$(install_target)/node_modules/anastasis-cli/dist/
+ install ./dist/anastasis-cli-bundled.cjs.map
$(install_target)/node_modules/anastasis-cli/dist/
+ install ./bin/anastasis-cli.mjs
$(install_target)/node_modules/anastasis-cli/bin/
+ ln -sf
$(install_target)/node_modules/anastasis-cli/bin/anastasis-cli.mjs
$(prefix)/bin/anastasis-cli
+deps:
+ pnpm install --frozen-lockfile --filter @gnu-taler/anastasis-cli...
+install:
+ $(MAKE) deps
+ $(MAKE) install-nodeps
+endif
diff --git a/packages/anastasis-cli/README.md b/packages/anastasis-cli/README.md
new file mode 100644
index 000000000..a48fd3c51
--- /dev/null
+++ b/packages/anastasis-cli/README.md
@@ -0,0 +1,4 @@
+# anastasis-cli
+
+This package provides `anastasis-cli`, the command-line interface for the
+Anastasis backup system.
diff --git a/packages/taler-wallet-cli/bin/taler-wallet-cli.mjs
b/packages/anastasis-cli/bin/anastasis-cli.mjs
similarity index 88%
copy from packages/taler-wallet-cli/bin/taler-wallet-cli.mjs
copy to packages/anastasis-cli/bin/anastasis-cli.mjs
index 082007632..7506e4ba7 100755
--- a/packages/taler-wallet-cli/bin/taler-wallet-cli.mjs
+++ b/packages/anastasis-cli/bin/anastasis-cli.mjs
@@ -15,5 +15,6 @@
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { main } from '../dist/taler-wallet-cli-bundled.cjs';
-main();
+import { reducerCliMain } from '../dist/anastasis-cli-bundled.cjs';
+
+reducerCliMain();
diff --git a/packages/taler-wallet-cli/build-node.mjs
b/packages/anastasis-cli/build-node.mjs
similarity index 97%
copy from packages/taler-wallet-cli/build-node.mjs
copy to packages/anastasis-cli/build-node.mjs
index 76426bc41..04b1c5256 100755
--- a/packages/taler-wallet-cli/build-node.mjs
+++ b/packages/anastasis-cli/build-node.mjs
@@ -49,7 +49,7 @@ function git_hash() {
export const buildConfig = {
entryPoints: ["src/index.ts"],
- outfile: "dist/taler-wallet-cli-bundled.cjs",
+ outfile: "dist/anastasis-cli-bundled.cjs",
bundle: true,
minify: false,
target: ["es2020"],
diff --git a/packages/taler-wallet-cli/package.json
b/packages/anastasis-cli/package.json
similarity index 81%
copy from packages/taler-wallet-cli/package.json
copy to packages/anastasis-cli/package.json
index 36201759e..1821cd696 100644
--- a/packages/taler-wallet-cli/package.json
+++ b/packages/anastasis-cli/package.json
@@ -1,6 +1,6 @@
{
- "name": "@gnu-taler/taler-wallet-cli",
- "version": "0.9.3-dev.17",
+ "name": "@gnu-taler/anastasis-cli",
+ "version": "0.0.1",
"description": "",
"engines": {
"node": ">=0.18.0"
@@ -12,7 +12,7 @@
"author": "Florian Dold",
"license": "GPL-3.0",
"bin": {
- "taler-wallet-cli": "./bin/taler-wallet-cli.mjs"
+ "anastasis-cli": "./bin/anastasis-cli.mjs"
},
"type": "module",
"scripts": {
@@ -38,7 +38,7 @@
},
"dependencies": {
"@gnu-taler/taler-util": "workspace:*",
- "@gnu-taler/taler-wallet-core": "workspace:*",
+ "@gnu-taler/anastasis-core": "workspace:*",
"tslib": "^2.5.3"
}
-}
\ No newline at end of file
+}
diff --git a/packages/taler-harness/src/import-meta-url.js
b/packages/anastasis-cli/src/import-meta-url.js
similarity index 100%
copy from packages/taler-harness/src/import-meta-url.js
copy to packages/anastasis-cli/src/import-meta-url.js
diff --git a/packages/anastasis-core/src/cli.ts
b/packages/anastasis-cli/src/index.ts
similarity index 97%
rename from packages/anastasis-core/src/cli.ts
rename to packages/anastasis-cli/src/index.ts
index df53d6bd0..560574276 100644
--- a/packages/anastasis-core/src/cli.ts
+++ b/packages/anastasis-cli/src/index.ts
@@ -3,7 +3,7 @@ import {
getBackupStartState,
getRecoveryStartState,
reduceAction,
-} from "./index.js";
+} from "@gnu-taler/anastasis-core";
import fs from "fs";
export const reducerCli = clk
diff --git a/packages/anastasis-core/tsconfig.json
b/packages/anastasis-cli/tsconfig.json
similarity index 93%
copy from packages/anastasis-core/tsconfig.json
copy to packages/anastasis-cli/tsconfig.json
index 9d5682b2c..83da34277 100644
--- a/packages/anastasis-core/tsconfig.json
+++ b/packages/anastasis-cli/tsconfig.json
@@ -23,6 +23,9 @@
},
"include": ["src/**/*"],
"references": [
+ {
+ "path": "../anastasis-core/"
+ },
{
"path": "../taler-util/"
}
diff --git a/packages/anastasis-core/package.json
b/packages/anastasis-core/package.json
index d45d28129..c3a7106fb 100644
--- a/packages/anastasis-core/package.json
+++ b/packages/anastasis-core/package.json
@@ -23,7 +23,6 @@
"dependencies": {
"@gnu-taler/taler-util": "workspace:*",
"fflate": "^0.7.4",
- "hash-wasm": "^4.9.0",
"tslib": "^2.5.3"
},
"ava": {
diff --git a/packages/anastasis-core/src/cli-entry.ts
b/packages/anastasis-core/src/cli-entry.ts
deleted file mode 100644
index 8eea42a18..000000000
--- a/packages/anastasis-core/src/cli-entry.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { reducerCliMain } from "./cli.js";
-
-async function r() {
- reducerCliMain();
-}
-
-r();
diff --git a/packages/anastasis-core/src/crypto.ts
b/packages/anastasis-core/src/crypto.ts
index 5e45f995f..3a9483aa1 100644
--- a/packages/anastasis-core/src/crypto.ts
+++ b/packages/anastasis-core/src/crypto.ts
@@ -26,8 +26,8 @@ import {
secretbox_open,
hash,
bytesToString,
+ hashArgon2id,
} from "@gnu-taler/taler-util";
-import { argon2id } from "hash-wasm";
export type Flavor<T, FlavorT extends string> = T & {
_flavor?: `anastasis.${FlavorT}`;
@@ -71,15 +71,13 @@ export async function userIdentifierDerive(
): Promise<UserIdentifier> {
const canonIdData = canonicalJson(idData);
const hashInput = stringToBytes(canonIdData);
- const result = await argon2id({
- hashLength: 64,
- iterations: 3,
- memorySize: 1024 /* kibibytes */,
- parallelism: 1,
- password: hashInput,
- salt: decodeCrock(serverSalt),
- outputType: "binary",
- });
+ const result = await hashArgon2id(
+ hashInput, // password
+ decodeCrock(serverSalt), // salt
+ 3, // iterations
+ 1024, // memoryLimit (kibibytes)
+ 64, // hashLength
+ );
return encodeCrock(result);
}
@@ -343,15 +341,13 @@ export async function secureAnswerHash(
truthUuid: TruthUuid,
questionSalt: TruthSalt,
): Promise<SecureAnswerHash> {
- const powResult = await argon2id({
- hashLength: 64,
- iterations: 3,
- memorySize: 1024 /* kibibytes */,
- parallelism: 1,
- password: stringToBytes(answer),
- salt: decodeCrock(questionSalt),
- outputType: "binary",
- });
+ const powResult = await hashArgon2id(
+ stringToBytes(answer), // password
+ decodeCrock(questionSalt), // salt
+ 3, // iterations
+ 1024, // memorySize (kibibytes)
+ 64, // hashLength
+ );
const kdfResult = kdfKw({
outputLength: 64,
salt: decodeCrock(truthUuid),
diff --git a/packages/anastasis-core/src/index.node.ts
b/packages/anastasis-core/src/index.node.ts
deleted file mode 100644
index d08906a22..000000000
--- a/packages/anastasis-core/src/index.node.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./index.js";
-export { reducerCliMain } from "./cli.js";
diff --git a/packages/anastasis-core/tsconfig.json
b/packages/anastasis-core/tsconfig.json
index 9d5682b2c..44a159836 100644
--- a/packages/anastasis-core/tsconfig.json
+++ b/packages/anastasis-core/tsconfig.json
@@ -2,11 +2,11 @@
"compileOnSave": true,
"compilerOptions": {
"composite": true,
- "target": "ES2018",
+ "target": "ES2020",
"module": "ESNext",
"moduleResolution": "Node16",
"sourceMap": true,
- "lib": ["es6"],
+ "lib": ["ES2020"],
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"strict": true,
diff --git a/packages/taler-util/package.json b/packages/taler-util/package.json
index 40fa94923..73eed814c 100644
--- a/packages/taler-util/package.json
+++ b/packages/taler-util/package.json
@@ -49,6 +49,10 @@
"node": "./lib/http-impl.node.js",
"qtart": "./lib/http-impl.qtart.js",
"default": "./lib/http-impl.missing.js"
+ },
+ "#argon2-impl": {
+ "node": "./lib/argon2-impl.node.js",
+ "default": "./lib/argon2-impl.missing.js"
}
},
"scripts": {
@@ -69,11 +73,12 @@
"big-integer": "^1.6.51",
"fflate": "^0.7.4",
"jed": "^1.1.1",
- "tslib": "^2.5.3"
+ "tslib": "^2.5.3",
+ "hash-wasm": "^4.9.0"
},
"ava": {
"files": [
"lib/**/*test.js"
]
}
-}
\ No newline at end of file
+}
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 e3f7d49a8..408b7e7c2 100644
--- a/packages/taler-util/src/taler-crypto.ts
+++ b/packages/taler-util/src/taler-crypto.ts
@@ -24,6 +24,7 @@
import * as nacl from "./nacl-fast.js";
import { hmacSha256, hmacSha512 } from "./kdf.js";
import bigint from "big-integer";
+import * as argon2 from "./argon2.js";
import {
CoinEnvelope,
CoinPublicKeyString,
@@ -69,6 +70,13 @@ interface NativeTartLib {
encodeCrock(buf: Uint8Array | ArrayBuffer): string;
decodeCrock(str: string): Uint8Array;
hash(buf: Uint8Array): Uint8Array;
+ hashArgon2id(
+ password: Uint8Array,
+ salt: Uint8Array,
+ iterations: number,
+ memorySize: number,
+ hashLength: number,
+ ): Uint8Array;
eddsaGetPublic(buf: Uint8Array): Uint8Array;
ecdheGetPublic(buf: Uint8Array): Uint8Array;
eddsaSign(msg: Uint8Array, priv: Uint8Array): Uint8Array;
@@ -253,6 +261,31 @@ export function decodeCrock(encoded: string): Uint8Array {
return out;
}
+export async function hashArgon2id(
+ password: Uint8Array,
+ salt: Uint8Array,
+ iterations: number,
+ memorySize: number,
+ hashLength: number,
+): Promise<Uint8Array> {
+ if (tart) {
+ return tart.hashArgon2id(
+ password,
+ salt,
+ iterations,
+ memorySize,
+ hashLength,
+ );
+ }
+ return await argon2.hashArgon2id(
+ password,
+ salt,
+ iterations,
+ memorySize,
+ hashLength,
+ );
+}
+
export function eddsaGetPublic(eddsaPriv: Uint8Array): Uint8Array {
if (tart) {
return tart.eddsaGetPublic(eddsaPriv);
diff --git a/packages/taler-wallet-embedded/package.json
b/packages/taler-wallet-embedded/package.json
index 74616c69b..b96edff25 100644
--- a/packages/taler-wallet-embedded/package.json
+++ b/packages/taler-wallet-embedded/package.json
@@ -36,6 +36,7 @@
"@gnu-taler/idb-bridge": "workspace:*",
"@gnu-taler/taler-util": "workspace:*",
"@gnu-taler/taler-wallet-core": "workspace:*",
+ "@gnu-taler/anastasis-core": "workspace:*",
"tslib": "^2.5.3"
}
-}
\ No newline at end of file
+}
diff --git a/packages/taler-wallet-embedded/src/wallet-qjs.ts
b/packages/taler-wallet-embedded/src/wallet-qjs.ts
index 2b1c8a108..04efb458a 100644
--- a/packages/taler-wallet-embedded/src/wallet-qjs.ts
+++ b/packages/taler-wallet-embedded/src/wallet-qjs.ts
@@ -41,6 +41,15 @@ import {
Wallet,
WalletApiOperation,
} from "@gnu-taler/taler-wallet-core";
+import {
+ reduceAction,
+ getBackupStartState,
+ getRecoveryStartState,
+ ReducerState,
+} from "@gnu-taler/anastasis-core";
+import {
+ userIdentifierDerive,
+} from "@gnu-taler/anastasis-core/lib/crypto.js";
setGlobalLogLevelFromString("trace");
@@ -169,6 +178,38 @@ class NativeWalletMessageHandler {
}
}
+/**
+ * Handle an Anastasis request from the native app.
+ */
+async function handleAnastasisRequest(
+ operation: string,
+ id: string,
+ args: any,
+): Promise<CoreApiResponse> {
+ const wrapSuccessResponse = (result: unknown): CoreApiResponseSuccess => {
+ return {
+ type: "response",
+ id,
+ operation,
+ result,
+ };
+ };
+
+ switch (operation) {
+ case "anastasisReduce":
+ // TODO: do some input validation here
+ let req = args ?? {};
+ let res = await reduceAction(req.state, req.action, req.args ?? {});
+ // For now, this will return "success" even if the wrapped Anastasis
+ // response is a ReducerStateError.
+ return wrapSuccessResponse(res);
+ case "anastasisStartBackup":
+ return wrapSuccessResponse(await getBackupStartState());
+ case "anastasisStartRecovery":
+ return wrapSuccessResponse(await getRecoveryStartState());
+ }
+}
+
export function installNativeWalletListener(): void {
setGlobalLogLevelFromString("trace");
const handler = new NativeWalletMessageHandler();
@@ -190,7 +231,11 @@ export function installNativeWalletListener(): void {
let respMsg: CoreApiResponse;
try {
- respMsg = await handler.handleMessage(operation, id, msg.args ?? {});
+ if (msg.operation.startsWith("anastasis")) {
+ respMsg = await handleAnastasisRequest(operation, id, msg.args ?? {});
+ } else {
+ respMsg = await handler.handleMessage(operation, id, msg.args ?? {});
+ }
} catch (e) {
respMsg = {
type: "error",
@@ -265,7 +310,31 @@ export async function testWithLocal() {
w.wallet.stop();
}
+export async function testArgon2id() {
+ const userIdVector = {
+ input_id_data: {
+ name: "Fleabag",
+ ssn: "AB123",
+ },
+ input_server_salt: "FZ48EFS7WS3R2ZR4V53A3GFFY4",
+ output_id:
+
"YS45R6CGJV84K1NN7T14ZBCPVTZ6H15XJSM1FV0R748MHPV82SM0126EBZKBAAGCR34Q9AFKPEW1HRT2Q9GQ5JRA3642AB571DKZS18",
+ };
+
+ if (await userIdentifierDerive(
+ userIdVector.input_id_data,
+ userIdVector.input_server_salt,
+ ) != userIdVector.output_id) {
+ throw Error("argon2id is not working!");
+ }
+
+ console.log("argon2id is working!");
+}
+
// @ts-ignore
globalThis.testWithGv = testWithGv;
// @ts-ignore
globalThis.testWithLocal = testWithLocal;
+// @ts-ignore
+globalThis.testArgon2id = testArgon2id;
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2d40b0290..d9d1a2fa3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,4 +1,4 @@
-lockfileVersion: '6.1'
+lockfileVersion: '6.0'
settings:
autoInstallPeers: true
@@ -112,6 +112,34 @@ importers:
specifier: 5.1.3
version: 5.1.3
+ packages/anastasis-cli:
+ dependencies:
+ '@gnu-taler/anastasis-core':
+ specifier: workspace:*
+ version: link:../anastasis-core
+ '@gnu-taler/taler-util':
+ specifier: workspace:*
+ version: link:../taler-util
+ tslib:
+ specifier: ^2.5.3
+ version: 2.5.3
+ devDependencies:
+ '@types/node':
+ specifier: ^18.11.17
+ version: 18.11.17
+ prettier:
+ specifier: ^2.8.8
+ version: 2.8.8
+ rimraf:
+ specifier: ^3.0.2
+ version: 3.0.2
+ typedoc:
+ specifier: ^0.24.8
+ version: 0.24.8(typescript@5.1.3)
+ typescript:
+ specifier: ^5.1.3
+ version: 5.1.3
+
packages/anastasis-core:
dependencies:
'@gnu-taler/taler-util':
@@ -120,9 +148,6 @@ importers:
fflate:
specifier: ^0.7.4
version: 0.7.4
- hash-wasm:
- specifier: ^4.9.0
- version: 4.9.0
tslib:
specifier: ^2.5.3
version: 2.5.3
@@ -581,6 +606,9 @@ importers:
fflate:
specifier: ^0.7.4
version: 0.7.4
+ hash-wasm:
+ specifier: ^4.9.0
+ version: 4.9.0
jed:
specifier: ^1.1.1
version: 1.1.1
@@ -716,6 +744,9 @@ importers:
packages/taler-wallet-embedded:
dependencies:
+ '@gnu-taler/anastasis-core':
+ specifier: workspace:*
+ version: link:../anastasis-core
'@gnu-taler/idb-bridge':
specifier: workspace:*
version: link:../idb-bridge
@@ -6292,7 +6323,7 @@ packages:
engines: {node: '>=14.15.0'}
dependencies:
js-yaml: 3.14.1
- tslib: 2.4.1
+ tslib: 2.5.3
dev: true
/@zkochan/js-yaml@0.0.6:
@@ -12305,6 +12336,7 @@ packages:
/marked@4.3.0:
resolution: {integrity:
sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
engines: {node: '>= 12'}
+ hasBin: true
dev: true
/matcher@5.0.0:
@@ -15086,6 +15118,7 @@ packages:
/rimraf@2.7.1:
resolution: {integrity:
sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ hasBin: true
dependencies:
glob: 7.2.3
dev: true
@@ -16444,10 +16477,6 @@ packages:
resolution: {integrity:
sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==}
dev: true
- /tslib@2.4.1:
- resolution: {integrity:
sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
- dev: true
-
/tslib@2.5.3:
resolution: {integrity:
sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
@@ -16549,6 +16578,7 @@ packages:
/typescript@4.6.4:
resolution: {integrity:
sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==}
engines: {node: '>=4.2.0'}
+ hasBin: true
dev: true
/typescript@5.1.3:
diff --git a/tsconfig.build.json b/tsconfig.build.json
index 3a8d2433c..cc6a9ab1e 100644
--- a/tsconfig.build.json
+++ b/tsconfig.build.json
@@ -21,6 +21,9 @@
},
{
"path": "packages/taler-wallet-webextension//"
+ },
+ {
+ "path": "packages/anastasis-core/"
}
],
"files": []
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-wallet-core] branch master updated (0b6060283 -> 0ac5dba08),
gnunet <=
- [taler-wallet-core] 02/06: taler-util: import hash-wasm only when building for Node, gnunet, 2023/07/26
- [taler-wallet-core] 01/06: WIP: initial work for Anastasis in qtart, gnunet, 2023/07/26
- [taler-wallet-core] 03/06: anastasis-core: tsconfig, gnunet, 2023/07/26
- [taler-wallet-core] 05/06: wallet-core-embedded: add initial states to Anastasis handler, gnunet, 2023/07/26
- [taler-wallet-core] 04/06: Move anastasis CLI into separate package, gnunet, 2023/07/26
- [taler-wallet-core] 06/06: taler-wallet-embedded: add argon2id test, gnunet, 2023/07/26