diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-11-11 18:09:19 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-11-11 18:09:19 +0100 |
commit | d97cd0c98d01309a0c08c2e70cc73c7a76cf8f88 (patch) | |
tree | d39499727655d526fccbf937ea6bc484d9b804d4 /src | |
parent | 9bbfca568feed4b73a31e657955cf0005c17cdb5 (diff) | |
download | exchange-d97cd0c98d01309a0c08c2e70cc73c7a76cf8f88.tar.xz |
define signature formats for #3888
Diffstat (limited to 'src')
-rw-r--r-- | src/include/taler_signatures.h | 64 |
1 files changed, 60 insertions, 4 deletions
diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h index 3bdc4eee1..555c93e37 100644 --- a/src/include/taler_signatures.h +++ b/src/include/taler_signatures.h @@ -132,6 +132,12 @@ */ #define TALER_SIGNATURE_MERCHANT_REFUND 1102 +/** + * Signature where the merchant confirms that he needs the wire + * transfer identifier for a deposit operation. + */ +#define TALER_SIGNATURE_MERCHANT_DEPOSIT_WTID 1103 + /*********************/ /* Wallet signatures */ @@ -300,8 +306,7 @@ struct TALER_DepositRequestPS /** * The Merchant's public key. Allows the merchant to later refund - * the transaction. All zeros if nobody is allowed to refund the - * transaction later. + * the transaction or to inquire about the wire transfer identifier. */ struct TALER_MerchantPublicKeyP merchant; @@ -372,8 +377,7 @@ struct TALER_DepositConfirmationPS /** * The Merchant's public key. Allows the merchant to later refund - * the transaction. All zeros if nobody is allowed to refund the - * transaction later. + * the transaction or to inquire about the wire transfer identifier. */ struct TALER_MerchantPublicKeyP merchant; @@ -791,6 +795,58 @@ struct TALER_MintWireSupportMethodsPS }; + + +/** + * @brief Format used to generate the signature on a request to obtain + * the wire transfer identifier associated with a deposit. + */ +struct TALER_DepositTrackPS +{ + /** + * Purpose must be #TALER_SIGNATURE_MERCHANT_DEPOSIT_WTID. + */ + struct GNUNET_CRYPTO_EccSignaturePurpose purpose; + + /** + * Hash over the contract for which this deposit is made. + */ + struct GNUNET_HashCode h_contract GNUNET_PACKED; + + /** + * Hash over the wiring information of the merchant. + */ + struct GNUNET_HashCode h_wire GNUNET_PACKED; + + /** + * Merchant-generated transaction ID to detect duplicate + * transactions. The merchant must communicate a merchant-unique ID + * to the customer for each transaction. Note that different coins + * that are part of the same transaction can use the same + * transaction ID. The transaction ID is useful for later disputes, + * and the merchant's contract offer (@e h_contract) with the + * customer should include the offer's term and transaction ID + * signed with a key from the merchant. + */ + uint64_t transaction_id GNUNET_PACKED; + + /** + * The Merchant's public key. The deposit inquiry request is to be + * signed by the corresponding private key (using EdDSA). + */ + struct TALER_MerchantPublicKeyP merchant; + + /** + * The coin's public key. This is the value that must have been + * signed (blindly) by the Mint. + */ + struct TALER_CoinSpendPublicKeyP coin_pub; + +}; + + + + GNUNET_NETWORK_STRUCT_END #endif |