diff options
author | Lucien Heuzeveldt <lucienclaude.heuzeveldt@students.bfh.ch> | 2022-01-10 22:09:35 +0100 |
---|---|---|
committer | Gian Demarmels <gian@demarmels.org> | 2022-02-04 15:36:10 +0100 |
commit | daa7fdcfb1053bdd943ad7cd1bd8eb623d1c9157 (patch) | |
tree | 1cfce5401b493dfd017608cbbb05ee91ab9b247b /src/json | |
parent | 9c2aefaa515ce8d493bfe4de4eab9edc09d5447e (diff) | |
download | exchange-daa7fdcfb1053bdd943ad7cd1bd8eb623d1c9157.tar.xz |
implement spend
Diffstat (limited to 'src/json')
-rw-r--r-- | src/json/json_helper.c | 22 | ||||
-rw-r--r-- | src/json/json_pack.c | 21 |
2 files changed, 35 insertions, 8 deletions
diff --git a/src/json/json_helper.c b/src/json/json_helper.c index 6ee9c15a7..41d5c82e0 100644 --- a/src/json/json_helper.c +++ b/src/json/json_helper.c @@ -388,7 +388,27 @@ parse_denom_sig (void *cls, } return GNUNET_OK; } - // TODO: case TALER_DENOMINATION_CS: + case TALER_DENOMINATION_CS: + { + struct GNUNET_JSON_Specification ispec[] = { + GNUNET_JSON_spec_fixed_auto ("cs_signature_r", + &denom_sig->details.cs_signature.r_point), + GNUNET_JSON_spec_fixed_auto ("cs_signature_s", + &denom_sig->details.cs_signature.s_scalar), + GNUNET_JSON_spec_end () + }; + + if (GNUNET_OK != + GNUNET_JSON_parse (root, + ispec, + &emsg, + &eline)) + { + GNUNET_break_op (0); + return GNUNET_SYSERR; + } + return GNUNET_OK; + } default: GNUNET_break_op (0); return GNUNET_SYSERR; diff --git a/src/json/json_pack.c b/src/json/json_pack.c index cc147c4c0..8b056f34e 100644 --- a/src/json/json_pack.c +++ b/src/json/json_pack.c @@ -98,14 +98,21 @@ TALER_JSON_pack_denom_sig ( switch (sig->cipher) { case TALER_DENOMINATION_RSA: - ps.object - = GNUNET_JSON_PACK ( - GNUNET_JSON_pack_uint64 ("cipher", - TALER_DENOMINATION_RSA), - GNUNET_JSON_pack_rsa_signature ("rsa_signature", - sig->details.rsa_signature)); + ps.object = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_uint64 ("cipher", + TALER_DENOMINATION_RSA), + GNUNET_JSON_pack_rsa_signature ("rsa_signature", + sig->details.rsa_signature)); + break; + case TALER_DENOMINATION_CS: + ps.object = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_uint64 ("cipher", + TALER_DENOMINATION_CS), + GNUNET_JSON_pack_data_auto ("cs_signature_r", + &sig->details.cs_signature.r_point), + GNUNET_JSON_pack_data_auto ("cs_signature_s", + &sig->details.cs_signature.s_scalar)); break; - // TODO: case TALER_DENOMINATION_CS: default: GNUNET_assert (0); } |