Commit Graph
141 Commits
Author SHA1 Message Date
Frank Denis 31d842a432 Test for (secret)box_easy behavior with a huge input. 2014-09-16 21:20:05 -07:00
Frank Denis 37580f4f52 More tests 2014-09-16 20:46:43 -07:00
Frank Denis fbfbbdd349 Ensure that nothing explodes when calling crypto_generichash_blake2b_init_salt_personal with salt/personal == NULL 2014-09-16 20:09:33 -07:00
Frank Denis 51d9b223aa Test crypto_box_(before|after)nm 2014-09-16 20:01:58 -07:00
Frank Denis 1cf170a90e Test sodium_allocarray(), and sodium_malloc() with a huge size 2014-09-16 15:35:21 -07:00
Frank Denis 4993073501 Test chacha20 with a null output length 2014-09-16 15:25:54 -07:00
Frank Denis 6837c2d2c2 Include extra 0 in the key used for the hmacsha512 test 2014-09-16 15:25:38 -07:00
Frank Denis fe4bbdc5ca More crypto_pwhash() tests 2014-09-16 15:07:42 -07:00
Frank Denis a721543b58 Test hmacsha512 with keys larger than the block size 2014-09-16 14:59:19 -07:00
Frank Denis e333e55209 Increase generichash test coverage 2014-09-16 14:44:38 -07:00
Frank Denis cee8af9b66 Test chacha20 with length == 0 2014-09-16 10:32:04 -07:00
Frank Denis 81aa4ef4a3 Check crypto_onetimeauth() streaming interface 2014-09-16 10:19:32 -07:00
Frank Denis d7edf5c34b crypto_generichash_keybytes_min() cannot be 0, even if 0 is a valid key length 2014-09-15 10:26:29 -07:00
Frank Denis 1217d30bae More chacha20 tests 2014-09-14 13:09:15 -07:00
Frank Denis 2f7d98a73d Fix format in auth5 test 2014-09-14 12:58:50 -07:00
Frank Denis dc49ae0491 Add tests for invalid generichash parameters 2014-09-14 12:56:32 -07:00
Frank Denis 0ec5a25c88 More tests for randombytes 2014-09-14 12:43:53 -07:00
Frank Denis 82bc039d6c Consistent syle for the tests. 2014-09-14 11:32:55 -07:00
Frank Denis 0e559b94d5 Make the tests a little bit more readable 2014-09-14 10:34:16 -07:00
Frank Denis f41bfa9b94 More tests for constants 2014-09-13 15:17:19 -07:00
Frank Denis fcc2513967 More tests for constants 2014-09-13 15:12:23 -07:00
Frank Denis d65c791e58 More tests for constants 2014-09-13 15:03:04 -07:00
Frank Denis 2645422a32 Test crypto_aead with a short ciphertext 2014-09-13 14:51:21 -07:00
Frank Denis a92731a9f4 More tests for constants 2014-09-13 14:47:29 -07:00
Frank Denis 12a3f27706 More tests for constants 2014-09-13 14:37:04 -07:00
Frank Denis 2c1b507045 More constant tests 2014-09-13 14:29:59 -07:00
Frank Denis ab37bd3e0b Tests: no need for crypto_uint8 2014-09-13 14:15:55 -07:00
Frank Denis b7b0436fb8 Test the presence of some extra functions 2014-09-13 14:12:40 -07:00
Frank Denis 4d276a81e7 Include header files commonly used by the tests to cmptest.h 2014-09-13 14:11:12 -07:00
Frank Denis 3b680e0a52 Use high-level APIs in tests 2014-09-13 13:56:41 -07:00
Frank Denis 6c0852f22f Remove unused macros 2014-09-04 13:24:09 -07:00
Frank Denis 0e23192159 Add crypto_sign_ed25519_sk_to_seed() and crypto_sign_ed25519_sk_to_pk() 2014-08-15 13:52:08 -07:00
Frank Denis 473e1718cc Add sodium_{malloc,allocarray,free}() and sodium_mprotect_*()
ptr = sodium_malloc(size) returns a pointer from which exactly "size" bytes
can be accessed.

ptr = sodium_allocarray(count, size) allocates enough storage space for
"count" pointers or scalars of unit size "size".

In both cases, the region is immediately followed by a guard page.
As a result, any attempt to access a memory location after ptr[size - 1] will
immediately trigger a segmentation fault.

The allocated region is mlock()ed and filled with 0xd0 bytes.

A read-only page with the size, a guard page, as well as a canary are
placed before the returned pointer.

The canary is checked by sodium_free(); as a result, altering data right
before ptr is likely to cause sodium_free() to kill the process.

sodium_free() munlock()s the region and fills it with zeros before
actually calling free().

sodium_mprotect_noaccess(), sodium_mprotect_readonly() and
sodium_mprotect_readwrite() can be used to change the protection on the set
of allocated pages.

Reverting the protection to read+write is not required before calling
sodium_free().
2014-08-14 21:41:05 -07:00
Frank Denis 9f0208050e crypto_sign_SECRETKEYBYTES already includes the public key 2014-08-05 14:26:39 -07:00
Frank Denis eae4add8de Implement ed25519 -> curve25519 keys conversion 2014-08-05 13:32:25 -07:00
Frank Denis 7b0eeda1c6 Remove aes256estream.
AES-256 will be reintroduced, but not until we have a bitsliced implementation.
2014-08-05 00:57:10 -07:00
Frank Denis c16502fc2c Coverity FP 2014-07-15 22:48:49 -07:00
Frank Denis 25ea5b65db Add explicit checks for crypto_box_detached() 2014-07-11 12:28:52 -07:00
Frank Denis ad7b1c58a8 Add tests for short messages with (secret)box_easy 2014-07-11 12:23:52 -07:00
Frank Denis 2bb8ae26d5 Test detached signatures 2014-07-10 23:21:23 -07:00
Frank Denis 16fa9960e0 Test crypto_sign_detached() 2014-07-10 23:21:22 -07:00
Frank Denis 96b840cfcf Add a test for short (non-detached) signed messages 2014-07-10 22:39:11 -07:00
Frank Denis f6519378b4 + --enable-minimal to build a smaller library without less-used functions. 2014-07-09 20:24:04 -07:00
Frank Denis 0e4f4d6205 Use unsigned types for sizes in tests. 2014-07-01 19:33:59 +00:00
Frank Denis 9154d7416e Add a test for crypto_aead without any additional data 2014-06-30 16:23:34 -07:00
Frank Denis 768b78b711 crypto_(secret)box_easy_detached() -> crypto_(secret)box_detached() 2014-06-27 18:29:03 -07:00
Frank Denis 44f7a9f3cb Allow the authentication tag to be stored separately from the message.
Encrypting in-place and storing the tag separately is a very common need.
Instead of forcing people to do their own cuisine, let's provide simple
variants of the _easy interfaces to do that.
2014-06-26 15:18:39 -07:00
Frank Denis eec0f78af6 Move the tag to the end for crypto_aead_chacha20poly1305 2014-06-26 09:15:20 -07:00
Frank Denis efe53d118b chachapoly1305 test: check output length 2014-06-26 08:56:17 -07:00
Frank Denis a7410966ea Rename secretbox_chacha20poly1305() -> aead_chacha20poly1305()
The tag is still at the end. This will be changed right after.
2014-06-26 08:48:13 -07:00