Commit Graph
1223 Commits
Author SHA1 Message Date
Frank Denis 9294e2e699 Revamp the salsa20 implmentations and structure
- Factorize core_salsa20{20,12,8}
- Add support for multiple salsa20 implementations
- Replace the assembly SSE2 implementation with its equivalent using intrisics
2017-02-26 16:49:15 +01:00
Frank Denis 881f8ab599 initstate -> initial_state 2017-02-26 00:11:58 +01:00
Frank Denis 4e6091b347 Merge branch 'master' of https://github.com/jedisct1/libsodium
* 'master' of https://github.com/jedisct1/libsodium:
  spelling fixes (touches code in tests) (#494)
  Feature/spelling (#495)
2017-02-25 21:00:52 +01:00
Frank Denis 1295857ae5 Remove unused macros 2017-02-25 20:59:45 +01:00
ka7 21174cddc3 Feature/spelling (#495)
* spelling fixes (comments only)

* spelling fixes (comments only)
2017-02-25 14:21:10 +01:00
Frank Denis 81e37c6aa6 Add shorthash_siphashx24_*(): 128-bit Siphash 2017-02-24 19:06:21 +01:00
Frank Denis 710c36deb9 s/portable/nacl/g 2017-02-23 12:05:09 +01:00
Frank Denis d26c8adf84 Get rid of core_hchacha20.h 2017-02-23 12:02:56 +01:00
Frank Denis 9cd732c88d Indent 2017-02-23 11:12:18 +01:00
Frank Denis 0ccc6d7661 Indent 2017-02-23 11:06:27 +01:00
Frank Denis 32a084222a Indent 2017-02-23 10:57:18 +01:00
Frank Denis 9626d7af59 Indent, remove duplicate includes 2017-02-23 10:51:42 +01:00
Frank Denis 61adf7f777 Leverage COMPILER_ASSERT 2017-02-23 10:49:53 +01:00
Frank Denis 02c2def25e inline 2017-02-23 10:40:42 +01:00
Frank Denis 5535ff8946 Indent 2017-02-23 10:38:37 +01:00
Frank Denis 68466a7ed7 Ident, reuse COMPILER_ASSERT 2017-02-23 10:37:57 +01:00
Frank Denis 14d54b9d22 Do not invent your own types 2017-02-23 10:34:32 +01:00
Frank Denis a60ac31ba4 Clean up the aes128ctr code 2017-02-23 10:30:44 +01:00
Frank Denis 2be6fc4800 Indent 2017-02-23 10:14:13 +01:00
Frank Denis 2838bcd04c Indent 2017-02-23 10:12:43 +01:00
Frank Denis a70446a127 Indent 2017-02-23 10:12:04 +01:00
Frank Denis 6980d47ec2 Indent 2017-02-23 10:09:08 +01:00
Frank Denis 2a24a27afa Indent 2017-02-23 09:57:09 +01:00
Frank Denis a1c4cf5b3c Indent 2017-02-23 09:47:12 +01:00
Frank Denis cad6561799 Indent 2017-02-23 09:42:15 +01:00
Frank Denis 9fbd5c0c18 Indent 2017-02-23 09:39:59 +01:00
Frank Denis b25cffb7f1 Indent 2017-02-23 09:39:02 +01:00
Frank Denis 5a843719b1 Use inlined functions instead of macros 2017-02-23 09:35:41 +01:00
Frank Denis fe3ed40a76 Reuse ROTR64 2017-02-23 09:27:47 +01:00
Frank Denis a3d7bc065e Reuse macros 2017-02-23 09:24:15 +01:00
Frank Denis c06418a382 Indent 2017-02-23 09:05:47 +01:00
Frank Denis 05349aa14d Avoid multiple definitions of ROTL/ROTR macros 2017-02-23 09:01:50 +01:00
Frank Denis 9fdca4a8c9 There's pretty much nothing left from the original code 2017-02-20 21:13:59 +01:00
Frank Denis f5673c7cc0 Avoid negating unsigned values 2017-02-20 21:12:33 +01:00
Frank Denis 76e8776839 Merge a couple more files 2017-02-20 10:32:23 +01:00
Frank Denis bb67b383ef Drop the _api suffixes 2017-02-20 09:50:34 +01:00
Frank Denis 7e5d64834c untab 2017-02-19 21:17:42 +01:00
Frank Denis 7f7e7235c5 Add a keygen function to all the primitives 2017-02-19 21:15:54 +01:00
Frank Denis fe3e60392c C++ compat 2017-02-19 19:03:18 +01:00
Frank Denis eb5ff7270e Use the IETF ChaCha20 version for randombytes_buf_deterministic()
It doesn't make any difference except by limiting the maximum
length to 256 Gb. But the code for the IETF version has a higher
probability to already be used by something else than the original
version.
Enforcing a 256 Gb limit can also prevent surprises from happening
in other implementations.
2017-02-19 18:55:32 +01:00
Frank Denis 4c6b0ac762 Add aliases for stream_chacha20 sizes, similar to chacha20poly1305 2017-02-19 18:54:25 +01:00
Frank Denis cafb0a695b Add randombytes_buf_deterministic() 2017-02-19 18:40:29 +01:00
Frank Denis 70c2796ae5 + crypto_kdf high-level API
This is a common need, and people end up reimplementing HKDF.

So, add a crypto_kdf() API similiar to libhydrogen's. The later has a
higher limit for the output length using BLAKE2X if required.

We can implement the same strategy later in libsodium if needed.
2017-02-19 18:13:10 +01:00
Frank Denis 7555ae37f0 blake2 -> blake2b 2017-02-19 17:15:41 +01:00
Frank Denis e0150faf56 Always zero the argon2 output buffer prior to doing anything
This is consistent with what we are doing with scrypt.
On error/misuse, the buffer is zeroed; this may prevent bugs with
reused/invalid buffers.
2017-02-19 12:40:28 +01:00
Frank Denis 2c6fb87708 Set crypto_pwhash_scryptsalsa208sha256_BYTES_MIN to 128 bits 2017-02-19 12:31:05 +01:00
Frank Denis 2e4e1c66a0 Complete 08c0e03f83 2017-02-19 12:23:37 +01:00
Emil Bay 08c0e03f83 WIP: crypto_pwhash constants (#464)
* Test exposed constraint constants on crypto_pwhash

This includes the following constants for crypto_pwhash, crypto_pwhash_argon2i,
and crypto_pwhash_scryptsalsa208sha256:

- crypto_pwhash_BYTES_MIN
- crypto_pwhash_BYTES_MAX
- crypto_pwhash_PASSWD_MIN
- crypto_pwhash_PASSWD_MAX
- crypto_pwhash_OPSLIMIT_MIN
- crypto_pwhash_OPSLIMIT_MAX
- crypto_pwhash_MEMLIMIT_MIN
- crypto_pwhash_MEMLIMIT_MAX

* Expose constraint constants for crypto_pwhash

* Expose constant methods for crypto_pwhash
2017-02-19 11:19:01 +01:00
Frank Denis 20d1d048fd Merge a couple files
These are unlikely to have multiple implementations ever, unlike their
underlying primitives, so move them one folder up instead and take it
as an opportunity to merge small files.
2017-02-18 21:53:32 +01:00
Frank Denis a329340d90 Remove the NaCl-like APIs from *xchacha20 additions
These APIs were useful with the salsa20 constructions for compatibility
with NaCl, but they are tricky to use and don't provide any benefits over
the _easy APIs.

Having them around was good for consistency with the salsa20-based ones,
but this is code that is unlikely to be used in actual projects.

So, don't include them, unless people actually ask for them.
2017-02-18 21:22:39 +01:00