aboutsummaryrefslogtreecommitdiff
path: root/src/lib/json/json_pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/json/json_pack.c')
-rw-r--r--src/lib/json/json_pack.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/lib/json/json_pack.c b/src/lib/json/json_pack.c
index 7b41a967e..d298e6efe 100644
--- a/src/lib/json/json_pack.c
+++ b/src/lib/json/json_pack.c
@@ -440,4 +440,41 @@ GNUNET_JSON_pack_blinded_message (const char *name,
440 return ps; 440 return ps;
441} 441}
442 442
443
444struct GNUNET_JSON_PackSpec
445GNUNET_JSON_pack_blinded_sig (
446 const char *name,
447 const struct GNUNET_CRYPTO_BlindedSignature *sig)
448{
449 struct GNUNET_JSON_PackSpec ps = {
450 .field_name = name,
451 };
452
453 if (NULL == sig)
454 return ps;
455 switch (sig->cipher)
456 {
457 case GNUNET_CRYPTO_BSA_INVALID:
458 break;
459 case GNUNET_CRYPTO_BSA_RSA:
460 ps.object = GNUNET_JSON_PACK (
461 GNUNET_JSON_pack_string ("cipher",
462 "RSA"),
463 GNUNET_JSON_pack_rsa_signature ("blinded_rsa_signature",
464 sig->details.blinded_rsa_signature));
465 return ps;
466 case GNUNET_CRYPTO_BSA_CS:
467 ps.object = GNUNET_JSON_PACK (
468 GNUNET_JSON_pack_string ("cipher",
469 "CS"),
470 GNUNET_JSON_pack_uint64 ("b",
471 sig->details.blinded_cs_answer.b),
472 GNUNET_JSON_pack_data_auto ("s",
473 &sig->details.blinded_cs_answer.s_scalar));
474 return ps;
475 }
476 GNUNET_assert (0);
477 return ps;
478}
479
443/* end of json_pack.c */ 480/* end of json_pack.c */