taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 6df92029353d70195a7e7d989719e674473b0587
parent 0323868e10ca1fc5d3e10ad9e6866b986f552680
Author: Florian Dold <florian@dold.me>
Date:   Mon,  7 Mar 2022 21:49:11 +0100

fix recoup protocol breakage

Diffstat:
Mpackages/taler-util/src/talerTypes.ts | 28+++++++++++++++++++++++++++-
Mpackages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts | 8++++++++
2 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/packages/taler-util/src/talerTypes.ts b/packages/taler-util/src/talerTypes.ts @@ -147,9 +147,31 @@ export class ExchangeAuditor { denomination_keys: AuditorDenomSig[]; } +export type ExchangeWithdrawValue = + | ExchangeRsaWithdrawValue + | ExchangeCsWithdrawValue; + +export interface ExchangeRsaWithdrawValue { + cipher: "RSA"; +} + +export interface ExchangeCsWithdrawValue { + cipher: "CS"; + + /** + * CSR R0 value + */ + r_pub_0: string; + + /** + * CSR R1 value + */ + r_pub_1: string; +} + export interface RecoupRequest { /** - * Hashed enomination public key of the coin we want to get + * Hashed denomination public key of the coin we want to get * paid back. */ denom_pub_hash: string; @@ -171,6 +193,8 @@ export interface RecoupRequest { * Signature of TALER_RecoupRequestPS created with the coin's private key. */ coin_sig: string; + + ewv: ExchangeWithdrawValue; } export interface RecoupRefreshRequest { @@ -197,6 +221,8 @@ export interface RecoupRefreshRequest { * the coin's private key. */ coin_sig: string; + + ewv: ExchangeWithdrawValue; } /** diff --git a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts @@ -272,6 +272,10 @@ export class CryptoImplementation { coin_sig: encodeCrock(coinSig), denom_pub_hash: req.denomPubHash, denom_sig: req.denomSig, + // FIXME! + ewv: { + cipher: "RSA", + }, }; return paybackRequest; } else { @@ -298,6 +302,10 @@ export class CryptoImplementation { coin_sig: encodeCrock(coinSig), denom_pub_hash: req.denomPubHash, denom_sig: req.denomSig, + // FIXME! + ewv: { + cipher: "RSA", + }, }; return recoupRequest; } else {