Commit Graph
2014 Commits
Author SHA1 Message Date
Frank Denis 3acf050566 Replace aegis128l implementation with libaegis' implementation 2023-09-09 17:24:46 +02:00
Frank Denis 94c650ae80 Proper casts for C++ 2023-09-08 23:35:24 +02:00
Frank Denis c3692bbe0f Revert "C++ compat"
This reverts commit 48a679650e.
2023-09-08 23:31:27 +02:00
Frank Denis 4776f392ab Simplify how non-deterministic ed25519 nonces are computed 2023-09-08 23:30:25 +02:00
Frank Denis 48a679650e C++ compat 2023-09-08 20:59:33 +02:00
Scr3amer 18fad78494 Add missing undef in _mm_roti_epi64 definition for blake2b-ssse3 (#1306) 2023-09-02 22:16:15 +02:00
Frank Denis 503a1ef2c3 Simplify _mm_roti_epi64 definition 2023-09-02 15:23:53 +02:00
Scr3amer 4ebe29b2e3 Do not redefine _mm_roti_epi64 if xop target feature is enabled. (#1305)
Undefine compiler macro if present and XOP not enable to avoid preprocessor warnings due to macro redefinition
2023-09-02 15:22:20 +02:00
Frank Denis 8ad54cb636 Fallback to _Thread_local on C11 regardless of the platform 2023-09-01 23:43:21 +02:00
Scr3amer a04c8687ac Define TLS as _Thread_local is compiler supports C11 (#1304)
This avoids having warnings when compiling with Clang-MinGW on windows.
2023-09-01 23:37:36 +02:00
Frank Denis baa75cd1b8 Indent 2023-09-01 16:32:45 +02:00
Frank Denis 0ea62015f2 scrypt_nosse: Remove the 64-bit version of blkxor()
It broke strict aliasing.

Also remove ARCH_BITS that is not required any longer.

Fixes #1301
2023-08-31 23:23:30 +02:00
Frank Denis b828df51dd scrypt_integerify_sse: be consistent with the no_sse version 2023-08-31 23:18:09 +02:00
Frank Denis 30212c0952 scrypt_nosse: no need to use void * in integerify() 2023-08-31 23:08:56 +02:00
Frank Denis a3f200abe6 Manually define __ARM_FEATURE_AES (necessary for CheriOS) 2023-08-23 22:18:11 +02:00
Frank Denis 4dc02ce841 Assume all CPUs supported by ARM Windows have the crypto extensions
RADDI.net said:

"All supported AArch64 CPUs on desktop Windows 10 and 11 have
both AES (crypto) and NEON, no feature testing needed."
2023-08-05 23:15:33 +02:00
Frank Denis e698b1b000 Check _M_ARM64 in addition to __aarch64__ 2023-08-05 23:04:35 +02:00
Frank Denis 02368730f0 Compile libaesni with CFLAGS_AVX 2023-08-05 09:40:02 +02:00
Frank Denis 6668dc8008 Require/enable AVX for AES-based ciphers 2023-08-05 09:33:04 +02:00
Frank Denis 50c2f39b38 Move lut to the data section 2023-07-30 01:02:54 +02:00
Frank Denis 890905f946 Add proper CET support (followup to #1290) (#1291) 2023-07-19 18:27:36 +02:00
Siddhesh Poyarekar 0bc8e0bdfd Build correctly with IBT and Shadow Stack (#1289)
Add .gnu.property notes to indicate support for IBT and shadow stacks
when libsodium is built with it.  There's no stack switching code in
here, so this should not need any other codegen changes.
2023-07-18 17:56:18 +02:00
Frank Denis 6187ebc10f Reorder AES ops on ARM 2023-06-19 12:34:10 +02:00
Frank Denis c524c7a14b Revert "Leverage aegis*_absorb() when no message is desired"
This reverts commit 2c56be1d77.
2023-06-15 17:15:51 +02:00
Frank Denis 2c56be1d77 Leverage aegis*_absorb() when no message is desired 2023-06-06 23:21:22 +02:00
Frank Denis 8d9ab6cd76 Use CCRandomGenerateBytes if present
Helps with App Store validation rules.
2023-04-16 15:15:53 +02:00
Frank Denis 66a68f0947 AEGIS/ARM: help the compiler emit eor3 instructions on recent ARM CPUs 2023-03-12 23:41:23 +01:00
Frank Denis 07b4176eca pwhash: fill output buffer with junk prior to running the actual KDF
These functions are a little bit special, because unlike everything
else, they do dynamic memory allocations, and are more likely to fail.

Applications are expected to check the return code, and these functions
are tagged with ((warn_unused_result)) but applications may still
ignore these.

This is also an issue with JavaScript, when total memory hasn't been
properly configured.

To be safe, fill the buffer with non-deterministic bytes, that are
unlikely to ever verify later.
2023-02-15 20:16:10 +01:00
Frank Denis 48af322b7a AES-256-GCM (AES-NI): prefetch the next blocks
...while computing the GHASH of the previous blocks.

For AMD CPUs with disabled hardware prefetchers, the gain may
be significant.
2023-01-14 00:03:27 +01:00
Frank Denis 1bd73c1a68 Add crypto_kdf_hkdf_sha{256,512}_extract_{init,update,final} 2023-01-08 22:16:34 +01:00
Frank Denis 337fba6c23 2023 2023-01-05 14:06:26 +01:00
Frank Denis 415331e73b Mention that mlock() failing is not a hard error for sodium_malloc() 2022-12-19 12:12:05 +01:00
Frank Denis c4a9f1b2af Add missing <stdint.h> includes 2022-12-13 20:33:09 +01:00
Frank Denis 1994ad93bd Sync the AESNI aes_gcm_decrypt_generic() impl with the ARM one 2022-12-11 23:47:46 +01:00
Frank Denis 4482067df9 Add a test for aes256gcm_decrypt with long inputs, make it pass 2022-12-11 23:44:50 +01:00
Frank Denis ff480f17f0 Nits 2022-12-11 23:15:06 +01:00
Frank Denis 408125a72b Add AEGIS-256 software support 2022-12-10 00:03:42 +01:00
Frank Denis 15cceaad90 MSVC compat 2022-12-09 21:29:33 +01:00
Frank Denis 11d2fa5bb0 Add AEGIS-128L software support 2022-12-09 21:12:35 +01:00
Frank Denis 0f767c7d07 Get rid of the has_small_order() lookup table 2022-11-27 15:28:15 +01:00
Frank Denis 87ba2c4d36 Unexport _cached_ symbols, regen quirks.h 2022-11-26 22:28:08 +01:00
Frank Denis f29f58e6ed Leverage p3_add()/p3_sub() 2022-11-26 22:20:37 +01:00
Frank Denis d2d8f573b7 Add ge25519_p2_to_p3(), ge25519_p3_add(), ge25519_p3_sub() 2022-11-26 22:14:24 +01:00
Frank Denis 42b4a295fc crypto_sign_verify(): add and match the Zig test vectors 2022-11-26 21:25:47 +01:00
Frank Denis 6e8468d875 Support memset_explicit() if available
NetBSD has explicit_memset(), but C23 decided to implement the
same thing but call it memset_explicit() instead. Go figure.
2022-11-21 15:29:44 +01:00
Frank Denis ece8e60524 AEGIS: add a specialized function to absorb the AD 2022-11-20 18:16:13 +01:00
Frank Denis dd5c2bf23c Make the AEGIS code for ARM and Intel similar 2022-11-17 22:32:37 +01:00
Frank Denis af679cfb66 Add _mm_set_epi64x emulation if required 2022-11-17 13:48:45 +01:00
Frank Denis de83673ae4 Add some sanity checks 2022-11-17 13:04:22 +01:00
Frank Denis 104de0dcd1 clsq128(): simplify squaring 2022-11-16 22:51:44 +01:00