diff options
author | Florian Dold <florian@dold.me> | 2020-12-02 14:55:04 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2020-12-02 14:55:04 +0100 |
commit | 89f1a281fea66b986fc0a003dc10446f6ed6e4a2 (patch) | |
tree | 8ffe90d572bc6967ee86bdcffc1eb6dc1240d17c /packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts | |
parent | 0828e65f8845dc4b148c0d3b0697fb589b338239 (diff) | |
download | wallet-core-89f1a281fea66b986fc0a003dc10446f6ed6e4a2.tar.xz |
backup WIP
Diffstat (limited to 'packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts')
-rw-r--r-- | packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts index 46ac7c8a6..41836fdfa 100644 --- a/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts +++ b/packages/taler-wallet-core/src/crypto/workers/cryptoImplementation.ts @@ -43,6 +43,7 @@ import { PlanchetCreationResult, PlanchetCreationRequest, DepositInfo, + MakeSyncSignatureRequest, } from "../../types/walletTypes"; import { AmountJson, Amounts } from "../../util/amounts"; import * as timer from "../../util/timer"; @@ -85,6 +86,7 @@ enum SignaturePurpose { WALLET_COIN_LINK = 1204, EXCHANGE_CONFIRM_RECOUP = 1039, EXCHANGE_CONFIRM_RECOUP_REFRESH = 1041, + SYNC_BACKUP_UPLOAD = 1450, } function amountToBuffer(amount: AmountJson): Uint8Array { @@ -589,4 +591,20 @@ export class CryptoImplementation { }, }; } + + makeSyncSignature(req: MakeSyncSignatureRequest): string { + const hNew = decodeCrock(req.newHash); + let hOld: Uint8Array; + if (req.oldHash) { + hOld = decodeCrock(req.oldHash); + } else { + hOld = new Uint8Array(64); + } + const sigBlob = new SignaturePurposeBuilder(SignaturePurpose.SYNC_BACKUP_UPLOAD) + .put(hOld) + .put(hNew) + .build(); + const uploadSig = eddsaSign(sigBlob, decodeCrock(req.accountPriv)); + return encodeCrock(uploadSig); + } } |