taler-typescript-core

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

commit cf6962d7a9c211ee7be21ae2be5f1359e116cbee
parent dfc64a8f753f8489ec399f0b7b4706791314925e
Author: Florian Dold <florian@dold.me>
Date:   Tue, 21 Jul 2026 12:53:31 +0200

fix size of h_payto

Diffstat:
Mpackages/taler-util/src/taler-crypto.ts | 3+++
Mpackages/taler-util/src/taler-signatures.ts | 2+-
2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/packages/taler-util/src/taler-crypto.ts b/packages/taler-util/src/taler-crypto.ts @@ -349,6 +349,9 @@ export function decodeCrockFixed( ): Uint8Array { const expectedChars = Math.ceil((expectedLen * 8) / 5); if (encoded.length !== expectedChars) { + logger.warn( + `failed to decode: encodedLen=${encoded.length} expectedLen=${expectedChars}`, + ); throw new EncodingError(); } const out = decodeCrock(encoded); diff --git a/packages/taler-util/src/taler-signatures.ts b/packages/taler-util/src/taler-signatures.ts @@ -56,7 +56,7 @@ export function signAmlDecision( decision.attributes_expiration ?? TalerProtocolTimestamp.fromSeconds(0), ), ); - builder.put(decodeCrockFixed(decision.h_payto, 64)); + builder.put(decodeCrockFixed(decision.h_payto, 32)); builder.put(hash(stringToBytes(decision.justification))); builder.put(hash(stringToBytes(canonicalJson(decision.properties) + "\0"))); builder.put(hash(stringToBytes(canonicalJson(decision.new_rules) + "\0")));