diff options
Diffstat (limited to 'src/json/json_wire.c')
-rw-r--r-- | src/json/json_wire.c | 117 |
1 files changed, 3 insertions, 114 deletions
diff --git a/src/json/json_wire.c b/src/json/json_wire.c index 7ec21da65..9d22d28ea 100644 --- a/src/json/json_wire.c +++ b/src/json/json_wire.c @@ -24,20 +24,12 @@ #include "taler_json_lib.h" -/** - * Compute the hash of the given wire details. The resulting - * hash is what is put into the contract. - * - * @param wire_s wire details to hash - * @param[out] hc set to the hash - * @return #GNUNET_OK on success, #GNUNET_SYSERR if @a wire_s is malformed - */ -int +enum GNUNET_GenericReturnValue TALER_JSON_merchant_wire_signature_hash (const json_t *wire_s, - struct GNUNET_HashCode *hc) + struct TALER_MerchantWireHashP *hc) { const char *payto_uri; - struct TALER_WireSalt salt; + struct TALER_WireSaltP salt; struct GNUNET_JSON_Specification spec[] = { GNUNET_JSON_spec_string ("payto_uri", &payto_uri), @@ -78,102 +70,6 @@ TALER_JSON_merchant_wire_signature_hash (const json_t *wire_s, } -/** - * Check the signature in @a wire_s. Also performs rudimentary - * checks on the account data *if* supported. - * - * @param wire_s signed wire information of an exchange - * @param master_pub master public key of the exchange - * @return #GNUNET_OK if signature is valid - */ -int -TALER_JSON_exchange_wire_signature_check ( - const json_t *wire_s, - const struct TALER_MasterPublicKeyP *master_pub) -{ - const char *payto_uri; - struct TALER_MasterSignatureP master_sig; - struct GNUNET_JSON_Specification spec[] = { - GNUNET_JSON_spec_string ("payto_uri", - &payto_uri), - GNUNET_JSON_spec_fixed_auto ("master_sig", - &master_sig), - GNUNET_JSON_spec_end () - }; - - if (GNUNET_OK != - GNUNET_JSON_parse (wire_s, - spec, - NULL, NULL)) - { - GNUNET_break_op (0); - return GNUNET_SYSERR; - } - - { - char *err; - - err = TALER_payto_validate (payto_uri); - if (NULL != err) - { - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, - "URI `%s' ill-formed: %s\n", - payto_uri, - err); - GNUNET_free (err); - return GNUNET_SYSERR; - } - } - - return TALER_exchange_wire_signature_check (payto_uri, - master_pub, - &master_sig); -} - - -/** - * Create a signed wire statement for the given account. - * - * @param payto_uri account specification - * @param master_priv private key to sign with - * @return NULL if @a payto_uri is malformed - */ -json_t * -TALER_JSON_exchange_wire_signature_make ( - const char *payto_uri, - const struct TALER_MasterPrivateKeyP *master_priv) -{ - struct TALER_MasterSignatureP master_sig; - char *err; - - if (NULL != - (err = TALER_payto_validate (payto_uri))) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Invalid payto URI `%s': %s\n", - payto_uri, - err); - GNUNET_free (err); - return NULL; - } - TALER_exchange_wire_signature_make (payto_uri, - master_priv, - &master_sig); - return GNUNET_JSON_PACK ( - GNUNET_JSON_pack_string ("payto_uri", - payto_uri), - GNUNET_JSON_pack_data_auto ("master_sig", - &master_sig)); -} - - -/** - * Obtain the wire method associated with the given - * wire account details. @a wire_s must contain a payto://-URL - * under 'payto_uri'. - * - * @return NULL on error - */ char * TALER_JSON_wire_to_payto (const json_t *wire_s) { @@ -204,13 +100,6 @@ TALER_JSON_wire_to_payto (const json_t *wire_s) } -/** - * Obtain the wire method associated with the given - * wire account details. @a wire_s must contain a payto://-URL - * under 'url'. - * - * @return NULL on error - */ char * TALER_JSON_wire_to_method (const json_t *wire_s) { |