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; }; @@ -376,15 +453,48 @@ struct TALER_WireSalt 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 { + /** - * Taler uses RSA for blinding. + * Type of the signature. */ - struct GNUNET_CRYPTO_RsaSignature *rsa_signature; + enum TALER_DenominationCipher cipher; + + /** + * Details, depending on @e cipher. + */ + 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 { + /** - * Taler uses RSA for signing coins. + * Type of the public key. */ - struct GNUNET_CRYPTO_RsaPrivateKey *rsa_private_key; + enum TALER_DenominationCipher cipher; + + /** + * Details, depending on @e cipher. + */ + 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, @@ -467,6 +609,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. @@ -993,6 +994,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. @@ -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,