Steffen Jaeckel
c68b9c0b3f
Minor changes of argon2 implementation.
...
* We continue using `LTC_ARGCHK()` until we've decided on something else.
* Call the enum/struct the same as the typedef.
* Some other small adjustments/fixes.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-04-12 16:06:53 +02:00
Karel Miko
458b392d01
Argon2 password hashing function (RFC 9106)
2026-04-12 14:48:32 +02:00
Steffen Jaeckel
11929885a4
Basic algo self-tests should be run before the ones using them.
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2026-04-09 15:40:07 +02:00
Marek Knápek
6832f3c106
Add KangarooTwelve XOF functions.
...
KangarooTwelve 128bits and KangarooTwelve 256 bits.
https://keccak.team/files/TurboSHAKE.pdf
https://www.rfc-editor.org/rfc/rfc9861.txt
https://datatracker.ietf.org/doc/html/rfc9861
2025-11-28 19:05:31 +01:00
Marek Knápek
709572e22e
Add TurboSHAKE XOF functions.
...
TurboSHAKE128 and TurboSHAKE256.
https://datatracker.ietf.org/doc/html/rfc9861
https://www.rfc-editor.org/rfc/rfc9861.txt
https://keccak.team/files/TurboSHAKE.pdf
https://github.com/libtom/libtomcrypt/issues/691
2025-11-25 09:22:35 +01:00
Steffen Jaeckel
dda1c7eedf
Re-factor modes_test().
...
... also funny that no static analyzer complained about `ret` being
assigned, but never read ...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-24 14:58:13 +01:00
Steffen Jaeckel
6daff83d82
Deprecate compare_testvector().
...
This should never have been public API.
Also introduce a `LTC_COMPARE_TESTVECTOR()` macro to be used within the
library, which doesn't exit, but only returns an error.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-24 14:58:13 +01:00
Steffen Jaeckel
d77afd6a68
Use rsa_init() to initialize an rsa_key
...
(and you should do that too)
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-18 23:03:42 +01:00
Steffen Jaeckel
b46c695505
Add tests for deprecated APIs
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-18 18:53:26 +01:00
Steffen Jaeckel
35a4a5fc1b
Move RFC6979 hash alg to a new ecc signature options struct
...
Fixes #700
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-18 18:53:26 +01:00
Steffen Jaeckel
47162b9609
Add demos/der_print_flexi.c
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-03 13:56:42 +01:00
Steffen Jaeckel
e2d0935792
Add SHA3-HMAC support to PKCS#8
...
This also enables testing of PKCS#8 keys using modern hash algos with
LTC_EASY.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-03 13:52:38 +01:00
Steffen Jaeckel
78e2675bfe
Make store_test() a bit more aggressive.
...
With `LTC_FAST` enabled test to read from different offsets.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-03 13:52:29 +01:00
Steffen Jaeckel
5dbdaff16b
Minor fixes
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-11-03 13:52:16 +01:00
Steffen Jaeckel
a58de2e03d
Fix some scan-build warnings
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-13 12:04:38 +02:00
Steffen Jaeckel
1978245572
Update makefiles
2025-09-13 12:04:38 +02:00
Steffen Jaeckel
78bb06c8d6
Minor cleanup
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-12 18:25:09 +02:00
Steffen Jaeckel
07d544c5d9
Add tests for & fix pk_oid API
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-12 18:25:09 +02:00
Steffen Jaeckel
fe32e7ea9d
Add LTC_ARRAY_SIZE() macro
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-06 15:00:00 +02:00
Steffen Jaeckel
6155a33e5f
Use COMPARE_TESTVECTOR() consistently
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-06 15:00:00 +02:00
Steffen Jaeckel
cb12f2e7d0
Clarify some test descriptions
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-06 15:00:00 +02:00
Steffen Jaeckel
661109f660
re-factor modes to use internal ECB implementation
2025-09-05 17:37:02 +02:00
Steffen Jaeckel
46fa363f2c
Finish up RFC6979 ECDSA keygen
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-09-04 17:36:30 +02:00
Russ Williams
d376af52ca
RFC6979: implementation, tests, docs
2025-09-04 17:36:30 +02:00
Steffen Jaeckel
ecb5fdd997
Add testcase for Ethereum signatures.
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-03-02 12:09:24 +01:00
Karel Miko
6561b37bac
refactor ecc_verify_hash_ex
2025-03-02 12:09:24 +01:00
Karel Miko
0ee3bb5786
refactor ecc_sign_hash_ex
2025-03-02 12:09:24 +01:00
Steffen Jaeckel
236477823a
prefix the MPI related macros with ltc_
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-02-20 14:41:50 +01:00
Steffen Jaeckel
cda7d42647
Improve ILP32 detection
...
This should fix https://github.com/DCIT/perl-CryptX/issues/117
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-02-17 15:12:53 +01:00
Steffen Jaeckel
faa8cd71e5
add SIV
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-12-17 18:24:26 +01:00
Steffen Jaeckel
d96605b4b9
Fix build on x32
...
* `CONSTPTR()` must be 32bit.
* `CRYPT_HASH_OVERFLOW` test operates on `unsigned long`, which is only
32bit wide on x32.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-12-11 11:09:58 +01:00
Steffen Jaeckel
a9bb1c1525
Use cmake-format to format CMake files
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-12-03 19:51:26 +01:00
Steffen Jaeckel
1d07689581
Remove unnecessary casts in the tests
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-11-08 17:15:39 +01:00
Steffen Jaeckel
5a1545a8ae
Ensure test buffers are always '\0' terminated
...
This caused spurious test failures.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-10-12 14:04:49 +02:00
Steffen Jaeckel
ebfcff3027
Fix handling of trailing spaces when decoding PEM files
...
Reported via [0].
[0] https://github.com/DCIT/perl-CryptX/issues/110#issuecomment-2407279713
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-10-12 14:04:49 +02:00
Steffen Jaeckel
c1437deec2
Fix hang when decoding PEM
...
Reported via [0]
[0] https://github.com/DCIT/perl-CryptX/issues/110#issue-2533207989
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-10-12 14:04:33 +02:00
Tim van der Molen
33d1c81485
Improve SSE4.1/AES-NI support
2024-09-02 13:54:35 +02:00
Chao Wei
6f15a45adc
Add SM4 block cipher
...
SM4 (formerly SMS4)[1] is a block cipher used in the Chinese
National Standard for Wireless LAN WAPI (Wired Authentication
and Privacy Infrastructure).
--from wikipedia
2024-08-30 05:30:48 +02:00
Richard Levitte
6170ba5205
fix: tests/cipher_hash_test.c failed to use aes_enc_test
...
Depending on build circumstances, the AES test function is either
aes_test() or aes_enc_test().
2024-08-20 14:35:16 +02:00
Steffen Jaeckel
2613264cef
We can now also decrypt PEM files encrypted in CFB1 and CFB8 mode
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
cf79facfb9
Add support for CFB1 and CFB8
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
ec8ffbb5bd
Update makefiles
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
478f43fc56
Add support for reading authorized_keys files
...
This also changes the requirements when calling `ecc_find_curve()` that
the `cu` argument can be NULL.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
c0be0aa0bf
Add support for more types of encrypted PEM files
...
1. ChaCha20, two-key 3DES and DES-X encrypted OpenSSL PEM files
2. AES-GCM and Chacha20+Poly1305 encrypted SSH keys
* OpenSSH uses a slightly different algorithm for its
`chacha20-poly1305@openssh.com` than defined in the RFC.
Therefore add an `openssh_compat` flag to
`chacha20poly1305_state`.
* Add the option to give a 16byte IV and no counter, when calling
`chacha20poly1305_memory()`
* Add support for DES-X
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
95790221fb
Add free() function to password_ctx
...
The user can now pass a `free()` function pointer that will be used to
free the memory that has been allocated by the `callback()`.
If `free()` is NULL, the library will still call `XFREE()`.
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
02cb0c4957
Revert "Move password buffer into the library"
...
This reverts commit d840323bc1d3bc35bc72271e55ffa644f02b4582
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
03515d5611
Move password buffer into the library
...
The design before was not completely fine. The user had to allocate the
buffer and passed ownership to the library.
As of [0] this seems to be a problem in some environments.
[0] https://github.com/libtom/libtomcrypt/pull/587#issuecomment-1765324724
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
fe3b3e627b
Add generic PEM decode APIs
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
8d19047336
Add support for more PEM file types + some fixes
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00
Steffen Jaeckel
ca7b4ee354
Add more SSH key tests
...
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2024-08-20 13:29:27 +02:00