diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-05-13 19:55:46 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-05-13 19:55:46 +0200 |
commit | fa2978883e1585b1eeff3a22b7a9b4f174a45ca3 (patch) | |
tree | 52800dd5062534729be80227608def6f6c0c45ac /src/util/crypto_abe.c | |
parent | 2bb2faa207e4015609100a1aca38af344c65596f (diff) | |
download | gnunet-fa2978883e1585b1eeff3a22b7a9b4f174a45ca3.tar.gz gnunet-fa2978883e1585b1eeff3a22b7a9b4f174a45ca3.zip |
get rid of plain memcpy calls
Diffstat (limited to 'src/util/crypto_abe.c')
-rw-r--r-- | src/util/crypto_abe.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/util/crypto_abe.c b/src/util/crypto_abe.c index fcaa826ed..a5cdb2823 100644 --- a/src/util/crypto_abe.c +++ b/src/util/crypto_abe.c | |||
@@ -53,12 +53,14 @@ init_aes( element_t k, int enc, | |||
53 | int rc; | 53 | int rc; |
54 | int key_len; | 54 | int key_len; |
55 | unsigned char* key_buf; | 55 | unsigned char* key_buf; |
56 | 56 | ||
57 | key_len = element_length_in_bytes(k) < 33 ? 3 : element_length_in_bytes(k); | 57 | key_len = element_length_in_bytes(k) < 33 ? 3 : element_length_in_bytes(k); |
58 | key_buf = (unsigned char*) malloc(key_len); | 58 | key_buf = (unsigned char*) malloc(key_len); |
59 | element_to_bytes(key_buf, k); | 59 | element_to_bytes(key_buf, k); |
60 | 60 | ||
61 | memcpy (key->aes_key, key_buf, GNUNET_CRYPTO_AES_KEY_LENGTH); | 61 | GNUNET_memcpy (key->aes_key, |
62 | key_buf, | ||
63 | GNUNET_CRYPTO_AES_KEY_LENGTH); | ||
62 | GNUNET_assert (0 == | 64 | GNUNET_assert (0 == |
63 | gcry_cipher_open (handle, GCRY_CIPHER_AES256, | 65 | gcry_cipher_open (handle, GCRY_CIPHER_AES256, |
64 | GCRY_CIPHER_MODE_CFB, 0)); | 66 | GCRY_CIPHER_MODE_CFB, 0)); |
@@ -123,16 +125,16 @@ aes_128_cbc_decrypt( char* ct, | |||
123 | unsigned char iv[16]; | 125 | unsigned char iv[16]; |
124 | char* tmp; | 126 | char* tmp; |
125 | uint32_t len; | 127 | uint32_t len; |
126 | 128 | ||
127 | init_aes(k, 1, &handle, &skey, iv); | 129 | init_aes(k, 1, &handle, &skey, iv); |
128 | 130 | ||
129 | tmp = GNUNET_malloc (size); | 131 | tmp = GNUNET_malloc (size); |
130 | 132 | ||
131 | //AES_cbc_encrypt(ct->data, pt->data, ct->len, &key, iv, AES_DECRYPT); | 133 | //AES_cbc_encrypt(ct->data, pt->data, ct->len, &key, iv, AES_DECRYPT); |
132 | GNUNET_assert (0 == gcry_cipher_decrypt (handle, tmp, size, ct, size)); | 134 | GNUNET_assert (0 == gcry_cipher_decrypt (handle, tmp, size, ct, size)); |
133 | gcry_cipher_close (handle); | 135 | gcry_cipher_close (handle); |
134 | /* TODO make less crufty */ | 136 | /* TODO make less crufty */ |
135 | 137 | ||
136 | /* get real length */ | 138 | /* get real length */ |
137 | len = 0; | 139 | len = 0; |
138 | len = len | 140 | len = len |
@@ -173,7 +175,7 @@ GNUNET_CRYPTO_cpabe_create_key (struct GNUNET_CRYPTO_AbeMasterKey *key, | |||
173 | struct GNUNET_CRYPTO_AbeKey *prv_key; | 175 | struct GNUNET_CRYPTO_AbeKey *prv_key; |
174 | int size; | 176 | int size; |
175 | char *tmp; | 177 | char *tmp; |
176 | 178 | ||
177 | prv_key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey); | 179 | prv_key = GNUNET_new (struct GNUNET_CRYPTO_AbeKey); |
178 | prv_key->prv = gabe_keygen(key->pub, key->msk, attrs); | 180 | prv_key->prv = gabe_keygen(key->pub, key->msk, attrs); |
179 | size = gabe_pub_serialize(key->pub, &tmp); | 181 | size = gabe_pub_serialize(key->pub, &tmp); |
@@ -204,7 +206,7 @@ write_cpabe (void **result, | |||
204 | { | 206 | { |
205 | char *ptr; | 207 | char *ptr; |
206 | uint32_t *len; | 208 | uint32_t *len; |
207 | 209 | ||
208 | *result = GNUNET_malloc (12 + cph_buf_len + aes_buf_len); | 210 | *result = GNUNET_malloc (12 + cph_buf_len + aes_buf_len); |
209 | ptr = *result; | 211 | ptr = *result; |
210 | len = (uint32_t*) ptr; | 212 | len = (uint32_t*) ptr; |
@@ -213,12 +215,12 @@ write_cpabe (void **result, | |||
213 | len = (uint32_t*) ptr; | 215 | len = (uint32_t*) ptr; |
214 | *len = htonl (aes_buf_len); | 216 | *len = htonl (aes_buf_len); |
215 | ptr += 4; | 217 | ptr += 4; |
216 | memcpy (ptr, aes_buf, aes_buf_len); | 218 | GNUNET_memcpy (ptr, aes_buf, aes_buf_len); |
217 | ptr += aes_buf_len; | 219 | ptr += aes_buf_len; |
218 | len = (uint32_t*) ptr; | 220 | len = (uint32_t*) ptr; |
219 | *len = htonl (cph_buf_len); | 221 | *len = htonl (cph_buf_len); |
220 | ptr += 4; | 222 | ptr += 4; |
221 | memcpy (ptr, cph_buf, cph_buf_len); | 223 | GNUNET_memcpy (ptr, cph_buf, cph_buf_len); |
222 | return 12 + cph_buf_len + aes_buf_len; | 224 | return 12 + cph_buf_len + aes_buf_len; |
223 | } | 225 | } |
224 | 226 | ||
@@ -241,13 +243,13 @@ read_cpabe (const void *data, | |||
241 | *aes_buf_len = ntohl (*len); | 243 | *aes_buf_len = ntohl (*len); |
242 | ptr += 4; | 244 | ptr += 4; |
243 | *aes_buf = GNUNET_malloc (*aes_buf_len); | 245 | *aes_buf = GNUNET_malloc (*aes_buf_len); |
244 | memcpy(*aes_buf, ptr, *aes_buf_len); | 246 | GNUNET_memcpy (*aes_buf, ptr, *aes_buf_len); |
245 | ptr += *aes_buf_len; | 247 | ptr += *aes_buf_len; |
246 | len = (uint32_t*)ptr; | 248 | len = (uint32_t*)ptr; |
247 | *cph_buf_len = ntohl (*len); | 249 | *cph_buf_len = ntohl (*len); |
248 | ptr += 4; | 250 | ptr += 4; |
249 | *cph_buf = GNUNET_malloc (*cph_buf_len); | 251 | *cph_buf = GNUNET_malloc (*cph_buf_len); |
250 | memcpy(*cph_buf, ptr, *cph_buf_len); | 252 | GNUNET_memcpy (*cph_buf, ptr, *cph_buf_len); |
251 | 253 | ||
252 | return buf_len; | 254 | return buf_len; |
253 | } | 255 | } |
@@ -362,7 +364,7 @@ GNUNET_CRYPTO_cpabe_deserialize_key (const void *data, | |||
362 | &prv_len); | 364 | &prv_len); |
363 | key->pub = gabe_pub_unserialize (pub, pub_len); | 365 | key->pub = gabe_pub_unserialize (pub, pub_len); |
364 | key->prv = gabe_prv_unserialize (key->pub, prv, prv_len); | 366 | key->prv = gabe_prv_unserialize (key->pub, prv, prv_len); |
365 | 367 | ||
366 | GNUNET_free (pub); | 368 | GNUNET_free (pub); |
367 | GNUNET_free (prv); | 369 | GNUNET_free (prv); |
368 | return key; | 370 | return key; |
@@ -408,7 +410,7 @@ GNUNET_CRYPTO_cpabe_deserialize_master_key (const void *data, | |||
408 | &msk_len); | 410 | &msk_len); |
409 | key->pub = gabe_pub_unserialize (pub, pub_len); | 411 | key->pub = gabe_pub_unserialize (pub, pub_len); |
410 | key->msk = gabe_msk_unserialize (key->pub, msk, msk_len); | 412 | key->msk = gabe_msk_unserialize (key->pub, msk, msk_len); |
411 | 413 | ||
412 | GNUNET_free (pub); | 414 | GNUNET_free (pub); |
413 | GNUNET_free (msk); | 415 | GNUNET_free (msk); |
414 | 416 | ||