aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-09-19 17:08:04 +0200
committerFlorian Dold <florian@dold.me>2022-09-19 17:08:04 +0200
commitf63765b9f7a089eb0f2a62d53f5ad1d56961fa1f (patch)
tree07bfe90b5ca4cd8a75f49e54d0d6b6cfddba5874 /packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
parentffe6a9521400ceabca713c08010532ece03152a8 (diff)
downloadwallet-core-f63765b9f7a089eb0f2a62d53f5ad1d56961fa1f.tar.xz
wallet-core: fix tipping with age restricted denoms
Diffstat (limited to 'packages/taler-wallet-core/src/crypto/cryptoImplementation.ts')
-rw-r--r--packages/taler-wallet-core/src/crypto/cryptoImplementation.ts12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
index c21ee99e8..bfc48d961 100644
--- a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
+++ b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
@@ -743,9 +743,16 @@ export const nativeCryptoR: TalerCryptoInterfaceR = {
if (req.denomPub.cipher !== DenomKeyType.Rsa) {
throw Error(`unsupported cipher (${req.denomPub.cipher})`);
}
- const fc = setupTipPlanchet(decodeCrock(req.secretSeed), req.planchetIndex);
+ const fc = await setupTipPlanchet(
+ decodeCrock(req.secretSeed),
+ req.denomPub,
+ req.planchetIndex,
+ );
+ const maybeAch = fc.ageCommitmentProof
+ ? AgeRestriction.hashCommitment(fc.ageCommitmentProof.commitment)
+ : undefined;
const denomPub = decodeCrock(req.denomPub.rsa_public_key);
- const coinPubHash = hash(fc.coinPub);
+ const coinPubHash = hashCoinPub(encodeCrock(fc.coinPub), maybeAch);
const blindResp = await tci.rsaBlind(tci, {
bks: encodeCrock(fc.bks),
hm: encodeCrock(coinPubHash),
@@ -763,6 +770,7 @@ export const nativeCryptoR: TalerCryptoInterfaceR = {
),
coinPriv: encodeCrock(fc.coinPriv),
coinPub: encodeCrock(fc.coinPub),
+ ageCommitmentProof: fc.ageCommitmentProof,
};
return tipPlanchet;
},