diff options
author | Florian Dold <florian@dold.me> | 2020-12-17 12:21:03 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2020-12-17 12:21:03 +0100 |
commit | 84d5b5e5ef34f7289256c6fd301206cda19be694 (patch) | |
tree | 5db646c7fb1b782b42150a38c6d4f1e6bdfea55f /packages/taler-wallet-core/src/crypto/talerCrypto.ts | |
parent | bafb52edff4d56bcb9e3c3d0a260f507c517b08c (diff) | |
download | wallet-core-84d5b5e5ef34f7289256c6fd301206cda19be694.tar.xz |
export complete backup, derive planchets in withdrawal
Diffstat (limited to 'packages/taler-wallet-core/src/crypto/talerCrypto.ts')
-rw-r--r-- | packages/taler-wallet-core/src/crypto/talerCrypto.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/crypto/talerCrypto.ts b/packages/taler-wallet-core/src/crypto/talerCrypto.ts index 095957982..d28f11174 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 setupWithdrawPlanchet( + secretSeed: Uint8Array, + coinNumber: number, +): FreshCoin { + const info = stringToBytes("taler-withdrawal-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 setupTipPlanchet( secretSeed: Uint8Array, coinNumber: number, |