aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_abe.c
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2017-07-09 19:36:04 +0200
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2017-07-09 19:36:04 +0200
commit075494d7b52eeab8c9e7a064edf55aa9f7fb0895 (patch)
tree0646133b9b34bc30091daafe32e63afd77b4eaee /src/util/crypto_abe.c
parentcfc492f5d6c7c5786bd5d033892238a6889b5d7d (diff)
downloadgnunet-075494d7b52eeab8c9e7a064edf55aa9f7fb0895.tar.gz
gnunet-075494d7b52eeab8c9e7a064edf55aa9f7fb0895.zip
-fix leaks
Diffstat (limited to 'src/util/crypto_abe.c')
-rw-r--r--src/util/crypto_abe.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/util/crypto_abe.c b/src/util/crypto_abe.c
index ddaec83eb..62b8d5231 100644
--- a/src/util/crypto_abe.c
+++ b/src/util/crypto_abe.c
@@ -145,6 +145,8 @@ GNUNET_CRYPTO_cpabe_create_master_key (void)
145 key->msk = bswabe_msk_serialize(msk); 145 key->msk = bswabe_msk_serialize(msk);
146 GNUNET_assert (NULL != key->pub); 146 GNUNET_assert (NULL != key->pub);
147 GNUNET_assert (NULL != key->msk); 147 GNUNET_assert (NULL != key->msk);
148 bswabe_pub_free (pub);
149 bswabe_msk_free (msk);
148 return key; 150 return key;
149} 151}
150 152
@@ -171,11 +173,13 @@ GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *key,
171 prv = bswabe_keygen(pub, msk, attrs); 173 prv = bswabe_keygen(pub, msk, attrs);
172 prv_key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey); 174 prv_key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey);
173 prv_key->prv = bswabe_prv_serialize(prv); 175 prv_key->prv = bswabe_prv_serialize(prv);
174
175 len = key->pub->len; 176 len = key->pub->len;
176 printf ("Keylen %lu\n", len); 177 printf ("Keylen %lu\n", len);
177 prv_key->pub = bswabe_pub_serialize (pub); 178 prv_key->pub = bswabe_pub_serialize (pub);
178 GNUNET_assert (NULL != prv_key->prv); 179 GNUNET_assert (NULL != prv_key->prv);
180 bswabe_prv_free (prv);
181 bswabe_pub_free (pub);
182 bswabe_msk_free (msk);
179 return prv_key; 183 return prv_key;
180} 184}
181 185
@@ -256,6 +260,7 @@ GNUNET_CRYPTO_cpabe_encrypt (const void *block,
256 element_t m; 260 element_t m;
257 size_t payload_len; 261 size_t payload_len;
258 ssize_t result_len; 262 ssize_t result_len;
263
259 pub = bswabe_pub_unserialize(key->pub, 0); 264 pub = bswabe_pub_unserialize(key->pub, 0);
260 if( !(cph = bswabe_enc(pub, m, policy)) ) 265 if( !(cph = bswabe_enc(pub, m, policy)) )
261 return GNUNET_SYSERR; 266 return GNUNET_SYSERR;
@@ -270,6 +275,7 @@ GNUNET_CRYPTO_cpabe_encrypt (const void *block,
270 result_len = write_cpabe(result, cph_buf, payload_len, aes_buf); 275 result_len = write_cpabe(result, cph_buf, payload_len, aes_buf);
271 g_byte_array_free(cph_buf, 1); 276 g_byte_array_free(cph_buf, 1);
272 g_byte_array_free(aes_buf, 1); 277 g_byte_array_free(aes_buf, 1);
278 bswabe_pub_free (pub);
273 return result_len; 279 return result_len;
274} 280}
275 281
@@ -303,7 +309,8 @@ GNUNET_CRYPTO_cpabe_decrypt (const void *block,
303 g_byte_array_free(aes_buf, 1); 309 g_byte_array_free(aes_buf, 1);
304 *result = GNUNET_malloc (plt->len); 310 *result = GNUNET_malloc (plt->len);
305 GNUNET_memcpy (*result, plt->data, plt->len); 311 GNUNET_memcpy (*result, plt->data, plt->len);
306 312 bswabe_prv_free (prv);
313 bswabe_pub_free (pub);
307 return pt_size; 314 return pt_size;
308} 315}
309 316