summaryrefslogtreecommitdiff
path: root/src/include/taler_crypto_lib.h
diff options
context:
space:
mode:
authorThien-Thi Nguyen <ttn@gnuvola.org>2022-04-17 04:53:17 -0400
committerThien-Thi Nguyen <ttn@gnuvola.org>2022-04-17 04:53:17 -0400
commita7ad5a07e2eb80d942fcfd49a41330146ec36e45 (patch)
treecd31aaf48d89d6a894f8040a2095771258610cf0 /src/include/taler_crypto_lib.h
parentba69c32712344a7483641d3f5c010672ab1e32e6 (diff)
downloadexchange-a7ad5a07e2eb80d942fcfd49a41330146ec36e45.tar.gz
exchange-a7ad5a07e2eb80d942fcfd49a41330146ec36e45.tar.bz2
exchange-a7ad5a07e2eb80d942fcfd49a41330146ec36e45.zip
Add abstractions: TALER_merchant_pay_{sign,verify}
Additionally, this change removes ‘struct TALER_PaymentResponsePS’ from the public API. * src/include/taler_crypto_lib.h (TALER_merchant_pay_sign): New func decl. (TALER_merchant_pay_verify): New func decl. * src/include/taler_signatures.h (struct TALER_PaymentResponsePS): Delete. * src/util/merchant_signatures.c (struct TALER_PaymentResponsePS): Move here from taler_signatures.h. (TALER_merchant_pay_sign): New func. (TALER_merchant_pay_verify): New func.
Diffstat (limited to 'src/include/taler_crypto_lib.h')
-rw-r--r--src/include/taler_crypto_lib.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index 0884bbf3a..6be9db9a4 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -4573,6 +4573,34 @@ TALER_merchant_wire_signature_make (
struct TALER_MerchantSignatureP *merch_sig);
+/**
+ * Sign a payment confirmation.
+ *
+ * @param h_contract_terms hash of the contact of the merchant with the customer
+ * @param merch_priv private key to sign with
+ * @param[out] merch_sig where to write the signature
+ */
+void
+TALER_merchant_pay_sign (
+ const struct TALER_PrivateContractHashP *h_contract_terms,
+ const struct TALER_MerchantPrivateKeyP *merch_priv,
+ struct GNUNET_CRYPTO_EddsaSignature *merch_sig);
+
+/**
+ * Verify payment confirmation signature.
+ *
+ * @param h_contract_terms hash of the contact of the merchant with the customer
+ * @param merchant_pub public key of the merchant
+ * @param merchant_sig signature to verify
+ * @return #GNUNET_OK if the signature is valid
+ */
+enum GNUNET_GenericReturnValue
+TALER_merchant_pay_verify (
+ const struct TALER_PrivateContractHashP *h_contract_terms,
+ const struct TALER_MerchantPublicKeyP *merchant_pub,
+ const struct TALER_MerchantSignatureP *merchant_sig);
+
+
/* **************** /management/extensions offline signing **************** */
/**