aboutsummaryrefslogtreecommitdiff
path: root/src/json
diff options
context:
space:
mode:
authorLucien Heuzeveldt <lucienclaude.heuzeveldt@students.bfh.ch>2022-01-10 22:09:35 +0100
committerGian Demarmels <gian@demarmels.org>2022-02-04 15:36:10 +0100
commitdaa7fdcfb1053bdd943ad7cd1bd8eb623d1c9157 (patch)
tree1cfce5401b493dfd017608cbbb05ee91ab9b247b /src/json
parent9c2aefaa515ce8d493bfe4de4eab9edc09d5447e (diff)
downloadexchange-daa7fdcfb1053bdd943ad7cd1bd8eb623d1c9157.tar.xz
implement spend
Diffstat (limited to 'src/json')
-rw-r--r--src/json/json_helper.c22
-rw-r--r--src/json/json_pack.c21
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);
}