diff options
Diffstat (limited to 'src/lib/json/json_pack.c')
-rw-r--r-- | src/lib/json/json_pack.c | 37 |
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 | |||
444 | struct GNUNET_JSON_PackSpec | ||
445 | GNUNET_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 */ |