taler-typescript-core

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

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:
Mpackages/taler-wallet-core/src/refresh.ts | 12++++++++++++
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++) {