diff options
author | Florian Dold <florian@dold.me> | 2022-03-07 12:09:38 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-03-07 12:09:38 +0100 |
commit | 0290c5fd379a4b4262d8835d4131b7c4e8a2f2f2 (patch) | |
tree | 233cbe5e18925339daedfaffb2882d390b3479a5 /packages/taler-util | |
parent | 2cfefa93920eba7bc4bfa3ca788a7bcf74c149f5 (diff) |
address protocol changes in the exchange
The exchange now has a wad fee and truncates the payto hash in signatures
Diffstat (limited to 'packages/taler-util')
-rw-r--r-- | packages/taler-util/src/backupTypes.ts | 2 | ||||
-rw-r--r-- | packages/taler-util/src/talerCrypto.ts | 12 | ||||
-rw-r--r-- | packages/taler-util/src/talerTypes.ts | 3 |
3 files changed, 15 insertions, 2 deletions
diff --git a/packages/taler-util/src/backupTypes.ts b/packages/taler-util/src/backupTypes.ts index 8663850c9..41a9ce98e 100644 --- a/packages/taler-util/src/backupTypes.ts +++ b/packages/taler-util/src/backupTypes.ts @@ -1023,6 +1023,8 @@ export interface BackupExchangeWireFee { */ wire_fee: string; + wad_fee: string; + /** * Fees to close and refund a reserve. */ diff --git a/packages/taler-util/src/talerCrypto.ts b/packages/taler-util/src/talerCrypto.ts index 83e5dc6fe..358da9dac 100644 --- a/packages/taler-util/src/talerCrypto.ts +++ b/packages/taler-util/src/talerCrypto.ts @@ -25,6 +25,7 @@ import * as nacl from "./nacl-fast.js"; import { kdf, kdfKw } from "./kdf.js"; import bigint from "big-integer"; import { + Base32String, CoinEnvelope, DenominationPubKey, DenomKeyType, @@ -598,6 +599,15 @@ export function hash(d: Uint8Array): Uint8Array { return nacl.hash(d); } +/** + * Hash the input with SHA-512 and truncate the result + * to 32 bytes. + */ +export function hashTruncate32(d: Uint8Array): Uint8Array { + const sha512HashCode = nacl.hash(d); + return sha512HashCode.subarray(0, 32); +} + export function hashCoinEv( coinEv: CoinEnvelope, denomPubHash: HashCodeString, @@ -608,7 +618,6 @@ export function hashCoinEv( return hashContext.finish(); } - const logger = new Logger("talerCrypto.ts"); export function hashCoinEvInner( @@ -683,7 +692,6 @@ export interface FreshCoin { bks: Uint8Array; } - function bufferForUint32(n: number): Uint8Array { const arrBuf = new ArrayBuffer(4); const buf = new Uint8Array(arrBuf); diff --git a/packages/taler-util/src/talerTypes.ts b/packages/taler-util/src/talerTypes.ts index 59d37dece..4581f0b6a 100644 --- a/packages/taler-util/src/talerTypes.ts +++ b/packages/taler-util/src/talerTypes.ts @@ -738,6 +738,8 @@ export class WireFeesJson { */ wire_fee: string; + wad_fee: string; + /** * Cost of clising a reserve. */ @@ -1356,6 +1358,7 @@ export const codecForWireFeesJson = (): Codec<WireFeesJson> => buildCodecForObject<WireFeesJson>() .property("wire_fee", codecForString()) .property("closing_fee", codecForString()) + .property("wad_fee", codecForString()) .property("sig", codecForString()) .property("start_date", codecForTimestamp) .property("end_date", codecForTimestamp) |