exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit b21705882156f73c6623f76b719fcaadc3d26555
parent fdec8e482e67b49b54c212e07bf3d17ea61960d3
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  1 Jun 2017 23:00:06 +0200

add version to keydata returned by libtalerexchange (#5035)

Diffstat:
Msrc/exchange-lib/exchange_api_handle.c | 6++++++
Msrc/include/taler_exchange_service.h | 8++++++++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/exchange-lib/exchange_api_handle.c b/src/exchange-lib/exchange_api_handle.c @@ -503,7 +503,10 @@ decode_keys_json (const json_t *resp_obj, hash_context = GNUNET_CRYPTO_hash_context_start (); /* parse the master public key and issue date of the response */ { + const char *ver; struct GNUNET_JSON_Specification spec[] = { + GNUNET_JSON_spec_string ("version", + &ver), GNUNET_JSON_spec_fixed_auto ("master_public_key", &key_data->master_pub), GNUNET_JSON_spec_fixed_auto ("eddsa_sig", @@ -519,6 +522,7 @@ decode_keys_json (const json_t *resp_obj, GNUNET_JSON_parse (resp_obj, spec, NULL, NULL)); + key_data->version = GNUNET_strdup (ver); } /* parse the signing keys */ @@ -643,6 +647,8 @@ free_key_data (struct TALER_EXCHANGE_Keys *key_data) GNUNET_array_grow (key_data->auditors, key_data->num_auditors, 0); + GNUNET_free_non_null (key_data->version); + key_data->version = NULL; } diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h @@ -198,6 +198,14 @@ struct TALER_EXCHANGE_Keys struct TALER_EXCHANGE_AuditorInformation *auditors; /** + * Supported Taler protocol version by the exchange. + * String in the format current:revision:age using the + * semantics of GNU libtool. See + * https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning + */ + char *version; + + /** * Length of the @e sign_keys array. */ unsigned int num_sign_keys;