diff options
author | Florian Dold <florian@dold.me> | 2023-06-05 17:58:20 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-06-05 17:58:25 +0200 |
commit | 9fca44893a6f7fcee5c828da5fc10e7d76592b5d (patch) | |
tree | 634830c7a769302d5e107f2aee323c3f705cf113 /packages/taler-wallet-core/src/crypto | |
parent | 6e7c88a62073082b28ef563561d08f56acc0b017 (diff) | |
download | wallet-core-9fca44893a6f7fcee5c828da5fc10e7d76592b5d.tar.xz |
wallet-core: handle more p2p abort cases nicely
Diffstat (limited to 'packages/taler-wallet-core/src/crypto')
-rw-r--r-- | packages/taler-wallet-core/src/crypto/cryptoImplementation.ts | 24 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/crypto/cryptoTypes.ts | 9 |
2 files changed, 32 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts index 6b44c297d..c0c8e0d01 100644 --- a/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts +++ b/packages/taler-wallet-core/src/crypto/cryptoImplementation.ts @@ -106,6 +106,8 @@ import { EncryptContractRequest, EncryptContractResponse, EncryptedContract, + SignDeletePurseRequest, + SignDeletePurseResponse, SignPurseMergeRequest, SignPurseMergeResponse, SignRefundRequest, @@ -240,6 +242,8 @@ export interface TalerCryptoInterface { ): Promise<SignReservePurseCreateResponse>; signRefund(req: SignRefundRequest): Promise<SignRefundResponse>; + + signDeletePurse(req: SignDeletePurseRequest): Promise<SignDeletePurseResponse>; } /** @@ -419,6 +423,11 @@ export const nullCrypto: TalerCryptoInterface = { signRefund: function (req: SignRefundRequest): Promise<SignRefundResponse> { throw new Error("Function not implemented."); }, + signDeletePurse: function ( + req: SignDeletePurseRequest, + ): Promise<SignDeletePurseResponse> { + throw new Error("Function not implemented."); + }, }; export type WithArg<X> = X extends (req: infer T) => infer R @@ -1671,6 +1680,21 @@ export const nativeCryptoR: TalerCryptoInterfaceR = { sig: refundSigResp.sig, }; }, + async signDeletePurse( + tci: TalerCryptoInterfaceR, + req: SignDeletePurseRequest, + ): Promise<SignDeletePurseResponse> { + const deleteSigBlob = buildSigPS( + TalerSignaturePurpose.WALLET_PURSE_DELETE, + ).build(); + const sigResp = await tci.eddsaSign(tci, { + msg: encodeCrock(deleteSigBlob), + priv: req.pursePriv, + }); + return { + sig: sigResp.sig, + } + }, }; function amountToBuffer(amount: AmountLike): Uint8Array { diff --git a/packages/taler-wallet-core/src/crypto/cryptoTypes.ts b/packages/taler-wallet-core/src/crypto/cryptoTypes.ts index 3b27db0c0..930db03a8 100644 --- a/packages/taler-wallet-core/src/crypto/cryptoTypes.ts +++ b/packages/taler-wallet-core/src/crypto/cryptoTypes.ts @@ -268,7 +268,14 @@ export interface SignRefundResponse { sig: string; } -export interface SignRefundResponse {} + +export interface SignDeletePurseRequest { + pursePriv: string; +} + +export interface SignDeletePurseResponse { + sig: EddsaSignatureString; +} export interface SignReservePurseCreateRequest { mergeTimestamp: TalerProtocolTimestamp; |