diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2017-07-09 19:36:04 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2017-07-09 19:36:04 +0200 |
commit | 075494d7b52eeab8c9e7a064edf55aa9f7fb0895 (patch) | |
tree | 0646133b9b34bc30091daafe32e63afd77b4eaee /src/util/crypto_abe.c | |
parent | cfc492f5d6c7c5786bd5d033892238a6889b5d7d (diff) | |
download | gnunet-075494d7b52eeab8c9e7a064edf55aa9f7fb0895.tar.gz gnunet-075494d7b52eeab8c9e7a064edf55aa9f7fb0895.zip |
-fix leaks
Diffstat (limited to 'src/util/crypto_abe.c')
-rw-r--r-- | src/util/crypto_abe.c | 11 |
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 | ||