diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-07-31 22:50:16 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-07-31 22:50:21 +0200 |
commit | 1db139a7f3b74b2dc4135ab8b42d625415705d63 (patch) | |
tree | dbbd66f083001bdefc9b029c1f45a5c2cf93697e /src/lib/anastasis_recovery.c | |
parent | 812423c3872dce704ce9161127c7ebfbb7034fbe (diff) | |
download | anastasis-1db139a7f3b74b2dc4135ab8b42d625415705d63.tar.gz anastasis-1db139a7f3b74b2dc4135ab8b42d625415705d63.tar.bz2 anastasis-1db139a7f3b74b2dc4135ab8b42d625415705d63.zip |
-eliminating some legacy json_pack calls from Anastasis
Diffstat (limited to 'src/lib/anastasis_recovery.c')
-rw-r--r-- | src/lib/anastasis_recovery.c | 106 |
1 files changed, 52 insertions, 54 deletions
diff --git a/src/lib/anastasis_recovery.c b/src/lib/anastasis_recovery.c index 5b0726f..2a606d2 100644 --- a/src/lib/anastasis_recovery.c +++ b/src/lib/anastasis_recovery.c @@ -963,22 +963,20 @@ ANASTASIS_recovery_serialize (const struct ANASTASIS_Recovery *r) const struct ANASTASIS_Challenge *c = dp->pub_details.challenges[j]; json_t *cs; - cs = json_pack ("{s:o}", - "uuid", - GNUNET_JSON_from_data_auto (&c->ci.uuid)); - GNUNET_assert (NULL != cs); + cs = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_data_auto ("uuid", + &c->ci.uuid)); GNUNET_assert (0 == json_array_append_new (c_arr, cs)); } - dps = json_pack ("{s:o, s:o, s:o}", - "emk", - GNUNET_JSON_from_data_auto (&dp->emk), - "salt", - GNUNET_JSON_from_data_auto (&dp->salt), - "challenges", - c_arr); - GNUNET_assert (NULL != dps); + dps = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_data_auto ("emk", + &dp->emk), + GNUNET_JSON_pack_data_auto ("salt", + &dp->salt), + GNUNET_JSON_pack_array_steal ("challenges", + c_arr)); GNUNET_assert (0 == json_array_append_new (dps_arr, dps)); @@ -990,53 +988,53 @@ ANASTASIS_recovery_serialize (const struct ANASTASIS_Recovery *r) const struct ANASTASIS_Challenge *c = &r->cs[i]; json_t *cs; - cs = json_pack ("{s:o,s:o,s:o,s:o,s:o?," - " s:s,s:s,s:s,s:b}", - "uuid", - GNUNET_JSON_from_data_auto (&c->ci.uuid), - "truth_key", - GNUNET_JSON_from_data_auto (&c->truth_key), - "salt", - GNUNET_JSON_from_data_auto (&c->salt), - "provider_salt", - GNUNET_JSON_from_data_auto (&c->provider_salt), - "key_share", - c->ci.solved - ? GNUNET_JSON_from_data_auto (&c->key_share) - : NULL, - "url", - c->url, - "type", - c->type, - "instructions", - c->instructions, - "solved", - c->ci.solved); - GNUNET_assert (NULL != cs); + cs = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_data_auto ("uuid", + &c->ci.uuid), + GNUNET_JSON_pack_data_auto ("truth_key", + &c->truth_key), + GNUNET_JSON_pack_data_auto ("salt", + &c->salt), + GNUNET_JSON_pack_data_auto ("provider_salt", + &c->provider_salt), + GNUNET_JSON_pack_allow_null ( + GNUNET_JSON_pack_data_varsize ("key_share", + c->ci.solved + ? &c->key_share + : NULL, + sizeof (c->key_share))), + GNUNET_JSON_pack_string ("url", + c->url), + GNUNET_JSON_pack_string ("type", + c->type), + GNUNET_JSON_pack_string ("instructions", + c->instructions), + GNUNET_JSON_pack_bool ("solved", + c->ci.solved)); GNUNET_assert (0 == json_array_append_new (cs_arr, cs)); } - return json_pack ("{s:o, s:o, s:o, s:I, s:O, " - " s:s, s:s?, s:o}", - "id", - GNUNET_JSON_from_data_auto (&r->id), - "dps", - dps_arr, - "cs", - cs_arr, - "version", - (json_int_t) r->ri.version, - "id_data", - r->id_data, - "provider_url", - r->provider_url, - "secret_name", - r->secret_name, - "core_secret", - GNUNET_JSON_from_data (r->enc_core_secret, - r->enc_core_secret_size)); + return GNUNET_JSON_PACK ( + GNUNET_JSON_pack_data_auto ("id", + &r->id), + GNUNET_JSON_pack_array_steal ("dps", + dps_arr), + GNUNET_JSON_pack_array_steal ("cs", + cs_arr), + GNUNET_JSON_pack_uint64 ("version", + r->ri.version), + GNUNET_JSON_pack_object_incref ("id_data", + (json_t *) r->id_data), + GNUNET_JSON_pack_string ("provider_url", + r->provider_url), + GNUNET_JSON_pack_allow_null ( + GNUNET_JSON_pack_string ("secret_name", + r->secret_name)), + GNUNET_JSON_pack_data_varsize ("core_secret", + r->enc_core_secret, + r->enc_core_secret_size)); } |