diff options
author | Özgür Kesim <oec-taler@kesim.org> | 2023-08-15 13:47:29 +0200 |
---|---|---|
committer | Özgür Kesim <oec-taler@kesim.org> | 2023-08-15 13:47:29 +0200 |
commit | 819949d7f2cfcce8d334cbfdb701255daac64951 (patch) | |
tree | 592043554f59ec209f9afc1c31c20c4fb585c3ca /packages/taler-wallet-embedded/src | |
parent | 77ea209ddb6d457db0ce113f91247207cc29fbd8 (diff) | |
parent | adb0e70f151e63d103f27852312319520f4d0a84 (diff) |
Merge branch 'master' into age-withdraw
Diffstat (limited to 'packages/taler-wallet-embedded/src')
-rw-r--r-- | packages/taler-wallet-embedded/src/wallet-qjs.ts | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/packages/taler-wallet-embedded/src/wallet-qjs.ts b/packages/taler-wallet-embedded/src/wallet-qjs.ts index 04efb458a..e475f9542 100644 --- a/packages/taler-wallet-embedded/src/wallet-qjs.ts +++ b/packages/taler-wallet-embedded/src/wallet-qjs.ts @@ -45,11 +45,11 @@ import { reduceAction, getBackupStartState, getRecoveryStartState, + discoverPolicies, + mergeDiscoveryAggregate, ReducerState, } from "@gnu-taler/anastasis-core"; -import { - userIdentifierDerive, -} from "@gnu-taler/anastasis-core/lib/crypto.js"; +import { userIdentifierDerive } from "@gnu-taler/anastasis-core/lib/crypto.js"; setGlobalLogLevelFromString("trace"); @@ -195,18 +195,33 @@ async function handleAnastasisRequest( }; }; + let req = args ?? {}; + switch (operation) { case "anastasisReduce": // TODO: do some input validation here - let req = args ?? {}; - let res = await reduceAction(req.state, req.action, req.args ?? {}); + let reduceRes = 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); + return wrapSuccessResponse(reduceRes); case "anastasisStartBackup": return wrapSuccessResponse(await getBackupStartState()); case "anastasisStartRecovery": return wrapSuccessResponse(await getRecoveryStartState()); + case "anastasisDiscoverPolicies": + let discoverRes = await discoverPolicies(req.state, req.cursor); + let aggregatedPolicies = mergeDiscoveryAggregate( + discoverRes.policies ?? [], + req.state.discoveryState?.aggregatedPolicies ?? [], + ); + return wrapSuccessResponse({ + ...req.state, + discoveryState: { + state: "finished", + aggregatedPolicies, + cursor: discoverRes.cursor, + }, + }); } } @@ -318,13 +333,15 @@ export async function testArgon2id() { }, input_server_salt: "FZ48EFS7WS3R2ZR4V53A3GFFY4", output_id: - "YS45R6CGJV84K1NN7T14ZBCPVTZ6H15XJSM1FV0R748MHPV82SM0126EBZKBAAGCR34Q9AFKPEW1HRT2Q9GQ5JRA3642AB571DKZS18", + "YS45R6CGJV84K1NN7T14ZBCPVTZ6H15XJSM1FV0R748MHPV82SM0126EBZKBAAGCR34Q9AFKPEW1HRT2Q9GQ5JRA3642AB571DKZS18", }; - if (await userIdentifierDerive( - userIdVector.input_id_data, - userIdVector.input_server_salt, - ) != userIdVector.output_id) { + if ( + (await userIdentifierDerive( + userIdVector.input_id_data, + userIdVector.input_server_salt, + )) != userIdVector.output_id + ) { throw Error("argon2id is not working!"); } @@ -337,4 +354,7 @@ globalThis.testWithGv = testWithGv; globalThis.testWithLocal = testWithLocal; // @ts-ignore globalThis.testArgon2id = testArgon2id; - +// @ts-ignore +globalThis.testReduceAction = reduceAction; +// @ts-ignore +globalThis.testDiscoverPolicies = discoverPolicies;
\ No newline at end of file |