summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/pay.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/pay.ts
parente21c1b31928cd6bfe90150ea2de19799b6359c40 (diff)
downloadwallet-core-d881f4fd258a27cc765a25c24e5fef9f86b6226f.tar.gz
wallet-core-d881f4fd258a27cc765a25c24e5fef9f86b6226f.tar.bz2
wallet-core-d881f4fd258a27cc765a25c24e5fef9f86b6226f.zip
wallet: simplify crypto workers
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts33
1 files changed, 21 insertions, 12 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts
index 1c1a0f506..97f38bae6 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -55,7 +55,10 @@ import {
TransactionType,
URL,
} from "@gnu-taler/taler-util";
-import { EXCHANGE_COINS_LOCK, InternalWalletState } from "../internal-wallet-state.js";
+import {
+ EXCHANGE_COINS_LOCK,
+ InternalWalletState,
+} from "../internal-wallet-state.js";
import {
AbortStatus,
AllowedAuditorInfo,
@@ -100,6 +103,7 @@ import {
import { getExchangeDetails } from "./exchanges.js";
import { createRefreshGroup, getTotalRefreshCost } from "./refresh.js";
import { guardOperationException } from "./common.js";
+import { EddsaKeypair } from "../crypto/cryptoImplementation.js";
/**
* Logger.
@@ -795,11 +799,11 @@ async function processDownloadProposalImpl(
);
}
- const sigValid = await ws.cryptoApi.isValidContractTermsSignature(
+ const sigValid = await ws.cryptoApi.isValidContractTermsSignature({
contractTermsHash,
- proposalResp.sig,
- parsedContractTerms.merchant_pub,
- );
+ merchantPub: parsedContractTerms.merchant_pub,
+ sig: proposalResp.sig,
+ });
if (!sigValid) {
const err = makeErrorDetail(
@@ -921,9 +925,14 @@ async function startDownloadProposal(
return oldProposal.proposalId;
}
- const { priv, pub } = await (noncePriv
- ? ws.cryptoApi.eddsaGetPublic(noncePriv)
- : ws.cryptoApi.createEddsaKeypair());
+ let noncePair: EddsaKeypair;
+ if (noncePriv) {
+ noncePair = await ws.cryptoApi.eddsaGetPublic({ priv: noncePriv });
+ } else {
+ noncePair = await ws.cryptoApi.createEddsaKeypair({});
+ }
+
+ const { priv, pub } = noncePair;
const proposalId = encodeCrock(getRandomBytes(32));
const proposalRecord: ProposalRecord = {
@@ -1673,11 +1682,11 @@ async function processPurchasePayImpl(
logger.trace("got success from pay URL", merchantResp);
const merchantPub = purchase.download.contractData.merchantPub;
- const valid: boolean = await ws.cryptoApi.isValidPaymentSignature(
- merchantResp.sig,
- purchase.download.contractData.contractTermsHash,
+ const { valid } = await ws.cryptoApi.isValidPaymentSignature({
+ contractHash: purchase.download.contractData.contractTermsHash,
merchantPub,
- );
+ sig: merchantResp.sig,
+ });
if (!valid) {
logger.error("merchant payment signature invalid");