diff options
author | Florian Dold <florian@dold.me> | 2023-01-12 15:11:32 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-01-12 15:11:32 +0100 |
commit | 24694eae736763ea6e026c8839b7ba119db10bb4 (patch) | |
tree | be432b50a6be729445a6f0515f3cb3333d7c0697 /packages/taler-wallet-core/src/crypto/cryptoImplementation.ts | |
parent | 81157c519b31964587548e08171a76c67eea9a2b (diff) | |
download | wallet-core-24694eae736763ea6e026c8839b7ba119db10bb4.tar.xz |
wallet-core: implement retries for peer push payments
Diffstat (limited to 'packages/taler-wallet-core/src/crypto/cryptoImplementation.ts')
-rw-r--r-- | packages/taler-wallet-core/src/crypto/cryptoImplementation.ts | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts index 624ddf1d3..c86a732d8 100644 --- a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts +++ b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts @@ -445,17 +445,19 @@ export interface SignPurseCreationRequest { minAge: number; } -export interface SignPurseDepositsRequest { - pursePub: string; - exchangeBaseUrl: string; - coins: { - coinPub: string; +export interface SpendCoinDetails { + coinPub: string; coinPriv: string; contribution: AmountString; denomPubHash: string; denomSig: UnblindedSignature; ageCommitmentProof: AgeCommitmentProof | undefined; - }[]; +} + +export interface SignPurseDepositsRequest { + pursePub: string; + exchangeBaseUrl: string; + coins: SpendCoinDetails[]; } export interface SignPurseDepositsResponse { @@ -1451,25 +1453,24 @@ export const nativeCryptoR: TalerCryptoInterfaceR = { tci: TalerCryptoInterfaceR, req: EncryptContractRequest, ): Promise<EncryptContractResponse> { - const contractKeyPair = await this.createEddsaKeypair(tci, {}); + const enc = await encryptContractForMerge( decodeCrock(req.pursePub), - decodeCrock(contractKeyPair.priv), + decodeCrock(req.contractPriv), decodeCrock(req.mergePriv), req.contractTerms, ); const sigBlob = buildSigPS(TalerSignaturePurpose.WALLET_PURSE_ECONTRACT) .put(hash(enc)) - .put(decodeCrock(contractKeyPair.pub)) + .put(decodeCrock(req.contractPub)) .build(); const sig = eddsaSign(sigBlob, decodeCrock(req.pursePriv)); return { econtract: { - contract_pub: contractKeyPair.pub, + contract_pub: req.contractPub, econtract: encodeCrock(enc), econtract_sig: encodeCrock(sig), }, - contractPriv: contractKeyPair.priv, }; }, async decryptContractForMerge( |