commit 0323868e10ca1fc5d3e10ad9e6866b986f552680
parent 0290c5fd379a4b4262d8835d4131b7c4e8a2f2f2
Author: Florian Dold <florian@dold.me>
Date: Mon, 7 Mar 2022 20:44:18 +0100
fix tipping
Diffstat:
5 files changed, 15 insertions(+), 21 deletions(-)
diff --git a/packages/taler-util/src/talerTypes.ts b/packages/taler-util/src/talerTypes.ts
@@ -609,7 +609,7 @@ export interface TipPlanchetDetail {
/**
* Coin's blinded public key.
*/
- coin_ev: string;
+ coin_ev: CoinEnvelope;
}
/**
@@ -1307,17 +1307,6 @@ export const codecForMerchantRefundResponse =
.property("refunds", codecForList(codecForMerchantRefundPermission()))
.build("MerchantRefundResponse");
-export const codecForMerchantBlindSigWrapperV1 =
- (): Codec<MerchantBlindSigWrapperV1> =>
- buildCodecForObject<MerchantBlindSigWrapperV1>()
- .property("blind_sig", codecForString())
- .build("BlindSigWrapper");
-
-export const codecForMerchantTipResponseV1 = (): Codec<MerchantTipResponseV1> =>
- buildCodecForObject<MerchantTipResponseV1>()
- .property("blind_sigs", codecForList(codecForMerchantBlindSigWrapperV1()))
- .build("MerchantTipResponseV1");
-
export const codecForBlindSigWrapperV2 = (): Codec<MerchantBlindSigWrapperV2> =>
buildCodecForObject<MerchantBlindSigWrapperV2>()
.property("blind_sig", codecForBlindedDenominationSignature())
diff --git a/packages/taler-wallet-cli/src/harness/harness.ts b/packages/taler-wallet-cli/src/harness/harness.ts
@@ -1894,9 +1894,11 @@ export class MerchantService implements MerchantServiceInterface {
default_max_deposit_fee:
instanceConfig.defaultMaxDepositFee ??
`${this.merchantConfig.currency}:1.0`,
- default_wire_transfer_delay: instanceConfig.defaultWireTransferDelay ?? {
- d_ms: "forever",
- },
+ default_wire_transfer_delay:
+ instanceConfig.defaultWireTransferDelay ??
+ Duration.fromSpec({
+ days: 1,
+ }),
default_pay_delay: instanceConfig.defaultPayDelay ?? { d_ms: "forever" },
});
}
diff --git a/packages/taler-wallet-core/src/crypto/cryptoTypes.ts b/packages/taler-wallet-core/src/crypto/cryptoTypes.ts
@@ -110,7 +110,7 @@ export interface DeriveTipRequest {
*/
export interface DerivedTipPlanchet {
blindingKey: string;
- coinEv: string;
+ coinEv: CoinEnvelope;
coinEvHash: string;
coinPriv: string;
coinPub: string;
diff --git a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts
@@ -229,11 +229,16 @@ export class CryptoImplementation {
const denomPub = decodeCrock(req.denomPub.rsa_public_key);
const coinPubHash = hash(fc.coinPub);
const ev = rsaBlind(coinPubHash, fc.bks, denomPub);
-
+ const coinEv = {
+ cipher: DenomKeyType.Rsa,
+ rsa_blinded_planchet: encodeCrock(ev),
+ };
const tipPlanchet: DerivedTipPlanchet = {
blindingKey: encodeCrock(fc.bks),
- coinEv: encodeCrock(ev),
- coinEvHash: encodeCrock(hash(ev)),
+ coinEv,
+ coinEvHash: encodeCrock(
+ hashCoinEv(coinEv, encodeCrock(hashDenomPub(req.denomPub))),
+ ),
coinPriv: encodeCrock(fc.coinPriv),
coinPub: encodeCrock(fc.coinPub),
};
diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts
@@ -27,13 +27,11 @@ import {
NotificationType,
TipPlanchetDetail,
TalerErrorCode,
- codecForMerchantTipResponseV1,
Logger,
URL,
DenomKeyType,
BlindedDenominationSignature,
codecForMerchantTipResponseV2,
- MerchantProtocolVersion,
} from "@gnu-taler/taler-util";
import { DerivedTipPlanchet } from "../crypto/cryptoTypes.js";
import {