summaryrefslogtreecommitdiff
path: root/toxcore/crypto_core.c
AgeCommit message (Collapse)Author
2019-01-03Added test and patch for VLA stack overflow vuln.zoff99
Also added and used the new crypto_malloc and crypto_free. The latter also zeroes out the memory safely. The former only exists for symmetry (static analysis can detect asymmetric usages).
2018-08-26Format crypto_core.c.iphydf
Changes: * 100 columns maximum (not strict, can be a bit more sometimes). * No space after cast.
2018-08-26Update copyright to 2018.iphydf
2018-07-12Style fixes in TCP code; remove MIN and PAIR from util.h.iphydf
* Moved PAIR to toxav, where it's used (but really this should die). * Replace most MIN calls with typed `min_*` calls. Didn't replace the ones where the desired semantics are unclear. Moved the MIN macro to the one place where it's still used. * Avoid assignments in `while` loops. Instead, factored out the loop body into a separate `bool`-returning function. * Use named types for callbacks (`_cb` types). * Avoid assignments in `if` conditions. * Removed `MAKE_REALLOC` and expanded its two calls. We can't have templates in C, and this fake templating is ugly and hard to analyse and debug (it expands on a single line). * Moved epoll system include to the .c file, out of the .h file. * Avoid assignments in expressions (`a = b = c;`). * Avoid multiple declarators per struct member declaration. * Fix naming inconsistencies. * Replace `net_to_host` macro with function.
2018-07-01Simplify Travis CI builds.iphydf
Have one script per build. This means more duplication between the scripts, but it's much easier to understand and to run locally.
2018-04-03Avoid the use of rand() in tests.iphydf
We control the random functions in crypto_core, so we can make them deterministic more easily. This will help test reproducibility in the future.
2018-02-24Fix a bunch of compiler warnings and remove suppressions.iphydf
2018-01-14Add random_u16 function and rename the others to match.iphydf
2018-01-10Fix formatting in some C files.iphydf
Also replace &(x) with &x for consistency.
2017-02-26Remove network dependency from toxcryptoDiadlo
2017-02-26Add part of platform-independent network API implementationDiadlo
socket -> net_socket htons -> net_htons htonl -> net_htonl connect -> net_connect sendto -> net_sendto_ip4 getaddrinfo -> net_getipport sa_family_t -> Family
2017-01-28Add VLA compatibility macro for C89-ish compilers.iphydf
2017-01-19Update license headers and remove redundant file name comment.iphydf
"All rights reserved" was incorrect. The project was licensed under GPL3, which means a lot of rights are licensed to everybody in the world, i.e. not reserved to the "Tox Project".
2017-01-04Add secure memcmp and memzero implementation.Diadlo
Implementation mostly taken from libsodium utils. Fix #347
2016-12-22Improve documentation of crypto_core.iphydf
2016-12-22Wrap all sodium/nacl functions in crypto_core.c.iphydf
2016-11-09Remove new_nonce function in favour of random_nonce.iphydf
`new_nonce` has been an alias for `random_nonce` for a while now. Having two names for the same operation is confusing. `random_nonce` better expresses the intent. The documentation for `new_nonce` talks about guaranteeing that the nonce is different from previous ones, which is incorrect, it's just quite likely to be different.
2016-11-03Move packing and unpacking DHT request packets to DHT module.iphydf
These definitely don't belong in a module called "crypto core". The DHT module seems like the best place to put them, since they are sent to DHT nodes.
2016-09-16Ensure that all TODOs have an owner.iphydf
In the future, all TODOs added either need a bug number (TODO(#NN)) or a person's github user name. By default, I made irungentoo the owner of all toxcore TODOs, mannol the owner of toxav TODOs, and myself the owner of API TODOs.
2016-08-31Add braces to all if statements.iphydf
2016-08-10Silence/fix some compiler warnings.iphydf
Some of these (like the incompatible pointers one) are really annoying for later refactoring.
2016-01-30Fixes.irungentoo
Fixed bug from merged PR. Don't build useless files when building with libsodium.
2016-01-27 fix: compare sensitive data with sodium_memcmpRoman Proskuryakov
fix: make increment_nonce & increment_nonce_number independent of user-controlled input fix: make crypto_core more stable agains null ptr dereference
2015-06-06Improve readability of handle_request() in crypto_core.ccodedust
Moving 'return -1;' directly below the conditions improves readability and also better represents the coding style of other functions in crypt_core.c (and everywhere else).
2015-04-18The only secure compare function currently needed is one to compare 2 public ↵irungentoo
keys.
2015-03-29Increase thread safety.irungentoo
randombytes() doesn't seem to have any real speed disadvantage. Also makes people who think nonces need to be random happy.
2015-01-01Code cleanups.irungentoo
Moved some functions to onion.c. Fixed possible portability issues.
2014-12-31fixes #1210Luke Drummond
2014-09-09spelling correctionscgar
2014-06-16Added more input validation to add_friend functions.irungentoo
2014-06-13Fixed typo.irungentoo
This typo doesn't seem to cause any issue because according to the code in vanilla NaCl the first crypto_box_ZEROBYTES (for encryption) and crypto_box_BOXZEROBYTES (for decryption) of the array passed to the crypto_box*() functions don't need to be zero for it to work. The documentation however clearly states that they need to be zero which means they need to be zero.
2014-06-10Astyle and fixes.irungentoo
2014-06-10Const correctness in toxcore/crypto_core.cMarc Schütz
2014-05-01Random number functions belong in crypto_core.irungentoo
2014-05-01Protocol implementation is starting to look ok.irungentoo
Still need to decide exactly how data packets will work though.
2014-05-01Improved the crypto_cmp function.irungentoo
It now uses the NaCl functions when the length is appropriate. Moved crypto defines to crypto_core.h
2014-04-28Added some functions to create/handle middle level protocol packets.irungentoo
2014-04-23Major cleanups.irungentoo
Fixed circular dependency between DHT and net_crypto: DHT no longer depends on net_crypto. Moved the crypto request packets functions to crypto core and DHT. Cleaned up/added some defines that can be used to get the true maximum length of things like the friends request message. MAX_DATA_SIZE has been replaced in most places by more appropriate defines.
2014-04-22Decided pretty much how the handshake would work.irungentoo
Started writing the code. Astyled some files.
2014-04-21Crypto related cleanups.irungentoo
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.