diff options
author | Özgür Kesim <oec-taler@kesim.org> | 2021-12-27 23:24:48 +0100 |
---|---|---|
committer | Özgür Kesim <oec-taler@kesim.org> | 2021-12-27 23:24:48 +0100 |
commit | ef4238874f6628a9ee4464ad3b70a7fde96d518b (patch) | |
tree | 27ba7f32c4d32bce4c821ba6c6a2ed8791d2c30b /src/lib | |
parent | 070f442a1182c7c2a09c42e94ce202509ade1b77 (diff) | |
download | exchange-ef4238874f6628a9ee4464ad3b70a7fde96d518b.tar.xz |
[age restriction] progress 9/n
More worke towards support for extensions and age restriction:
- taler-exchange-httpd_management_extensions.c almost completed
- handling of request implemented
- stub "set_extensions" for database transaction added
- utility functions added
- TALER_exchange_offline_extension_agemask_{sign,verify}
- TALER_agemask_parse_json
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/exchange_api_management_post_extensions.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/lib/exchange_api_management_post_extensions.c b/src/lib/exchange_api_management_post_extensions.c index 7f6349113..a2de2454c 100644 --- a/src/lib/exchange_api_management_post_extensions.c +++ b/src/lib/exchange_api_management_post_extensions.c @@ -130,11 +130,10 @@ TALER_EXCHANGE_management_post_extensions ( void *cb_cls) { struct TALER_EXCHANGE_ManagementPostExtensionsHandle *ph; - // FIXME-oec: TODO! CURL *eh = NULL; - json_t *body; + json_t *body = NULL; json_t *extensions = NULL; - json_t *extension_sigs = NULL; + json_t *extensions_sigs = NULL; ph = GNUNET_new (struct TALER_EXCHANGE_ManagementPostExtensionsHandle); ph->cb = cb; @@ -156,16 +155,18 @@ TALER_EXCHANGE_management_post_extensions ( { json_t *config; const struct TALER_AgeMask *mask; - const struct TALER_Extension *ext - = &pkd->extensions[i]; + const struct TALER_Extension *ext = &pkd->extensions[i]; switch (ext->type) { // TODO: case TALER_Extension_Peer2Peer case TALER_Extension_AgeRestriction: - mask = (struct TALER_AgeMask *) (&ext->config); - config = GNUNET_JSON_PACK (GNUNET_JSON_pack_data_auto ("mask", - &mask->mask)); + mask = (const struct TALER_AgeMask *) (&ext->config); + config = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_string ("extension", + ext->name), + GNUNET_JSON_pack_data_auto ("mask", + &mask->mask)); GNUNET_assert (NULL != config); break; default: @@ -177,22 +178,22 @@ TALER_EXCHANGE_management_post_extensions ( json_array_append_new ( extensions, GNUNET_JSON_PACK ( - GNUNET_JSON_pack_data_auto ("extension", + GNUNET_JSON_pack_data_auto ("name", &ext->name), GNUNET_JSON_pack_data_auto ("config", config) ))); } - extension_sigs = json_array (); - GNUNET_assert (NULL != extension_sigs); + extensions_sigs = json_array (); + GNUNET_assert (NULL != extensions_sigs); for (unsigned int i = 0; i<pkd->num_extensions; i++) { const struct TALER_MasterSignatureP *sks - = &pkd->extension_sigs[i]; + = &pkd->extensions_sigs[i]; GNUNET_assert (0 == json_array_append_new ( - extension_sigs, + extensions_sigs, GNUNET_JSON_PACK ( GNUNET_JSON_pack_data_auto ("extension_sig", &sks->eddsa_signature)))); @@ -200,8 +201,8 @@ TALER_EXCHANGE_management_post_extensions ( body = GNUNET_JSON_PACK ( GNUNET_JSON_pack_array_steal ("extensions", extensions), - GNUNET_JSON_pack_array_steal ("extension_sigs", - extension_sigs)); + GNUNET_JSON_pack_array_steal ("extensions_sigs", + extensions_sigs)); eh = curl_easy_init (); GNUNET_assert (NULL != eh); if (GNUNET_OK != |