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