Commit graph

2685 commits

Author SHA1 Message Date
Karel Miko
22bc6b68e0 MSVC & SHA512 extension support 2026-08-01 14:13:43 +02:00
Karel Miko
51511d1cd0 Update makefiles 2026-08-01 11:17:41 +02:00
Karel Miko
9e2984aa7e SHA-512 accelerated by x86 (alternative) 2026-08-01 11:17:36 +02:00
karel-m
4d9e2a1a57
Merge pull request #758 from libtom/more-fixes-and-improvements
More fixes and improvements
2026-08-01 10:20:27 +02:00
Karel Miko
bfc516d246 fix typo sha256_x86_compress/sha256_compress (LTC_CLEAN_STACK only) 2026-08-01 09:26:29 +02:00
Steffen Jaeckel
97f5d72457 Ensure the table sizes are OK.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
5a2bc6b131 Fix importing certificate with Ed448 key.
While running the tests in verbose mode I saw that
`tests/pem/openssl_ed448_x509.pem` is skipped instead of processed.

Fixes: 076a11037a ("Ed448 + X448")
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
2320e44205 Allow processing of empty files.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
b0894f683f Add pem tests with empty files.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
7978822b69 Add help to test binary.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
429d07e388 Some minor SHA1/256 improvements&fixes.
* Use a shared init function.
* Fix some functions used in descriptors and implementation.

Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
fb857d83ed Auto-generate table of hashes.
Fixes: 6c885c7732 ("SM3 hash function")
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
54f5803ad8 Rename keccac hash descriptors.
They're the only ones which don't follow the same pattern.

Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 23:57:51 +02:00
Steffen Jaeckel
459bd79006
Merge pull request #786 from libtom/pr/appveyor-clang-cl
appveyor + clang-cl
2026-07-31 23:50:20 +02:00
Karel Miko
a58d4b5278 clang-cl fix related to intrin.h 2026-07-31 23:48:18 +02:00
Karel Miko
3acb5aed64 appveyor + clang-cl 2026-07-31 23:48:18 +02:00
Steffen Jaeckel
2d16cc7f76
Merge pull request #756 from libtom/fast-type
Fix LTC_FAST_TYPE
2026-07-31 23:48:02 +02:00
Steffen Jaeckel
4a964ea017 Align macro based and inline LTC_FAST functions. 2026-07-31 20:27:50 +02:00
Karel Miko
6bc4dd9b7b fix UBSanitizer issue: load of misaligned address for type LTC_FAST_TYPE (replacing LTC_FAST_TYPE_PTR_CAST approach) 2026-07-31 20:16:48 +02:00
Steffen Jaeckel
88f95afc5c Rename according to PR #756
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-07-31 20:16:48 +02:00
karel-m
a467ea586b
Merge pull request #785 from libtom/pr/hash-memcpyable
Another attempt to make sha1/sha256 states memcpyable
2026-07-31 11:10:10 +02:00
Steffen Jaeckel
927191b193
Merge pull request #763 from MarekKnapek/ubsan
ubsan
2026-07-31 10:54:12 +02:00
Marek Knápek
c727c4032a Get rid of LTC_FAST_TYPE_PTR_CAST entirely.
As it might be dangerous to use it.

This introduces `LTC_FAST_TYPE_{ASSIGN,MASK,XOR{2,3}}()` in order to
replace the potential unaligned loads.

This fixes the following UBSAN errors:

src/modes/ctr/ctr_encrypt.c:56:66: runtime error: load of misaligned address 0x7ffea07ee82f for type 'LTC_FAST_TYPE', which requires 8 byte alignment
src/modes/ctr/ctr_encrypt.c:56:64: runtime error: store to misaligned address 0x7ffea07ee82f for type 'LTC_FAST_TYPE', which requires 8 byte alignment
tests/store_test.c:66:91: runtime error: load of misaligned address 0x7ffdd32f0d9f for type 'LTC_FAST_TYPE', which requires 8 byte alignment
tests/store_test.c:66:52: runtime error: load of misaligned address 0x7ffdd32f0d71 for type 'LTC_FAST_TYPE', which requires 8 byte alignment
tests/store_test.c:66:50: runtime error: store to misaligned address 0x7ffdd32f0dc1 for type 'LTC_FAST_TYPE', which requires 8 byte alignment
src/mac/pmac/pmac_process.c:40:50: runtime error: load of misaligned address 0x57c89c4329ec for type 'LTC_FAST_TYPE', which requires 8 byte alignment
src/mac/xcbc/xcbc_process.c:35:60: runtime error: load of misaligned address 0x57c89c432ccc for type 'LTC_FAST_TYPE', which requires 8 byte alignment
src/mac/f9/f9_process.c:39:58: runtime error: load of misaligned address 0x5c2b1a1d2c14 for type 'LTC_FAST_TYPE', which requires 8 byte alignment
src/encauth/gcm/gcm_process.c:82:58: runtime error: load of misaligned address 0x596b3e6aa354 for type 'LTC_FAST_TYPE', which requires 8 byte alignment
2026-07-31 10:45:09 +02:00
Marek Knápek
471f143078 Fix UBSAN errors
src/encauth/siv/siv.c:164:19: runtime error: null pointer passed as argument 2, which is declared to never be null
/usr/include/string.h:44:28: note: nonnull attribute specified here
src/misc/compare_testvector.c:63:25: runtime error: null pointer passed as argument 2, which is declared to never be null
/usr/include/string.h:65:33: note: nonnull attribute specified here
2026-07-31 10:44:16 +02:00
Karel Miko
a1a631efe4 make sha1/sha states clonable via memcpy 2026-07-30 20:17:44 +02:00
karel-m
c5607aff6b
Merge pull request #784 from libtom/pr/msvc-fallthrough
Fix LTC_FALLTHROUGH related error reported by MSVC compiler
2026-07-30 16:48:17 +02:00
Karel Miko
23fca6ed39 Fix LTC_FALLTHROUGH related error reported by MSVC compiler 2026-07-30 16:01:06 +02:00
Steffen Jaeckel
79f2b5762d
Merge pull request #777 from libtom/pr/siv-zero-ad
SIV properly handle zero AD components
2026-07-30 15:42:03 +02:00
Karel Miko
511252c49e update SIV doc - fix adnum; explain no associated data vs. empty associated data 2026-07-30 15:39:27 +02:00
Karel Miko
cff7442824 SIV properly handle zero AD components 2026-07-30 15:39:27 +02:00
Steffen Jaeckel
f5fe918ab8
Merge pull request #755 from libtom/fix-warnings
Fix warnings
2026-07-30 15:37:58 +02:00
Karel Miko
074a354151 fix build failures with -std=c99 2026-07-30 15:22:33 +02:00
Karel Miko
0b6f0e1232 fix clang warnings -Wimplicit-fallthrough (while keeping /* FALLTHROUGH */ for some code review tools) 2026-07-30 15:22:33 +02:00
Karel Miko
26605163a4 fix clang warnings -Wmissing-variable-declarations 2026-07-30 15:22:33 +02:00
Karel Miko
317994fb1b fix clang warnings -Wstrict-prototypes -Wmissing-prototypes in tests+demos 2026-07-30 15:22:33 +02:00
Karel Miko
661fcd6486 fix UBSanitizer issue: applying non-zero offset to null pointer 2026-07-30 15:22:33 +02:00
Karel Miko
5c8ac18bd1 fix UBSanitizer issue: memcpy/memcmp require non-null pointers even when the length is zero 2026-07-30 15:22:33 +02:00
Karel Miko
76a9ece653 fix UBSanitizer issue: left-shifting negative integer is undefined behavior 2026-07-30 15:22:33 +02:00
Karel Miko
509da35eee fix clang warning: 'err' may be used uninitialized 2026-07-30 15:22:33 +02:00
karel-m
612f211bbc
Merge pull request #783 from libtom/pr/der-misc-issues
various DER related fixes/improvements
2026-07-29 23:50:05 +02:00
Karel Miko
209df8ae1a hardening pkcs8_get_children against uninitialized output pointers 2026-07-28 16:33:09 +02:00
Karel Miko
5c7757d0a5 various DER related fixes/improvements 2026-07-28 00:10:29 +02:00
Steffen Jaeckel
a8ed78c2ca
Merge pull request #780 from libtom/pr/argon2-parallelism-overflow
Argon2 enforce parallelism max 2^24-1
2026-07-21 11:07:46 +02:00
Karel Miko
fcadf67bbb Argon2 enforce parallelism max 2^24-1 2026-07-21 11:02:31 +02:00
Steffen Jaeckel
b7b04ffd37
Merge pull request #778 from libtom/pr/eax-taglen
EAX properly handle taglen boundaries
2026-07-21 10:59:19 +02:00
Karel Miko
39f5e1fae8 EAX properly handle taglen boundaries 2026-07-21 10:56:44 +02:00
Steffen Jaeckel
84aec00adc
Merge pull request #776 from libtom/pr/ccm-nonce
Fix issue #775 - CCM nonce is 7..13 bytes
2026-07-21 10:56:27 +02:00
Karel Miko
e00b22d939 CCM nonce is 7..13 bytes 2026-07-21 10:53:25 +02:00
Steffen Jaeckel
1027dcfaf6
Merge pull request #765 from libtom/pr/fix-issue764
Fix issue #764 - small-subgroup attack
2026-07-21 10:53:14 +02:00
Karel Miko
bc95a1fd2d hardening ecc_shared_secret against small-subgroup attacks 2026-05-25 16:18:14 +02:00