diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-06-01 23:00:06 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-06-01 23:00:06 +0200 |
commit | b21705882156f73c6623f76b719fcaadc3d26555 (patch) | |
tree | ea2dbddc17b8e465d03aa4e4d967ee00134ebc0f | |
parent | fdec8e482e67b49b54c212e07bf3d17ea61960d3 (diff) |
add version to keydata returned by libtalerexchange (#5035)
-rw-r--r-- | src/exchange-lib/exchange_api_handle.c | 6 | ||||
-rw-r--r-- | src/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 index 1caa6962d..6ed868f74 100644 --- 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 index 20f98998a..b60b97e65 100644 --- 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; |