commit 738c28f8686196ced3eb88756a393b1eba7b17d6
parent 100c07c84536394fd234136cdb297f91a7a927fa
Author: Florian Dold <dold@taler.net>
Date: Thu, 3 Sep 2026 15:59:03 +0200
wallet-core: reject a reveal response with too few signatures
Diffstat:
1 file changed, 12 insertions(+), 0 deletions(-)
diff --git a/packages/taler-wallet-core/src/refresh.ts b/packages/taler-wallet-core/src/refresh.ts
@@ -1459,6 +1459,18 @@ async function refreshReveal(
resEvSigs = reveal.ev_sigs;
planchets = derived.planchets;
+ const numExpectedSigs = refreshSession.newDenoms.reduce(
+ (acc, d) => acc + d.count,
+ 0,
+ );
+ if (resEvSigs.length !== numExpectedSigs) {
+ throw TalerError.fromDetail(
+ TalerErrorCode.WALLET_TRANSACTION_PROTOCOL_VIOLATION,
+ {},
+ `reveal returned ${resEvSigs.length} signatures for ${numExpectedSigs} coins`,
+ );
+ }
+
const coins: WalletCoin[] = [];
for (let i = 0; i < refreshSession.newDenoms.length; i++) {