summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2022-03-27 15:35:14 +0200
committerChristian Grothoff <grothoff@gnunet.org>2022-03-30 10:29:16 +0200
commitedf6f59fac12cd6f7d0a14ecf2a47ab82a8beb17 (patch)
treeec0aef032f86628831a8c430dcc1655e9b83b4ca /src
parent4e5747f9a58c382c3fb82de4084b08bc7b5120d6 (diff)
-logging, minor memory leak fix
Diffstat (limited to 'src')
-rw-r--r--src/pq/pq_result_helper.c6
-rw-r--r--src/util/crypto_kdf.c9
-rw-r--r--src/util/crypto_rsa.c20
3 files changed, 24 insertions, 11 deletions
diff --git a/src/pq/pq_result_helper.c b/src/pq/pq_result_helper.c
index 2c11f5202..f3d246c36 100644
--- a/src/pq/pq_result_helper.c
+++ b/src/pq/pq_result_helper.c
@@ -1086,6 +1086,12 @@ extract_uint64 (void *cls,
fnum))
{
GNUNET_break (0);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Got length %u for field `%s'\n",
+ PQgetlength (result,
+ row,
+ fnum),
+ fname);
return GNUNET_SYSERR;
}
res = (uint64_t *) PQgetvalue (result,
diff --git a/src/util/crypto_kdf.c b/src/util/crypto_kdf.c
index 0dc734549..8041f61ab 100644
--- a/src/util/crypto_kdf.c
+++ b/src/util/crypto_kdf.c
@@ -43,7 +43,7 @@
* @param argp va_list of void * & size_t pairs for context chunks
* @return #GNUNET_YES on success
*/
-int
+enum GNUNET_GenericReturnValue
GNUNET_CRYPTO_kdf_v (void *result,
size_t out_len,
const void *xts,
@@ -62,7 +62,7 @@ GNUNET_CRYPTO_kdf_v (void *result,
* hash function."
*
* http://eprint.iacr.org/2010/264
- *///
+ */
return GNUNET_CRYPTO_hkdf_v (result,
out_len,
GCRY_MD_SHA512,
@@ -86,7 +86,7 @@ GNUNET_CRYPTO_kdf_v (void *result,
* @param ... void * & size_t pairs for context chunks
* @return #GNUNET_YES on success
*/
-int
+enum GNUNET_GenericReturnValue
GNUNET_CRYPTO_kdf (void *result,
size_t out_len,
const void *xts,
@@ -145,6 +145,7 @@ GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r,
uint8_t buf[ (nbits - 1) / 8 + 1 ];
uint16_t ctr_nbo = htons (ctr);
+ memset (buf, 0, sizeof (buf));
rc = GNUNET_CRYPTO_kdf (buf,
sizeof(buf),
xts, xts_len,
@@ -160,7 +161,7 @@ GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r,
sizeof(buf),
&rsize);
GNUNET_assert (0 == rc); /* Allocation error? */
-
+ GNUNET_assert (rsize == sizeof (buf));
gcry_mpi_clear_highbit (*r, nbits);
GNUNET_assert (0 == gcry_mpi_test_bit (*r, nbits));
++ctr;
diff --git a/src/util/crypto_rsa.c b/src/util/crypto_rsa.c
index 43e6eedac..610e5febc 100644
--- a/src/util/crypto_rsa.c
+++ b/src/util/crypto_rsa.c
@@ -497,7 +497,8 @@ GNUNET_CRYPTO_rsa_public_key_decode (const char *buf,
* @return True if gcd(r,n) = 1, False means RSA key is malicious
*/
static int
-rsa_gcd_validate (gcry_mpi_t r, gcry_mpi_t n)
+rsa_gcd_validate (gcry_mpi_t r,
+ gcry_mpi_t n)
{
gcry_mpi_t g;
int t;
@@ -525,24 +526,29 @@ rsa_blinding_key_derive (const struct GNUNET_CRYPTO_RsaPublicKey *pkey,
gcry_mpi_t n;
blind = GNUNET_new (struct RsaBlindingKey);
- GNUNET_assert (NULL != blind);
/* Extract the composite n from the RSA public key */
- GNUNET_assert (0 == key_from_sexp (&n, pkey->sexp, "rsa", "n"));
+ GNUNET_assert (0 ==
+ key_from_sexp (&n,
+ pkey->sexp,
+ "rsa",
+ "n"));
/* Assert that it at least looks like an RSA key */
- GNUNET_assert (0 == gcry_mpi_get_flag (n, GCRYMPI_FLAG_OPAQUE));
-
+ GNUNET_assert (0 ==
+ gcry_mpi_get_flag (n,
+ GCRYMPI_FLAG_OPAQUE));
GNUNET_CRYPTO_kdf_mod_mpi (&blind->r,
n,
xts, strlen (xts),
bks, sizeof(*bks),
"Blinding KDF");
- if (0 == rsa_gcd_validate (blind->r, n))
+ if (0 == rsa_gcd_validate (blind->r,
+ n))
{
+ gcry_mpi_release (blind->r);
GNUNET_free (blind);
blind = NULL;
}
-
gcry_mpi_release (n);
return blind;
}