aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_abe.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-05-13 19:55:46 +0200
committerChristian Grothoff <christian@grothoff.org>2018-05-13 19:55:46 +0200
commitfa2978883e1585b1eeff3a22b7a9b4f174a45ca3 (patch)
tree52800dd5062534729be80227608def6f6c0c45ac /src/util/crypto_abe.c
parent2bb2faa207e4015609100a1aca38af344c65596f (diff)
downloadgnunet-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.c28
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