diff options
author | irungentoo <irungentoo@gmail.com> | 2014-04-21 16:51:36 -0400 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2014-04-21 16:51:36 -0400 |
commit | 9c6a8432ce7298766669d1e6a966b5493971afb7 (patch) | |
tree | 8fd98c412610cbcf3fa8b7c28e0a5efbe02bad77 /toxcore/onion.c | |
parent | 1603ca974eae3fe0d94b597103f04acfb96fcab0 (diff) |
Crypto related cleanups.
Moved Bunch of functions from net_crypto to crypto_core.
decrypt_data_fast and decrypt_data_symmetric were the same thing
therefore, removed decrypt_data_fast.
Replaced all the crypto_secretbox_* defines with the equivalent
crypto_box_* one.
New define: crypto_box_KEYBYTES that is equal to
crypto_box_BEFORENMBYTES.
Diffstat (limited to 'toxcore/onion.c')
-rw-r--r-- | toxcore/onion.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/toxcore/onion.c b/toxcore/onion.c index ccb729f3..8603de0a 100644 --- a/toxcore/onion.c +++ b/toxcore/onion.c | |||
@@ -111,7 +111,7 @@ int send_onion_packet(Networking_Core *net, Onion_Path *path, IP_Port dest, uint | |||
111 | memcpy(step2, &path->ip_port3, sizeof(IP_Port)); | 111 | memcpy(step2, &path->ip_port3, sizeof(IP_Port)); |
112 | memcpy(step2 + sizeof(IP_Port), path->public_key3, crypto_box_PUBLICKEYBYTES); | 112 | memcpy(step2 + sizeof(IP_Port), path->public_key3, crypto_box_PUBLICKEYBYTES); |
113 | 113 | ||
114 | int len = encrypt_data_fast(path->shared_key3, nonce, step1, sizeof(step1), | 114 | int len = encrypt_data_symmetric(path->shared_key3, nonce, step1, sizeof(step1), |
115 | step2 + sizeof(IP_Port) + crypto_box_PUBLICKEYBYTES); | 115 | step2 + sizeof(IP_Port) + crypto_box_PUBLICKEYBYTES); |
116 | 116 | ||
117 | if ((uint32_t)len != sizeof(IP_Port) + length + crypto_box_MACBYTES) | 117 | if ((uint32_t)len != sizeof(IP_Port) + length + crypto_box_MACBYTES) |
@@ -120,7 +120,7 @@ int send_onion_packet(Networking_Core *net, Onion_Path *path, IP_Port dest, uint | |||
120 | uint8_t step3[sizeof(IP_Port) + SEND_BASE * 2 + length]; | 120 | uint8_t step3[sizeof(IP_Port) + SEND_BASE * 2 + length]; |
121 | memcpy(step3, &path->ip_port2, sizeof(IP_Port)); | 121 | memcpy(step3, &path->ip_port2, sizeof(IP_Port)); |
122 | memcpy(step3 + sizeof(IP_Port), path->public_key2, crypto_box_PUBLICKEYBYTES); | 122 | memcpy(step3 + sizeof(IP_Port), path->public_key2, crypto_box_PUBLICKEYBYTES); |
123 | len = encrypt_data_fast(path->shared_key2, nonce, step2, sizeof(step2), | 123 | len = encrypt_data_symmetric(path->shared_key2, nonce, step2, sizeof(step2), |
124 | step3 + sizeof(IP_Port) + crypto_box_PUBLICKEYBYTES); | 124 | step3 + sizeof(IP_Port) + crypto_box_PUBLICKEYBYTES); |
125 | 125 | ||
126 | if ((uint32_t)len != sizeof(IP_Port) + SEND_BASE + length + crypto_box_MACBYTES) | 126 | if ((uint32_t)len != sizeof(IP_Port) + SEND_BASE + length + crypto_box_MACBYTES) |
@@ -131,7 +131,7 @@ int send_onion_packet(Networking_Core *net, Onion_Path *path, IP_Port dest, uint | |||
131 | memcpy(packet + 1, nonce, crypto_box_NONCEBYTES); | 131 | memcpy(packet + 1, nonce, crypto_box_NONCEBYTES); |
132 | memcpy(packet + 1 + crypto_box_NONCEBYTES, path->public_key1, crypto_box_PUBLICKEYBYTES); | 132 | memcpy(packet + 1 + crypto_box_NONCEBYTES, path->public_key1, crypto_box_PUBLICKEYBYTES); |
133 | 133 | ||
134 | len = encrypt_data_fast(path->shared_key1, nonce, step3, sizeof(step3), | 134 | len = encrypt_data_symmetric(path->shared_key1, nonce, step3, sizeof(step3), |
135 | packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES); | 135 | packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES); |
136 | 136 | ||
137 | if ((uint32_t)len != sizeof(IP_Port) + SEND_BASE * 2 + length + crypto_box_MACBYTES) | 137 | if ((uint32_t)len != sizeof(IP_Port) + SEND_BASE * 2 + length + crypto_box_MACBYTES) |
@@ -175,7 +175,7 @@ static int handle_send_initial(void *object, IP_Port source, uint8_t *packet, ui | |||
175 | uint8_t plain[MAX_ONION_SIZE]; | 175 | uint8_t plain[MAX_ONION_SIZE]; |
176 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; | 176 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; |
177 | get_shared_key(&onion->shared_keys_1, shared_key, onion->dht->self_secret_key, packet + 1 + crypto_box_NONCEBYTES); | 177 | get_shared_key(&onion->shared_keys_1, shared_key, onion->dht->self_secret_key, packet + 1 + crypto_box_NONCEBYTES); |
178 | int len = decrypt_data_fast(shared_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES, | 178 | int len = decrypt_data_symmetric(shared_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES, |
179 | length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES), plain); | 179 | length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES), plain); |
180 | 180 | ||
181 | if ((uint32_t)len != length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + crypto_box_MACBYTES)) | 181 | if ((uint32_t)len != length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + crypto_box_MACBYTES)) |
@@ -198,12 +198,12 @@ int onion_send_1(Onion *onion, uint8_t *plain, uint32_t len, IP_Port source, uin | |||
198 | uint8_t *ret_part = data + data_len; | 198 | uint8_t *ret_part = data + data_len; |
199 | new_nonce(ret_part); | 199 | new_nonce(ret_part); |
200 | len = encrypt_data_symmetric(onion->secret_symmetric_key, ret_part, (uint8_t *)&source, sizeof(IP_Port), | 200 | len = encrypt_data_symmetric(onion->secret_symmetric_key, ret_part, (uint8_t *)&source, sizeof(IP_Port), |
201 | ret_part + crypto_secretbox_NONCEBYTES); | 201 | ret_part + crypto_box_NONCEBYTES); |
202 | 202 | ||
203 | if (len != sizeof(IP_Port) + crypto_secretbox_MACBYTES) | 203 | if (len != sizeof(IP_Port) + crypto_box_MACBYTES) |
204 | return 1; | 204 | return 1; |
205 | 205 | ||
206 | data_len += crypto_secretbox_NONCEBYTES + len; | 206 | data_len += crypto_box_NONCEBYTES + len; |
207 | 207 | ||
208 | if ((uint32_t)sendpacket(onion->net, send_to, data, data_len) != data_len) | 208 | if ((uint32_t)sendpacket(onion->net, send_to, data, data_len) != data_len) |
209 | return 1; | 209 | return 1; |
@@ -226,7 +226,7 @@ static int handle_send_1(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
226 | uint8_t plain[MAX_ONION_SIZE]; | 226 | uint8_t plain[MAX_ONION_SIZE]; |
227 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; | 227 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; |
228 | get_shared_key(&onion->shared_keys_2, shared_key, onion->dht->self_secret_key, packet + 1 + crypto_box_NONCEBYTES); | 228 | get_shared_key(&onion->shared_keys_2, shared_key, onion->dht->self_secret_key, packet + 1 + crypto_box_NONCEBYTES); |
229 | int len = decrypt_data_fast(shared_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES, | 229 | int len = decrypt_data_symmetric(shared_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES, |
230 | length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_1), plain); | 230 | length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_1), plain); |
231 | 231 | ||
232 | if ((uint32_t)len != length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_1 + crypto_box_MACBYTES)) | 232 | if ((uint32_t)len != length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_1 + crypto_box_MACBYTES)) |
@@ -247,12 +247,12 @@ static int handle_send_1(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
247 | memcpy(ret_data, &source, sizeof(IP_Port)); | 247 | memcpy(ret_data, &source, sizeof(IP_Port)); |
248 | memcpy(ret_data + sizeof(IP_Port), packet + (length - RETURN_1), RETURN_1); | 248 | memcpy(ret_data + sizeof(IP_Port), packet + (length - RETURN_1), RETURN_1); |
249 | len = encrypt_data_symmetric(onion->secret_symmetric_key, ret_part, ret_data, sizeof(ret_data), | 249 | len = encrypt_data_symmetric(onion->secret_symmetric_key, ret_part, ret_data, sizeof(ret_data), |
250 | ret_part + crypto_secretbox_NONCEBYTES); | 250 | ret_part + crypto_box_NONCEBYTES); |
251 | 251 | ||
252 | if (len != RETURN_2 - crypto_secretbox_NONCEBYTES) | 252 | if (len != RETURN_2 - crypto_box_NONCEBYTES) |
253 | return 1; | 253 | return 1; |
254 | 254 | ||
255 | data_len += crypto_secretbox_NONCEBYTES + len; | 255 | data_len += crypto_box_NONCEBYTES + len; |
256 | 256 | ||
257 | if ((uint32_t)sendpacket(onion->net, send_to, data, data_len) != data_len) | 257 | if ((uint32_t)sendpacket(onion->net, send_to, data, data_len) != data_len) |
258 | return 1; | 258 | return 1; |
@@ -275,7 +275,7 @@ static int handle_send_2(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
275 | uint8_t plain[MAX_ONION_SIZE]; | 275 | uint8_t plain[MAX_ONION_SIZE]; |
276 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; | 276 | uint8_t shared_key[crypto_box_BEFORENMBYTES]; |
277 | get_shared_key(&onion->shared_keys_3, shared_key, onion->dht->self_secret_key, packet + 1 + crypto_box_NONCEBYTES); | 277 | get_shared_key(&onion->shared_keys_3, shared_key, onion->dht->self_secret_key, packet + 1 + crypto_box_NONCEBYTES); |
278 | int len = decrypt_data_fast(shared_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES, | 278 | int len = decrypt_data_symmetric(shared_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES, |
279 | length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_2), plain); | 279 | length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_2), plain); |
280 | 280 | ||
281 | if ((uint32_t)len != length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_2 + crypto_box_MACBYTES)) | 281 | if ((uint32_t)len != length - (1 + crypto_box_NONCEBYTES + crypto_box_PUBLICKEYBYTES + RETURN_2 + crypto_box_MACBYTES)) |
@@ -294,9 +294,9 @@ static int handle_send_2(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
294 | memcpy(ret_data, &source, sizeof(IP_Port)); | 294 | memcpy(ret_data, &source, sizeof(IP_Port)); |
295 | memcpy(ret_data + sizeof(IP_Port), packet + (length - RETURN_2), RETURN_2); | 295 | memcpy(ret_data + sizeof(IP_Port), packet + (length - RETURN_2), RETURN_2); |
296 | len = encrypt_data_symmetric(onion->secret_symmetric_key, ret_part, ret_data, sizeof(ret_data), | 296 | len = encrypt_data_symmetric(onion->secret_symmetric_key, ret_part, ret_data, sizeof(ret_data), |
297 | ret_part + crypto_secretbox_NONCEBYTES); | 297 | ret_part + crypto_box_NONCEBYTES); |
298 | 298 | ||
299 | if (len != RETURN_3 - crypto_secretbox_NONCEBYTES) | 299 | if (len != RETURN_3 - crypto_box_NONCEBYTES) |
300 | return 1; | 300 | return 1; |
301 | 301 | ||
302 | data_len += RETURN_3; | 302 | data_len += RETURN_3; |
@@ -321,8 +321,8 @@ static int handle_recv_3(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
321 | change_symmetric_key(onion); | 321 | change_symmetric_key(onion); |
322 | 322 | ||
323 | uint8_t plain[sizeof(IP_Port) + RETURN_2]; | 323 | uint8_t plain[sizeof(IP_Port) + RETURN_2]; |
324 | int len = decrypt_data_symmetric(onion->secret_symmetric_key, packet + 1, packet + 1 + crypto_secretbox_NONCEBYTES, | 324 | int len = decrypt_data_symmetric(onion->secret_symmetric_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES, |
325 | sizeof(IP_Port) + RETURN_2 + crypto_secretbox_MACBYTES, plain); | 325 | sizeof(IP_Port) + RETURN_2 + crypto_box_MACBYTES, plain); |
326 | 326 | ||
327 | if ((uint32_t)len != sizeof(plain)) | 327 | if ((uint32_t)len != sizeof(plain)) |
328 | return 1; | 328 | return 1; |
@@ -355,8 +355,8 @@ static int handle_recv_2(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
355 | change_symmetric_key(onion); | 355 | change_symmetric_key(onion); |
356 | 356 | ||
357 | uint8_t plain[sizeof(IP_Port) + RETURN_1]; | 357 | uint8_t plain[sizeof(IP_Port) + RETURN_1]; |
358 | int len = decrypt_data_symmetric(onion->secret_symmetric_key, packet + 1, packet + 1 + crypto_secretbox_NONCEBYTES, | 358 | int len = decrypt_data_symmetric(onion->secret_symmetric_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES, |
359 | sizeof(IP_Port) + RETURN_1 + crypto_secretbox_MACBYTES, plain); | 359 | sizeof(IP_Port) + RETURN_1 + crypto_box_MACBYTES, plain); |
360 | 360 | ||
361 | if ((uint32_t)len != sizeof(plain)) | 361 | if ((uint32_t)len != sizeof(plain)) |
362 | return 1; | 362 | return 1; |
@@ -390,8 +390,8 @@ static int handle_recv_1(void *object, IP_Port source, uint8_t *packet, uint32_t | |||
390 | 390 | ||
391 | IP_Port send_to; | 391 | IP_Port send_to; |
392 | 392 | ||
393 | int len = decrypt_data_symmetric(onion->secret_symmetric_key, packet + 1, packet + 1 + crypto_secretbox_NONCEBYTES, | 393 | int len = decrypt_data_symmetric(onion->secret_symmetric_key, packet + 1, packet + 1 + crypto_box_NONCEBYTES, |
394 | sizeof(IP_Port) + crypto_secretbox_MACBYTES, (uint8_t *) &send_to); | 394 | sizeof(IP_Port) + crypto_box_MACBYTES, (uint8_t *) &send_to); |
395 | 395 | ||
396 | if ((uint32_t)len != sizeof(IP_Port)) | 396 | if ((uint32_t)len != sizeof(IP_Port)) |
397 | return 1; | 397 | return 1; |