gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]