From c09c5bbe625566fc61c811160d2ccdab263327fa Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 15 Dec 2020 17:12:22 +0100 Subject: derive tipping planchets from seed, implement backup further --- packages/taler-wallet-core/src/crypto/talerCrypto.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'packages/taler-wallet-core/src/crypto/talerCrypto.ts') diff --git a/packages/taler-wallet-core/src/crypto/talerCrypto.ts b/packages/taler-wallet-core/src/crypto/talerCrypto.ts index 4faa523a0..095957982 100644 --- a/packages/taler-wallet-core/src/crypto/talerCrypto.ts +++ b/packages/taler-wallet-core/src/crypto/talerCrypto.ts @@ -390,6 +390,25 @@ export function setupRefreshPlanchet( }; } +export function setupTipPlanchet( + secretSeed: Uint8Array, + coinNumber: number, +): FreshCoin { + const info = stringToBytes("taler-tip-coin-derivation"); + const saltArrBuf = new ArrayBuffer(4); + const salt = new Uint8Array(saltArrBuf); + const saltDataView = new DataView(saltArrBuf); + saltDataView.setUint32(0, coinNumber); + const out = kdf(64, secretSeed, salt, info); + const coinPriv = out.slice(0, 32); + const bks = out.slice(32, 64); + return { + bks, + coinPriv, + coinPub: eddsaGetPublic(coinPriv), + }; +} + export function setupRefreshTransferPub( secretSeed: Uint8Array, transferPubIndex: number, -- cgit v1.2.3