From 300242637f20401fa9074e36eea5fa8788cc7202 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 5 Sep 2022 12:55:46 +0200 Subject: wallet-core: include age restriction in p2p signature, mark coins as spent --- .../taler-wallet-core/src/crypto/cryptoImplementation.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'packages/taler-wallet-core/src/crypto/cryptoImplementation.ts') diff --git a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts index 193712e52..6336539fa 100644 --- a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts +++ b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts @@ -442,6 +442,7 @@ export interface SignPurseDepositsRequest { contribution: AmountString; denomPubHash: string; denomSig: UnblindedSignature; + ageCommitmentProof: AgeCommitmentProof | undefined; }[]; } @@ -1361,11 +1362,18 @@ export const nativeCryptoR: TalerCryptoInterfaceR = { const hExchangeBaseUrl = hash(stringToBytes(req.exchangeBaseUrl + "\0")); const deposits: PurseDeposit[] = []; for (const c of req.coins) { + let maybeAch: Uint8Array; + if (c.ageCommitmentProof) { + maybeAch = decodeCrock( + AgeRestriction.hashCommitment(c.ageCommitmentProof.commitment), + ); + } else { + maybeAch = new Uint8Array(32); + } const sigBlob = buildSigPS(TalerSignaturePurpose.WALLET_PURSE_DEPOSIT) .put(amountToBuffer(Amounts.parseOrThrow(c.contribution))) .put(decodeCrock(c.denomPubHash)) - // FIXME: use h_age_commitment here - .put(new Uint8Array(32)) + .put(maybeAch) .put(decodeCrock(req.pursePub)) .put(hExchangeBaseUrl) .build(); -- cgit v1.2.3