aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/backup/index.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-03-23 21:24:23 +0100
committerFlorian Dold <florian@dold.me>2022-03-23 21:24:36 +0100
commitd881f4fd258a27cc765a25c24e5fef9f86b6226f (patch)
tree3254444f93ef552f4ac65f14e581ed761b9df79e /packages/taler-wallet-core/src/operations/backup/index.ts
parente21c1b31928cd6bfe90150ea2de19799b6359c40 (diff)
downloadwallet-core-d881f4fd258a27cc765a25c24e5fef9f86b6226f.tar.xz
wallet: simplify crypto workers
Diffstat (limited to 'packages/taler-wallet-core/src/operations/backup/index.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/backup/index.ts23
1 files changed, 12 insertions, 11 deletions
diff --git a/packages/taler-wallet-core/src/operations/backup/index.ts b/packages/taler-wallet-core/src/operations/backup/index.ts
index 8ddc0c064..5013b9032 100644
--- a/packages/taler-wallet-core/src/operations/backup/index.ts
+++ b/packages/taler-wallet-core/src/operations/backup/index.ts
@@ -69,7 +69,7 @@ import {
rsaBlind,
stringToBytes,
} from "@gnu-taler/taler-util";
-import { CryptoApi } from "../../crypto/workers/cryptoApi.js";
+import { CryptoDispatcher } from "../../crypto/workers/cryptoDispatcher.js";
import {
BackupProviderRecord,
BackupProviderState,
@@ -99,6 +99,7 @@ import { exportBackup } from "./export.js";
import { BackupCryptoPrecomputedData, importBackup } from "./import.js";
import { getWalletBackupState, provideBackupState } from "./state.js";
import { guardOperationException } from "../common.js";
+import { TalerCryptoInterface } from "../../crypto/cryptoImplementation.js";
const logger = new Logger("operations/backup.ts");
@@ -154,7 +155,7 @@ export async function encryptBackup(
* FIXME: Move computations into crypto worker.
*/
async function computeBackupCryptoData(
- cryptoApi: CryptoApi,
+ cryptoApi: TalerCryptoInterface,
backupContent: WalletBackupContentV1,
): Promise<BackupCryptoPrecomputedData> {
const cryptoData: BackupCryptoPrecomputedData = {
@@ -193,18 +194,18 @@ async function computeBackupCryptoData(
}
}
for (const prop of backupContent.proposals) {
- const contractTermsHash = await cryptoApi.hashString(
- canonicalJson(prop.contract_terms_raw),
- );
+ const { h: contractTermsHash } = await cryptoApi.hashString({
+ str: canonicalJson(prop.contract_terms_raw),
+ });
const noncePub = encodeCrock(eddsaGetPublic(decodeCrock(prop.nonce_priv)));
cryptoData.proposalNoncePrivToPub[prop.nonce_priv] = noncePub;
cryptoData.proposalIdToContractTermsHash[prop.proposal_id] =
contractTermsHash;
}
for (const purch of backupContent.purchases) {
- const contractTermsHash = await cryptoApi.hashString(
- canonicalJson(purch.contract_terms_raw),
- );
+ const { h: contractTermsHash } = await cryptoApi.hashString({
+ str: canonicalJson(purch.contract_terms_raw),
+ });
const noncePub = encodeCrock(eddsaGetPublic(decodeCrock(purch.nonce_priv)));
cryptoData.proposalNoncePrivToPub[purch.nonce_priv] = noncePub;
cryptoData.proposalIdToContractTermsHash[purch.proposal_id] =
@@ -286,13 +287,13 @@ async function runBackupCycleForProvider(
logger.trace(`trying to upload backup to ${provider.baseUrl}`);
logger.trace(`old hash ${oldHash}, new hash ${newHash}`);
- const syncSig = await ws.cryptoApi.makeSyncSignature({
+ const syncSigResp = await ws.cryptoApi.makeSyncSignature({
newHash: encodeCrock(currentBackupHash),
oldHash: provider.lastBackupHash,
accountPriv: encodeCrock(accountKeyPair.eddsaPriv),
});
- logger.trace(`sync signature is ${syncSig}`);
+ logger.trace(`sync signature is ${syncSigResp}`);
const accountBackupUrl = new URL(
`/backups/${encodeCrock(accountKeyPair.eddsaPub)}`,
@@ -304,7 +305,7 @@ async function runBackupCycleForProvider(
body: encBackup,
headers: {
"content-type": "application/octet-stream",
- "sync-signature": syncSig,
+ "sync-signature": syncSigResp.sig,
"if-none-match": newHash,
...(provider.lastBackupHash
? {