aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-09-05 12:55:46 +0200
committerFlorian Dold <florian@dold.me>2022-09-05 12:55:46 +0200
commit300242637f20401fa9074e36eea5fa8788cc7202 (patch)
tree58c962aeee17f2dc1e8de53fb6c5403a1960f789 /packages/taler-wallet-core/src/crypto/cryptoImplementation.ts
parentb1f77f4662e8198d0e02e74d43fd6d1f82ce2fb0 (diff)
downloadwallet-core-300242637f20401fa9074e36eea5fa8788cc7202.tar.xz
wallet-core: include age restriction in p2p signature, mark coins as spent
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 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();