aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorTristan Schwieren <tristan.schwieren@tum.de>2022-08-19 17:48:02 +0200
committerTristan Schwieren <tristan.schwieren@tum.de>2022-08-26 17:49:06 +0200
commitbece25385e2f0d4823de569b8d5c5fb5f50721d7 (patch)
tree53f51cf964be8c2535814e36887580ef3694bdcf /src/util
parent3eab839a585eb5db577a276bad7840f8c4f7c51f (diff)
downloadgnunet-bece25385e2f0d4823de569b8d5c5fb5f50721d7.tar.gz
gnunet-bece25385e2f0d4823de569b8d5c5fb5f50721d7.zip
-sign rest api + unfinished test
Diffstat (limited to 'src/util')
-rw-r--r--src/util/crypto_ecc.c34
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
599enum GNUNET_GenericReturnValue 599enum GNUNET_GenericReturnValue
600GNUNET_CRYPTO_ecdsa_sign_raw ( 600GNUNET_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
661size_t
662GNUNET_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
672size_t
673GNUNET_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
662enum GNUNET_GenericReturnValue 684enum GNUNET_GenericReturnValue
663GNUNET_CRYPTO_eddsa_sign_ ( 685GNUNET_CRYPTO_eddsa_sign_ (