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:
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;