summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/taler_auditordb_plugin.h31
-rw-r--r--src/include/taler_crypto_lib.h228
-rw-r--r--src/include/taler_exchange_service.h63
-rw-r--r--src/include/taler_exchangedb_plugin.h100
-rw-r--r--src/include/taler_signatures.h67
-rw-r--r--src/include/taler_util.h2
-rw-r--r--src/util/Makefile.am1
-rw-r--r--src/util/mhd.c2
-rw-r--r--src/util/secmod_signatures.c4
9 files changed, 343 insertions, 155 deletions
diff --git a/src/include/taler_auditordb_plugin.h b/src/include/taler_auditordb_plugin.h
index 7733009b7..18db86946 100644
--- a/src/include/taler_auditordb_plugin.h
+++ b/src/include/taler_auditordb_plugin.h
@@ -59,10 +59,10 @@ typedef void
* #GNUNET_NO to stop processing further rows
* #GNUNET_SYSERR or other values on error.
*/
-typedef int
+typedef enum GNUNET_GenericReturnValue
(*TALER_AUDITORDB_HistoricDenominationRevenueDataCallback)(
void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct TALER_DenominationHash *denom_pub_hash,
struct GNUNET_TIME_Absolute revenue_timestamp,
const struct TALER_Amount *revenue_balance,
const struct TALER_Amount *loss_balance);
@@ -81,7 +81,7 @@ typedef int
* #GNUNET_NO to stop processing further rows
* #GNUNET_SYSERR or other values on error.
*/
-typedef int
+typedef enum GNUNET_GenericReturnValue
(*TALER_AUDITORDB_HistoricReserveRevenueDataCallback)(
void *cls,
struct GNUNET_TIME_Absolute start_time,
@@ -171,7 +171,6 @@ struct TALER_AUDITORDB_ProgressPointDepositConfirmation
*/
uint64_t last_deposit_confirmation_serial_id;
-
};
@@ -275,12 +274,12 @@ struct TALER_AUDITORDB_DepositConfirmation
/**
* Hash over the contract for which this deposit is made.
*/
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
/**
* Hash over the wiring information of the merchant.
*/
- struct GNUNET_HashCode h_wire;
+ struct TALER_MerchantWireHash h_wire;
/**
* Time when this deposit confirmation was generated by the exchange.
@@ -349,7 +348,7 @@ struct TALER_AUDITORDB_DepositConfirmation
* @param dc the deposit confirmation itself
* @return #GNUNET_OK to continue to iterate, #GNUNET_SYSERR to stop iterating
*/
-typedef int
+typedef enum GNUNET_GenericReturnValue
(*TALER_AUDITORDB_DepositConfirmationCallback)(
void *cls,
uint64_t serial_id,
@@ -453,8 +452,8 @@ struct TALER_AUDITORDB_Plugin
* @return #GNUNET_OK on success,
* #GNUNET_SYSERR on DB errors
*/
- int
- (*gc) (void *cls);
+ enum GNUNET_GenericReturnValue
+ (*gc)(void *cls);
/**
@@ -1040,7 +1039,8 @@ struct TALER_AUDITORDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*insert_denomination_balance)(void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct
+ TALER_DenominationHash *denom_pub_hash,
const struct TALER_Amount *denom_balance,
const struct TALER_Amount *denom_loss,
const struct TALER_Amount *denom_risk,
@@ -1063,7 +1063,8 @@ struct TALER_AUDITORDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*update_denomination_balance)(void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct
+ TALER_DenominationHash *denom_pub_hash,
const struct TALER_Amount *denom_balance,
const struct TALER_Amount *denom_loss,
const struct TALER_Amount *denom_risk,
@@ -1085,7 +1086,8 @@ struct TALER_AUDITORDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*get_denomination_balance)(void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct
+ TALER_DenominationHash *denom_pub_hash,
struct TALER_Amount *denom_balance,
struct TALER_Amount *denom_loss,
struct TALER_Amount *denom_risk,
@@ -1102,7 +1104,8 @@ struct TALER_AUDITORDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*del_denomination_balance)(void *cls,
- const struct GNUNET_HashCode *denom_pub_hash);
+ const struct
+ TALER_DenominationHash *denom_pub_hash);
/**
@@ -1206,7 +1209,7 @@ struct TALER_AUDITORDB_Plugin
(*insert_historic_denom_revenue)(
void *cls,
const struct TALER_MasterPublicKeyP *master_pub,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct TALER_DenominationHash *denom_pub_hash,
struct GNUNET_TIME_Absolute revenue_timestamp,
const struct TALER_Amount *revenue_balance,
const struct TALER_Amount *recoup_loss_balance);
diff --git a/src/include/taler_crypto_lib.h b/src/include/taler_crypto_lib.h
index 0284fc55b..ed6ed36f1 100644
--- a/src/include/taler_crypto_lib.h
+++ b/src/include/taler_crypto_lib.h
@@ -1,6 +1,6 @@
/*
This file is part of TALER
- Copyright (C) 2014-2020 Taler Systems SA
+ Copyright (C) 2014-2021 Taler Systems SA
TALER is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
@@ -366,8 +366,85 @@ struct TALER_ClaimTokenP
struct TALER_WireSalt
{
/**
- * Actual salt value.
- * FIXME: #7032: change to 16 byte value!
+ * Actual 128-bit salt value.
+ */
+ uint32_t salt[4];
+};
+
+
+/**
+ * Hash used to represent a denomination public key
+ * and associated age restrictions (if any).
+ */
+struct TALER_DenominationHash
+{
+ /**
+ * Actual hash value.
+ */
+ struct GNUNET_HashCode data;
+};
+
+
+/**
+ * Hash used to represent the private part
+ * of a contract between merchant and consumer.
+ */
+struct TALER_PrivateContractHash
+{
+ /**
+ * Actual hash value.
+ */
+ struct GNUNET_HashCode data;
+};
+
+
+/**
+ * Hash used to represent the "public" extensions to
+ * a contract that is shared with the exchange.
+ */
+struct TALER_ExtensionContractHash
+{
+ /**
+ * Actual hash value.
+ */
+ struct GNUNET_HashCode data;
+};
+
+
+/**
+ * Hash used to represent the salted hash of a
+ * merchant's bank account.
+ */
+struct TALER_MerchantWireHash
+{
+ /**
+ * Actual hash value.
+ */
+ struct GNUNET_HashCode data;
+};
+
+
+/**
+ * Hash used to represent the unsalted hash of a
+ * payto:// URI representing a bank account.
+ */
+struct TALER_PaytoHash
+{
+ /**
+ * Actual hash value.
+ */
+ struct GNUNET_HashCode data;
+};
+
+
+/**
+ * Hash used to represent a commitment to a blinded
+ * coin, i.e. the hash of the envelope.
+ */
+struct TALER_BlindedCoinHash
+{
+ /**
+ * Actual hash value.
*/
struct GNUNET_HashCode data;
};
@@ -377,14 +454,47 @@ GNUNET_NETWORK_STRUCT_END
/**
+ * Types of public keys used for denominations in Taler.
+ */
+enum TALER_DenominationCipher
+{
+
+ /**
+ * RSA blind signature.
+ */
+ TALER_DENOMINATION_RSA = 0,
+
+ /**
+ * Clause-Schnorr blind signature.
+ */
+ // TALER_DENOMINATION_CS = 1
+};
+
+
+/**
* @brief Type of (unblinded) coin signatures for Taler.
*/
struct TALER_DenominationSignature
{
+
+ /**
+ * Type of the signature.
+ */
+ enum TALER_DenominationCipher cipher;
+
/**
- * Taler uses RSA for blinding.
+ * Details, depending on @e cipher.
*/
- struct GNUNET_CRYPTO_RsaSignature *rsa_signature;
+ union
+ {
+
+ /**
+ * If we use #TALER_DENOMINATION_RSA in @a cipher.
+ */
+ struct GNUNET_CRYPTO_RsaSignature *rsa_signature;
+
+ } details;
+
};
@@ -393,10 +503,29 @@ struct TALER_DenominationSignature
*/
struct TALER_DenominationPublicKey
{
+
/**
- * Taler uses RSA for signing coins.
+ * Type of the public key.
*/
- struct GNUNET_CRYPTO_RsaPublicKey *rsa_public_key;
+ enum TALER_DenominationCipher cipher;
+
+ /**
+ * Age restriction mask used for the key.
+ */
+ uint32_t age_mask;
+
+ /**
+ * Details, depending on @e cipher.
+ */
+ union
+ {
+
+ /**
+ * If we use #TALER_DENOMINATION_RSA in @a cipher.
+ */
+ struct GNUNET_CRYPTO_RsaPublicKey *rsa_public_key;
+
+ } details;
};
@@ -405,10 +534,23 @@ struct TALER_DenominationPublicKey
*/
struct TALER_DenominationPrivateKey
{
+
+ /**
+ * Type of the public key.
+ */
+ enum TALER_DenominationCipher cipher;
+
/**
- * Taler uses RSA for signing coins.
+ * Details, depending on @e cipher.
*/
- struct GNUNET_CRYPTO_RsaPrivateKey *rsa_private_key;
+ union
+ {
+
+ /**
+ * If we use #TALER_DENOMINATION_RSA in @a cipher.
+ */
+ struct GNUNET_CRYPTO_RsaPrivateKey *rsa_private_key;
+ };
};
@@ -428,7 +570,7 @@ struct TALER_CoinPublicInfo
* Hash of the public key representing the denomination of the coin that is
* being deposited.
*/
- struct GNUNET_HashCode denom_pub_hash;
+ struct TALER_DenominationHash denom_pub_hash;
/**
* (Unblinded) signature over @e coin_pub with @e denom_pub,
@@ -468,6 +610,30 @@ struct TALER_TrackTransferDetails
/**
+ * Compute the hash of the given @a denom_pub.
+ *
+ * @param denom_pub public key to hash
+ * @param[out] denom_hash resulting hash value
+ */
+void
+TALER_denom_pub_hash (const struct TALER_DenominationPublicKey *denom_pub,
+ struct TALER_DenominationHash *denom_hash);
+
+
+/**
+ * Obtain denomination public key from a denomination private key.
+ *
+ * @param denom_priv private key to convert
+ * @param age_mask age mask to use
+ * @param[out] denom_pub where to return the public key
+ */
+void
+TALER_denom_priv_to_pub (const struct TALER_DenominationPrivateKey *denom_priv,
+ uint32_t age_mask,
+ struct TALER_DenominationPublicKey *denom_pub);
+
+
+/**
* Check if a coin is valid; that is, whether the denomination key exists,
* is not expired, and the signature is correct.
*
@@ -520,7 +686,7 @@ struct TALER_PlanchetDetail
/**
* Hash of the denomination public key.
*/
- struct GNUNET_HashCode denom_pub_hash;
+ struct TALER_DenominationHash denom_pub_hash;
/**
* Blinded coin (see GNUNET_CRYPTO_rsa_blind()). Note: is malloc()'ed!
@@ -845,7 +1011,7 @@ typedef void
const char *section_name,
struct GNUNET_TIME_Absolute start_time,
struct GNUNET_TIME_Relative validity_duration,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_SecurityModulePublicKeyP *sm_pub,
const struct TALER_SecurityModuleSignatureP *sm_sig);
@@ -900,7 +1066,7 @@ TALER_CRYPTO_helper_denom_poll (struct TALER_CRYPTO_DenominationHelper *dh);
struct TALER_DenominationSignature
TALER_CRYPTO_helper_denom_sign (
struct TALER_CRYPTO_DenominationHelper *dh,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const void *msg,
size_t msg_size,
enum TALER_ErrorCode *ec);
@@ -924,7 +1090,7 @@ TALER_CRYPTO_helper_denom_sign (
void
TALER_CRYPTO_helper_denom_revoke (
struct TALER_CRYPTO_DenominationHelper *dh,
- const struct GNUNET_HashCode *h_denom_pub);
+ const struct TALER_DenominationHash *h_denom_pub);
/**
@@ -1090,7 +1256,7 @@ TALER_CRYPTO_helper_esign_disconnect (
* @param[out] coin_sig resulting signature
*/
void
-TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
+TALER_wallet_link_sign (const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_TransferPublicKeyP *transfer_pub,
const void *coin_ev,
size_t coin_ev_size,
@@ -1111,7 +1277,7 @@ TALER_wallet_link_sign (const struct GNUNET_HashCode *h_denom_pub,
*/
enum GNUNET_GenericReturnValue
TALER_wallet_link_verify (
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_TransferPublicKeyP *transfer_pub,
const void *coin_ev,
size_t coin_ev_size,
@@ -1200,7 +1366,7 @@ TALER_exchange_offline_auditor_del_verify (
*/
void
TALER_exchange_offline_denomination_revoke_sign (
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPrivateKeyP *master_priv,
struct TALER_MasterSignatureP *master_sig);
@@ -1215,7 +1381,7 @@ TALER_exchange_offline_denomination_revoke_sign (
*/
enum GNUNET_GenericReturnValue
TALER_exchange_offline_denomination_revoke_verify (
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPublicKeyP *master_pub,
const struct TALER_MasterSignatureP *master_sig);
@@ -1308,7 +1474,7 @@ TALER_exchange_offline_signkey_validity_verify (
*/
void
TALER_exchange_offline_denom_validity_sign (
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
struct GNUNET_TIME_Absolute stamp_expire_deposit,
@@ -1341,7 +1507,7 @@ TALER_exchange_offline_denom_validity_sign (
*/
enum GNUNET_GenericReturnValue
TALER_exchange_offline_denom_validity_verify (
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
struct GNUNET_TIME_Absolute stamp_expire_deposit,
@@ -1393,9 +1559,9 @@ TALER_exchange_secmod_eddsa_verify (
/**
- * Create security module RSA signature.
+ * Create security module denomination signature.
*
- * @param h_denom_pub hash of the public key to validate
+ * @param h_denom_pub hash of the public key to sign
* @param section_name name of the section in the configuration
* @param start_sign starting point of validity for signing
* @param duration how long will the key be in use
@@ -1403,8 +1569,8 @@ TALER_exchange_secmod_eddsa_verify (
* @param[out] secm_sig where to write the signature
*/
void
-TALER_exchange_secmod_rsa_sign (
- const struct GNUNET_HashCode *h_denom_pub,
+TALER_exchange_secmod_denom_sign (
+ const struct TALER_DenominationHash *h_denom_pub,
const char *section_name,
struct GNUNET_TIME_Absolute start_sign,
struct GNUNET_TIME_Relative duration,
@@ -1413,7 +1579,7 @@ TALER_exchange_secmod_rsa_sign (
/**
- * Verify security module RSA signature.
+ * Verify security module denomination signature.
*
* @param h_denom_pub hash of the public key to validate
* @param section_name name of the section in the configuration
@@ -1424,8 +1590,8 @@ TALER_exchange_secmod_rsa_sign (
* @return #GNUNET_OK if the signature is valid
*/
enum GNUNET_GenericReturnValue
-TALER_exchange_secmod_rsa_verify (
- const struct GNUNET_HashCode *h_denom_pub,
+TALER_exchange_secmod_denom_verify (
+ const struct TALER_DenominationHash *h_denom_pub,
const char *section_name,
struct GNUNET_TIME_Absolute start_sign,
struct GNUNET_TIME_Relative duration,
@@ -1454,7 +1620,7 @@ TALER_exchange_secmod_rsa_verify (
void
TALER_auditor_denom_validity_sign (
const char *auditor_url,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPublicKeyP *master_pub,
struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
@@ -1491,7 +1657,7 @@ TALER_auditor_denom_validity_sign (
enum GNUNET_GenericReturnValue
TALER_auditor_denom_validity_verify (
const char *auditor_url,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterPublicKeyP *master_pub,
struct GNUNET_TIME_Absolute stamp_start,
struct GNUNET_TIME_Absolute stamp_expire_withdraw,
@@ -1629,7 +1795,7 @@ TALER_exchange_offline_wire_del_verify (
*/
void
TALER_exchange_wire_signature_hash (const char *payto_uri,
- struct GNUNET_HashCode *hc);
+ struct TALER_PaytoHash *hc);
/**
@@ -1673,7 +1839,7 @@ TALER_exchange_wire_signature_make (
void
TALER_merchant_wire_signature_hash (const char *payto_uri,
const struct TALER_WireSalt *salt,
- struct GNUNET_HashCode *hc);
+ struct TALER_MerchantWireHash *hc);
/**
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
index 0b6243916..d82e4b096 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -97,7 +97,7 @@ struct TALER_EXCHANGE_DenomPublicKey
/**
* The hash of the public key.
*/
- struct GNUNET_HashCode h_key;
+ struct TALER_DenominationHash h_key;
/**
* Exchange's master signature over this denomination record.
@@ -619,7 +619,7 @@ TALER_EXCHANGE_destroy_denomination_key (
const struct TALER_EXCHANGE_DenomPublicKey *
TALER_EXCHANGE_get_denomination_key_by_hash (
const struct TALER_EXCHANGE_Keys *keys,
- const struct GNUNET_HashCode *hc);
+ const struct TALER_DenominationHash *hc);
/**
@@ -772,6 +772,7 @@ TALER_EXCHANGE_wire_cancel (struct TALER_EXCHANGE_WireHandle *wh);
* @param deposit_fee the deposit fee we expect to pay
* @param h_wire hash of the merchant’s account details
* @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange)
+ * @param h_extensions hash over the extensions
* @param h_denom_pub hash of the coin denomination's public key
* @param coin_priv coin’s private key
* @param wallet_timestamp timestamp when the contract was finalized, must not be too far in the future
@@ -783,9 +784,10 @@ void
TALER_EXCHANGE_deposit_permission_sign (
const struct TALER_Amount *amount,
const struct TALER_Amount *deposit_fee,
- const struct GNUNET_HashCode *h_wire,
- const struct GNUNET_HashCode *h_contract_terms,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_MerchantWireHash *h_wire,
+ const struct TALER_PrivateContractHash *h_contract_terms,
+ const struct TALER_ExtensionContractHash *h_extensions,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_CoinSpendPrivateKeyP *coin_priv,
struct GNUNET_TIME_Absolute wallet_timestamp,
const struct TALER_MerchantPublicKeyP *merchant_pub,
@@ -889,6 +891,7 @@ typedef void
* forced to settle in the past or upon very short notice, but of course a well-behaved exchange will limit aggregation based on the advice received)
* @param wire_details the merchant’s account details, in a format supported by the exchange
* @param h_contract_terms hash of the contact of the merchant with the customer (further details are never disclosed to the exchange)
+ * @param extension_details extension-specific details about the deposit relevant to the exchange
* @param coin_pub coin’s public key
* @param denom_pub denomination key with which the coin is signed
* @param denom_sig exchange’s unblinded signature of the coin
@@ -903,21 +906,23 @@ typedef void
* signatures fail to verify). In this case, the callback is not called.
*/
struct TALER_EXCHANGE_DepositHandle *
-TALER_EXCHANGE_deposit (struct TALER_EXCHANGE_Handle *exchange,
- const struct TALER_Amount *amount,
- struct GNUNET_TIME_Absolute wire_deadline,
- json_t *wire_details,
- const struct GNUNET_HashCode *h_contract_terms,
- const struct TALER_CoinSpendPublicKeyP *coin_pub,
- const struct TALER_DenominationSignature *denom_sig,
- const struct TALER_DenominationPublicKey *denom_pub,
- struct GNUNET_TIME_Absolute timestamp,
- const struct TALER_MerchantPublicKeyP *merchant_pub,
- struct GNUNET_TIME_Absolute refund_deadline,
- const struct TALER_CoinSpendSignatureP *coin_sig,
- TALER_EXCHANGE_DepositResultCallback cb,
- void *cb_cls,
- enum TALER_ErrorCode *ec);
+TALER_EXCHANGE_deposit (
+ struct TALER_EXCHANGE_Handle *exchange,
+ const struct TALER_Amount *amount,
+ struct GNUNET_TIME_Absolute wire_deadline,
+ const json_t *wire_details,
+ const struct TALER_PrivateContractHash *h_contract_terms,
+ const json_t *extension_details,
+ const struct TALER_CoinSpendPublicKeyP *coin_pub,
+ const struct TALER_DenominationSignature *denom_sig,
+ const struct TALER_DenominationPublicKey *denom_pub,
+ struct GNUNET_TIME_Absolute timestamp,
+ const struct TALER_MerchantPublicKeyP *merchant_pub,
+ struct GNUNET_TIME_Absolute refund_deadline,
+ const struct TALER_CoinSpendSignatureP *coin_sig,
+ TALER_EXCHANGE_DepositResultCallback cb,
+ void *cb_cls,
+ enum TALER_ErrorCode *ec);
/**
@@ -996,7 +1001,7 @@ typedef void
struct TALER_EXCHANGE_RefundHandle *
TALER_EXCHANGE_refund (struct TALER_EXCHANGE_Handle *exchange,
const struct TALER_Amount *amount,
- const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_PrivateContractHash *h_contract_terms,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
uint64_t rtransaction_id,
const struct TALER_MerchantPrivateKeyP *merchant_priv,
@@ -1712,7 +1717,7 @@ struct TALER_EXCHANGE_TransferData
/**
* hash of the wire transfer address the transfer went to
*/
- struct GNUNET_HashCode h_wire;
+ struct TALER_MerchantWireHash h_wire;
/**
* time when the exchange claims to have performed the wire transfer
@@ -1912,8 +1917,8 @@ struct TALER_EXCHANGE_DepositGetHandle *
TALER_EXCHANGE_deposits_get (
struct TALER_EXCHANGE_Handle *exchange,
const struct TALER_MerchantPrivateKeyP *merchant_priv,
- const struct GNUNET_HashCode *h_wire,
- const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_MerchantWireHash *h_wire,
+ const struct TALER_PrivateContractHash *h_contract_terms,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
TALER_EXCHANGE_DepositGetCallback cb,
void *cb_cls);
@@ -1948,7 +1953,7 @@ TALER_EXCHANGE_verify_coin_history (
const char *currency,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
json_t *history,
- struct GNUNET_HashCode *h_denom_pub,
+ struct TALER_DenominationHash *h_denom_pub,
struct TALER_Amount *total);
@@ -2146,7 +2151,7 @@ typedef void
struct TALER_EXCHANGE_KycCheckHandle *
TALER_EXCHANGE_kyc_check (struct TALER_EXCHANGE_Handle *eh,
uint64_t payment_target,
- const struct GNUNET_HashCode *h_payto,
+ const struct TALER_PaytoHash *h_payto,
struct GNUNET_TIME_Relative timeout,
TALER_EXCHANGE_KycStatusCallback cb,
void *cb_cls);
@@ -2452,7 +2457,7 @@ struct TALER_EXCHANGE_DenominationKeySignature
/**
* The hash of the denomination's public key
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* Signature over this denomination key by the exchange's master signature.
@@ -2570,7 +2575,7 @@ struct TALER_EXCHANGE_ManagementRevokeDenominationKeyHandle *
TALER_EXCHANGE_management_revoke_denomination_key (
struct GNUNET_CURL_Context *ctx,
const char *url,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_MasterSignatureP *master_sig,
TALER_EXCHANGE_ManagementRevokeDenominationKeyCallback cb,
void *cb_cls);
@@ -2942,7 +2947,7 @@ struct TALER_EXCHANGE_AuditorAddDenominationHandle *
TALER_EXCHANGE_add_auditor_denomination (
struct GNUNET_CURL_Context *ctx,
const char *url,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorPublicKeyP *auditor_pub,
const struct TALER_AuditorSignatureP *auditor_sig,
TALER_EXCHANGE_AuditorAddDenominationCallback cb,
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index 5a3313ca7..83040dbe6 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -228,7 +228,7 @@ struct TALER_EXCHANGEDB_TableData
struct
{
- struct GNUNET_HashCode h_blind_ev;
+ struct TALER_BlindedCoinHash h_blind_ev;
struct TALER_DenominationSignature denom_sig;
struct TALER_ReserveSignatureP reserve_sig;
struct GNUNET_TIME_Absolute execution_date;
@@ -309,10 +309,11 @@ struct TALER_EXCHANGEDB_TableData
struct GNUNET_TIME_Absolute refund_deadline;
struct GNUNET_TIME_Absolute wire_deadline;
struct TALER_MerchantPublicKeyP merchant_pub;
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
// h_wire omitted, to be recomputed!
struct TALER_CoinSpendSignatureP coin_sig;
json_t *wire;
+ json_t *extensions;
bool tiny;
bool done;
uint64_t known_coin_id;
@@ -618,7 +619,7 @@ typedef void
(*TALER_EXCHANGEDB_DenominationsCallback)(
void *cls,
const struct TALER_DenominationPublicKey *denom_pub,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
const struct TALER_MasterSignatureP *master_sig,
bool recoup_possible);
@@ -670,7 +671,7 @@ typedef void
(*TALER_EXCHANGEDB_AuditorDenominationsCallback)(
void *cls,
const struct TALER_AuditorPublicKeyP *auditor_pub,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorSignatureP *auditor_sig);
@@ -690,7 +691,7 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
/**
* Hash of the denomination key (which coin was generated).
*/
- struct GNUNET_HashCode denom_pub_hash;
+ struct TALER_DenominationHash denom_pub_hash;
/**
* Value of the coin being exchangeed (matching the denomination key)
@@ -723,7 +724,7 @@ struct TALER_EXCHANGEDB_CollectableBlindcoin
* Hash over the blinded message, needed to verify
* the @e reserve_sig.
*/
- struct GNUNET_HashCode h_coin_envelope;
+ struct TALER_BlindedCoinHash h_coin_envelope;
/**
* Signature confirming the withdrawal, matching @e reserve_pub,
@@ -797,7 +798,7 @@ struct TALER_EXCHANGEDB_RecoupListEntry
/**
* Hash of the public denomination key used to sign the coin.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* Public key of the reserve the coin was paid back into.
@@ -977,7 +978,7 @@ struct TALER_EXCHANGEDB_Deposit
* Hash over the proposal data between merchant and customer
* (remains unknown to the Exchange).
*/
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
/**
* Hash of the (canonical) representation of @e wire, used
@@ -985,7 +986,7 @@ struct TALER_EXCHANGEDB_Deposit
* the exchange from the detailed wire data provided by the
* merchant.
*/
- struct GNUNET_HashCode h_wire;
+ struct TALER_MerchantWireHash h_wire;
/**
* Detailed information about the receiver for executing the transaction.
@@ -994,6 +995,12 @@ struct TALER_EXCHANGEDB_Deposit
json_t *receiver_wire_account;
/**
+ * Additional details for extensions relevant for this
+ * deposit operation.
+ */
+ json_t *extension_details;
+
+ /**
* Time when this request was generated. Used, for example, to
* assess when (roughly) the income was achieved for tax purposes.
* Note that the Exchange will only check that the timestamp is not "too
@@ -1062,7 +1069,7 @@ struct TALER_EXCHANGEDB_DepositListEntry
* Hash over the proposa data between merchant and customer
* (remains unknown to the Exchange).
*/
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
/**
* Hash of the (canonical) representation of @e wire, used
@@ -1070,12 +1077,12 @@ struct TALER_EXCHANGEDB_DepositListEntry
* the exchange from the detailed wire data provided by the
* merchant.
*/
- struct GNUNET_HashCode h_wire;
+ struct TALER_MerchantWireHash h_wire;
/**
* Hash of the public denomination key used to sign the coin.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* Detailed information about the receiver for executing the transaction.
@@ -1152,7 +1159,7 @@ struct TALER_EXCHANGEDB_RefundListEntry
* Hash over the proposal data between merchant and customer
* (remains unknown to the Exchange).
*/
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
/**
* Merchant-generated REFUND transaction ID to detect duplicate
@@ -1258,7 +1265,7 @@ struct TALER_EXCHANGEDB_MeltListEntry
/**
* Hash of the public denomination key used to sign the coin.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* How much value is being melted? This amount includes the fees,
@@ -1462,7 +1469,7 @@ typedef enum GNUNET_DB_QueryStatus
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_Amount *amount_with_fee,
const struct TALER_Amount *deposit_fee,
- const struct GNUNET_HashCode *h_contract_terms);
+ const struct TALER_PrivateContractHash *h_contract_terms);
/**
@@ -1489,7 +1496,7 @@ typedef enum GNUNET_DB_QueryStatus
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_Amount *amount_with_fee,
const struct TALER_Amount *deposit_fee,
- const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_PrivateContractHash *h_contract_terms,
const json_t *receiver_wire_account);
@@ -1544,7 +1551,7 @@ typedef enum GNUNET_GenericReturnValue
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_Amount *amount_with_fee,
- const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_PrivateContractHash *h_contract_terms,
struct GNUNET_TIME_Absolute refund_deadline,
struct GNUNET_TIME_Absolute wire_deadline,
const json_t *receiver_wire_account,
@@ -1735,7 +1742,7 @@ typedef enum GNUNET_GenericReturnValue
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct TALER_MerchantSignatureP *merchant_sig,
- const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_PrivateContractHash *h_contract_terms,
uint64_t rtransaction_id,
const struct TALER_Amount *amount_with_fee);
@@ -1816,7 +1823,7 @@ typedef enum GNUNET_GenericReturnValue
(*TALER_EXCHANGEDB_WithdrawCallback)(
void *cls,
uint64_t rowid,
- const struct GNUNET_HashCode *h_blind_ev,
+ const struct TALER_BlindedCoinHash *h_blind_ev,
const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_ReservePublicKeyP *reserve_pub,
const struct TALER_ReserveSignatureP *reserve_sig,
@@ -1860,10 +1867,10 @@ typedef void
void *cls,
uint64_t rowid,
const struct TALER_MerchantPublicKeyP *merchant_pub,
- const struct GNUNET_HashCode *h_wire,
+ const struct TALER_MerchantWireHash *h_wire,
const json_t *account_details,
struct GNUNET_TIME_Absolute exec_time,
- const struct GNUNET_HashCode *h_contract_terms,
+ const struct TALER_PrivateContractHash *h_contract_terms,
const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_Amount *coin_value,
@@ -1962,7 +1969,7 @@ typedef enum GNUNET_GenericReturnValue
struct GNUNET_TIME_Absolute timestamp,
const struct TALER_Amount *amount,
const struct TALER_CoinSpendPublicKeyP *old_coin_pub,
- const struct GNUNET_HashCode *old_denom_pub_hash,
+ const struct TLAER_DenominationHash *old_denom_pub_hash,
const struct TALER_CoinPublicInfo *coin,
const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_CoinSpendSignatureP *coin_sig,
@@ -2045,7 +2052,7 @@ typedef void
const struct TALER_CoinPublicInfo *coin,
const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_DenominationBlindingKeyP *coin_blind,
- const struct GNUNET_HashCode *h_blinded_ev,
+ const struct TALER_BlindedCoinHash *h_blinded_ev,
const struct TALER_Amount *amount);
@@ -2260,7 +2267,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*get_denomination_info)(
void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct TALER_DenominationHash *denom_pub_hash,
struct TALER_EXCHANGEDB_DenominationKeyInformationP *issue);
@@ -2400,7 +2407,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*select_kyc_status)(void *cls,
uint64_t payment_target_uuid,
- struct GNUNET_HashCode *h_payto,
+ struct TALER_PaytoHash *h_payto,
struct TALER_EXCHANGEDB_KycStatus *kyc);
@@ -2472,7 +2479,7 @@ struct TALER_EXCHANGEDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*get_withdraw_info)(void *cls,
- const struct GNUNET_HashCode *h_blind,
+ const struct TALER_BlindedCoinHash *h_blind,
struct TALER_EXCHANGEDB_CollectableBlindcoin *collectable);
@@ -2547,7 +2554,7 @@ struct TALER_EXCHANGEDB_Plugin
*/
long long
(*count_known_coins) (void *cls,
- const struct GNUNET_HashCode *denom_pub_hash);
+ const struct TALER_DenominationHash *denom_pub_hash);
/**
@@ -2612,7 +2619,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*get_coin_denomination)(void *cls,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
- struct GNUNET_HashCode *denom_hash);
+ struct TALER_DenominationHash *denom_hash);
/**
@@ -2676,7 +2683,7 @@ struct TALER_EXCHANGEDB_Plugin
(*select_refunds_by_coin)(void *cls,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub,
- const struct GNUNET_HashCode *h_contract,
+ const struct TALER_PrivateContractHash *h_contract,
TALER_EXCHANGEDB_RefundCoinCallback cb,
void *cb_cls);
@@ -2712,8 +2719,8 @@ struct TALER_EXCHANGEDB_Plugin
(*test_deposit_done)(void *cls,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub,
- const struct GNUNET_HashCode *h_contract_terms,
- const struct GNUNET_HashCode *h_wire);
+ const struct TALER_PrivateContractHash *h_contract_terms,
+ const struct TALER_MerchantWireHash *h_wire);
/**
@@ -2778,7 +2785,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*iterate_matching_deposits)(
void *cls,
- const struct GNUNET_HashCode *h_wire,
+ const struct TALER_MerchantWireHash *h_wire,
const struct TALER_MerchantPublicKeyP *merchant_pub,
TALER_EXCHANGEDB_MatchingDepositIterator deposit_cb,
void *deposit_cb_cls,
@@ -2959,8 +2966,8 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*lookup_transfer_by_deposit)(
void *cls,
- const struct GNUNET_HashCode *h_contract_terms,
- const struct GNUNET_HashCode *h_wire,
+ const struct TALER_PrivateContractHash *h_contract_terms,
+ const struct TALER_MerchantWireHash *h_wire,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
const struct TALER_MerchantPublicKeyP *merchant_pub,
bool *pending,
@@ -3173,8 +3180,8 @@ struct TALER_EXCHANGEDB_Plugin
* @return #GNUNET_OK on success,
* #GNUNET_SYSERR on DB errors
*/
- int
- (*gc) (void *cls);
+ enum GNUNET_GenericReturnValue
+ (*gc)(void *cls);
/**
@@ -3395,7 +3402,7 @@ struct TALER_EXCHANGEDB_Plugin
const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_DenominationBlindingKeyP *coin_blind,
const struct TALER_Amount *amount,
- const struct GNUNET_HashCode *h_blind_ev,
+ const struct TALER_BlindedCoinHash *h_blind_ev,
struct GNUNET_TIME_Absolute timestamp);
@@ -3420,7 +3427,7 @@ struct TALER_EXCHANGEDB_Plugin
const struct TALER_CoinSpendSignatureP *coin_sig,
const struct TALER_DenominationBlindingKeyP *coin_blind,
const struct TALER_Amount *amount,
- const struct GNUNET_HashCode *h_blind_ev,
+ const struct TALER_BlindedCoinHash *h_blind_ev,
struct GNUNET_TIME_Absolute timestamp);
@@ -3435,7 +3442,7 @@ struct TALER_EXCHANGEDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*get_reserve_by_h_blind)(void *cls,
- const struct GNUNET_HashCode *h_blind_ev,
+ const struct TALER_BlindedCoinHash *h_blind_ev,
struct TALER_ReservePublicKeyP *reserve_pub);
@@ -3450,7 +3457,7 @@ struct TALER_EXCHANGEDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*get_old_coin_by_h_blind)(void *cls,
- const struct GNUNET_HashCode *h_blind_ev,
+ const struct TALER_BlindedCoinHash *h_blind_ev,
struct TALER_CoinSpendPublicKeyP *old_coin_pub);
@@ -3466,7 +3473,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*insert_denomination_revocation)(
void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct TALER_DenominationHash *denom_pub_hash,
const struct TALER_MasterSignatureP *master_sig);
@@ -3482,7 +3489,8 @@ struct TALER_EXCHANGEDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*get_denomination_revocation)(void *cls,
- const struct GNUNET_HashCode *denom_pub_hash,
+ const struct
+ TALER_DenominationHash *denom_pub_hash,
struct TALER_MasterSignatureP *master_sig,
uint64_t *rowid);
@@ -3699,7 +3707,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*lookup_denomination_key)(
void *cls,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta);
@@ -3716,7 +3724,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*add_denomination_key)(
void *cls,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_DenominationPublicKey *denom_pub,
const struct TALER_EXCHANGEDB_DenominationKeyMetaData *meta,
const struct TALER_MasterSignatureP *master_sig);
@@ -3767,7 +3775,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*insert_auditor_denom_sig)(
void *cls,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorPublicKeyP *auditor_pub,
const struct TALER_AuditorSignatureP *auditor_sig);
@@ -3784,7 +3792,7 @@ struct TALER_EXCHANGEDB_Plugin
enum GNUNET_DB_QueryStatus
(*select_auditor_denom_sig)(
void *cls,
- const struct GNUNET_HashCode *h_denom_pub,
+ const struct TALER_DenominationHash *h_denom_pub,
const struct TALER_AuditorPublicKeyP *auditor_pub,
struct TALER_AuditorSignatureP *auditor_sig);
diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h
index 38c2dc25d..b7279a66c 100644
--- a/src/include/taler_signatures.h
+++ b/src/include/taler_signatures.h
@@ -332,7 +332,7 @@ struct TALER_DenominationKeyAnnouncementPS
/**
* Hash of the denomination public key.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* Hash of the section name in the configuration of this denomination.
@@ -398,7 +398,7 @@ struct TALER_LinkDataPS
/**
* Hash of the denomination public key of the new coin.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* Transfer public key (for which the private key was not revealed)
@@ -408,7 +408,7 @@ struct TALER_LinkDataPS
/**
* Hash of the blinded new coin.
*/
- struct GNUNET_HashCode coin_envelope_hash;
+ struct TALER_BlindedCoinHash coin_envelope_hash;
};
@@ -443,12 +443,12 @@ struct TALER_WithdrawRequestPS
/**
* Hash of the denomination public key for the coin that is withdrawn.
*/
- struct GNUNET_HashCode h_denomination_pub GNUNET_PACKED;
+ struct TALER_DenominationHash h_denomination_pub GNUNET_PACKED;
/**
* Hash of the (blinded) message to be signed by the Exchange.
*/
- struct GNUNET_HashCode h_coin_envelope GNUNET_PACKED;
+ struct TALER_BlindedCoinHash h_coin_envelope GNUNET_PACKED;
};
@@ -467,17 +467,22 @@ struct TALER_DepositRequestPS
/**
* Hash over the contract for which this deposit is made.
*/
- struct GNUNET_HashCode h_contract_terms GNUNET_PACKED;
+ struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
+
+ /**
+ * Hash over extension attributes shared with the exchange.
+ */
+ struct TALER_ExtensionContractHash h_extensions GNUNET_PACKED;
/**
* Hash over the wiring information of the merchant.
*/
- struct GNUNET_HashCode h_wire GNUNET_PACKED;
+ struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/**
* Hash over the denomination public key used to sign the coin.
*/
- struct GNUNET_HashCode h_denom_pub GNUNET_PACKED;
+ struct TALER_DenominationHash h_denom_pub GNUNET_PACKED;
/**
* Time when this request was generated. Used, for example, to
@@ -550,12 +555,12 @@ struct TALER_DepositConfirmationPS
/**
* Hash over the contract for which this deposit is made.
*/
- struct GNUNET_HashCode h_contract_terms GNUNET_PACKED;
+ struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/**
* Hash over the wiring information of the merchant.
*/
- struct GNUNET_HashCode h_wire GNUNET_PACKED;
+ struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/**
* Time when this confirmation was generated / when the exchange received
@@ -609,7 +614,7 @@ struct TALER_RefundRequestPS
* Hash over the proposal data to identify the contract
* which is being refunded.
*/
- struct GNUNET_HashCode h_contract_terms GNUNET_PACKED;
+ struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/**
* The coin's public key. This is the value that must have been
@@ -651,7 +656,7 @@ struct TALER_RefundConfirmationPS
* Hash over the proposal data to identify the contract
* which is being refunded.
*/
- struct GNUNET_HashCode h_contract_terms GNUNET_PACKED;
+ struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/**
* The coin's public key. This is the value that must have been
@@ -698,7 +703,7 @@ struct TALER_RefreshMeltCoinAffirmationPS
/**
* Hash over the denomination public key used to sign the coin.
*/
- struct GNUNET_HashCode h_denom_pub GNUNET_PACKED;
+ struct TALER_DenominationHash h_denom_pub GNUNET_PACKED;
/**
* How much of the value of the coin should be melted? This amount
@@ -845,7 +850,7 @@ struct TALER_ExchangeAccountSetupSuccessPS
* Hash over the payto for which the signature was
* made.
*/
- struct GNUNET_HashCode h_payto;
+ struct TALER_PaytoHash h_payto;
/**
* When was the signature made.
@@ -931,7 +936,7 @@ struct TALER_MasterAddWirePS
/**
* Hash over the exchange's payto URI.
*/
- struct GNUNET_HashCode h_wire GNUNET_PACKED;
+ struct TALER_PaytoHash h_payto GNUNET_PACKED;
};
@@ -956,7 +961,7 @@ struct TALER_MasterDelWirePS
/**
* Hash over the exchange's payto URI.
*/
- struct GNUNET_HashCode h_wire GNUNET_PACKED;
+ struct TALER_PaytoHash h_payto GNUNET_PACKED;
};
@@ -1053,7 +1058,7 @@ struct TALER_DenominationKeyValidityPS
* Hash code of the denomination public key. (Used to avoid having
* the variable-size RSA key in this struct.)
*/
- struct GNUNET_HashCode denom_hash GNUNET_PACKED;
+ struct TALER_DenominationHash denom_hash GNUNET_PACKED;
};
@@ -1155,7 +1160,7 @@ struct TALER_ExchangeKeyValidityPS
* Hash code of the denomination public key. (Used to avoid having
* the variable-size RSA key in this struct.)
*/
- struct GNUNET_HashCode denom_hash GNUNET_PACKED;
+ struct TALER_DenominationHash denom_hash GNUNET_PACKED;
};
@@ -1176,7 +1181,7 @@ struct TALER_MasterWireDetailsPS
* Hash over the account holder's payto:// URL and
* the salt, as done by #TALER_exchange_wire_signature_hash().
*/
- struct GNUNET_HashCode h_wire_details GNUNET_PACKED;
+ struct TALER_MerchantWireHash h_wire_details GNUNET_PACKED;
};
@@ -1236,7 +1241,7 @@ struct TALER_MasterDenominationKeyRevocationPS
/**
* Hash of the denomination key.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
};
@@ -1273,12 +1278,12 @@ struct TALER_DepositTrackPS
/**
* Hash over the proposal data of the contract for which this deposit is made.
*/
- struct GNUNET_HashCode h_contract_terms GNUNET_PACKED;
+ struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/**
* Hash over the wiring information of the merchant.
*/
- struct GNUNET_HashCode h_wire GNUNET_PACKED;
+ struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/**
* The Merchant's public key. The deposit inquiry request is to be
@@ -1305,7 +1310,7 @@ struct TALER_WireDepositDetailP
/**
* Hash of the contract
*/
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
/**
* Time when the wire transfer was performed by the exchange.
@@ -1360,7 +1365,7 @@ struct TALER_WireDepositDataPS
/**
* Hash of wire details of the merchant.
*/
- struct GNUNET_HashCode h_wire;
+ struct TALER_MerchantWireHash h_wire;
/**
* Hash of the individual deposits that were aggregated,
@@ -1403,7 +1408,7 @@ struct TALER_PaymentResponsePS
/**
* Hash of the proposal data associated with this confirmation
*/
- struct GNUNET_HashCode h_contract_terms;
+ struct TALER_PrivateContractHash h_contract_terms;
};
@@ -1422,12 +1427,12 @@ struct TALER_ConfirmWirePS
/**
* Hash over the wiring information of the merchant.
*/
- struct GNUNET_HashCode h_wire GNUNET_PACKED;
+ struct TALER_MerchantWireHash h_wire GNUNET_PACKED;
/**
* Hash over the contract for which this deposit is made.
*/
- struct GNUNET_HashCode h_contract_terms GNUNET_PACKED;
+ struct TALER_PrivateContractHash h_contract_terms GNUNET_PACKED;
/**
* Raw value (binary encoding) of the wire transfer subject.
@@ -1476,7 +1481,7 @@ struct TALER_RecoupRequestPS
/**
* Hash of the (revoked) denomination public key of the coin.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
/**
* Blinding factor that was used to withdraw the coin.
@@ -1582,7 +1587,7 @@ struct TALER_DenominationUnknownAffirmationPS
/**
* Hash of the public denomination key we do not know.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
};
@@ -1612,7 +1617,7 @@ struct TALER_DenominationExpiredAffirmationPS
/**
* Hash of the public denomination key we do not know.
*/
- struct GNUNET_HashCode h_denom_pub;
+ struct TALER_DenominationHash h_denom_pub;
};
@@ -1652,7 +1657,7 @@ struct TALER_ReserveCloseConfirmationPS
/**
* Hash of the receiver's bank account.
*/
- struct GNUNET_HashCode h_wire;
+ struct TALER_PaytoHash h_wire;
/**
* Wire transfer subject.
diff --git a/src/include/taler_util.h b/src/include/taler_util.h
index 2c556be27..4faa75c4f 100644
--- a/src/include/taler_util.h
+++ b/src/include/taler_util.h
@@ -233,7 +233,7 @@ TALER_language_matches (const char *language_pattern,
* #GNUNET_NO if the MHD connection is using http,
* #GNUNET_SYSERR if the connection type couldn't be determined
*/
-int
+enum GNUNET_GenericReturnValue
TALER_mhd_is_https (struct MHD_Connection *connection);
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index e94c64a35..c8455dd43 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -69,6 +69,7 @@ libtalerutil_la_SOURCES = \
crypto_helper_denom.c \
crypto_helper_esign.c \
crypto_wire.c \
+ denom.c \
getopt.c \
lang.c \
iban.c \
diff --git a/src/util/mhd.c b/src/util/mhd.c
index 9684f979f..2f262340f 100644
--- a/src/util/mhd.c
+++ b/src/util/mhd.c
@@ -31,7 +31,7 @@
* #GNUNET_NO if the MHD connection is using http,
* #GNUNET_SYSERR if the connection type couldn't be determined
*/
-int
+enum GNUNET_GenericReturnValue
TALER_mhd_is_https (struct MHD_Connection *connection)
{
const union MHD_ConnectionInfo *ci;
diff --git a/src/util/secmod_signatures.c b/src/util/secmod_signatures.c
index 3df68861d..875f3eb5d 100644
--- a/src/util/secmod_signatures.c
+++ b/src/util/secmod_signatures.c
@@ -70,7 +70,7 @@ TALER_exchange_secmod_eddsa_verify (
void
-TALER_exchange_secmod_rsa_sign (
+TALER_exchange_secmod_denom_sign (
const struct GNUNET_HashCode *h_denom_pub,
const char *section_name,
struct GNUNET_TIME_Absolute start_sign,
@@ -97,7 +97,7 @@ TALER_exchange_secmod_rsa_sign (
enum GNUNET_GenericReturnValue
-TALER_exchange_secmod_rsa_verify (
+TALER_exchange_secmod_denom_verify (
const struct GNUNET_HashCode *h_denom_pub,
const char *section_name,
struct GNUNET_TIME_Absolute start_sign,