diff options
author | Tristan Schwieren <tristan.schwieren@tum.de> | 2022-08-19 17:48:02 +0200 |
---|---|---|
committer | Tristan Schwieren <tristan.schwieren@tum.de> | 2022-08-26 17:49:06 +0200 |
commit | bece25385e2f0d4823de569b8d5c5fb5f50721d7 (patch) | |
tree | 53f51cf964be8c2535814e36887580ef3694bdcf /src/util | |
parent | 3eab839a585eb5db577a276bad7840f8c4f7c51f (diff) | |
download | gnunet-bece25385e2f0d4823de569b8d5c5fb5f50721d7.tar.gz gnunet-bece25385e2f0d4823de569b8d5c5fb5f50721d7.zip |
-sign rest api + unfinished test
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/crypto_ecc.c | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/src/util/crypto_ecc.c b/src/util/crypto_ecc.c index 11e882de1..36945e291 100644 --- a/src/util/crypto_ecc.c +++ b/src/util/crypto_ecc.c | |||
@@ -595,7 +595,7 @@ GNUNET_CRYPTO_ecdsa_sign_ ( | |||
595 | } | 595 | } |
596 | 596 | ||
597 | // TODO: Code reuse with GNUNET_CRYPTO_ecdsa_sign_ | 597 | // TODO: Code reuse with GNUNET_CRYPTO_ecdsa_sign_ |
598 | // Refactor above as a wrapper around raw | 598 | // Refactor above as a wrapper around raw |
599 | enum GNUNET_GenericReturnValue | 599 | enum GNUNET_GenericReturnValue |
600 | GNUNET_CRYPTO_ecdsa_sign_raw ( | 600 | GNUNET_CRYPTO_ecdsa_sign_raw ( |
601 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv, | 601 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv, |
@@ -616,11 +616,11 @@ GNUNET_CRYPTO_ecdsa_sign_raw ( | |||
616 | // Hash data | 616 | // Hash data |
617 | GNUNET_CRYPTO_hash (data, len, &hash_code); | 617 | GNUNET_CRYPTO_hash (data, len, &hash_code); |
618 | if (0 != (error = gcry_sexp_build (&data_sexp, | 618 | if (0 != (error = gcry_sexp_build (&data_sexp, |
619 | NULL, | 619 | NULL, |
620 | "(data(flags rfc6979)(hash %s %b))", | 620 | "(data(flags rfc6979)(hash %s %b))", |
621 | "sha512", | 621 | "sha512", |
622 | (int) sizeof(hash_code), | 622 | (int) sizeof(hash_code), |
623 | &hash_code))) | 623 | &hash_code))) |
624 | { | 624 | { |
625 | LOG_GCRY (GNUNET_ERROR_TYPE_ERROR, "gcry_sexp_build", error); | 625 | LOG_GCRY (GNUNET_ERROR_TYPE_ERROR, "gcry_sexp_build", error); |
626 | return GNUNET_SYSERR; | 626 | return GNUNET_SYSERR; |
@@ -658,6 +658,28 @@ GNUNET_CRYPTO_ecdsa_sign_raw ( | |||
658 | return GNUNET_OK; | 658 | return GNUNET_OK; |
659 | } | 659 | } |
660 | 660 | ||
661 | size_t | ||
662 | GNUNET_CRYPTO_ecdsa_signature_encode ( | ||
663 | const struct GNUNET_CRYPTO_EcdsaSignature *sig, | ||
664 | char **sig_str) | ||
665 | { | ||
666 | return GNUNET_STRINGS_base64url_encode ( | ||
667 | (void*) sig, | ||
668 | 32, | ||
669 | sig_str); | ||
670 | } | ||
671 | |||
672 | size_t | ||
673 | GNUNET_CRYPTO_ecdsa_signature_decode ( | ||
674 | const char *sig_str, | ||
675 | struct GNUNET_CRYPTO_EcdsaSignature *sig) | ||
676 | { | ||
677 | return GNUNET_STRINGS_base64url_decode ( | ||
678 | sig_str, | ||
679 | strlen (sig_str), | ||
680 | (void **) &sig); | ||
681 | } | ||
682 | |||
661 | 683 | ||
662 | enum GNUNET_GenericReturnValue | 684 | enum GNUNET_GenericReturnValue |
663 | GNUNET_CRYPTO_eddsa_sign_ ( | 685 | GNUNET_CRYPTO_eddsa_sign_ ( |