132 Commits

Author SHA1 Message Date
Thomas Pornin
87a796dd69 Fixed computing of intermediate buffer size for maximum-size RSA keys. 2019-01-22 00:04:08 +01:00
Thomas Pornin
6433cc2e9d Added detection for MIPS64 with n32 ABI. 2019-01-03 20:11:12 +01:00
Thomas Pornin
001d094d14 Some small performance improvements on 32-bit architectures. 2019-01-03 19:50:54 +01:00
Thomas Pornin
08eb07825b Fixed fd leak in test code. 2019-01-03 14:31:38 +01:00
Thomas Pornin
d5acc4f590 Made m64 implementations of elliptic curves the default (when available). 2018-12-19 00:19:19 +01:00
Thomas Pornin
f0ddbc32f0 Added new 64-bit implementations of Curve25519 and P-256. 2018-12-18 23:56:16 +01:00
Thomas Pornin
b2a08e908d Made ec_c25519_m62 implementation the default on supported architectures. 2018-12-08 21:12:27 +01:00
Thomas Pornin
52a69fe3de Fixed endianness in Curve25519 implementation (no consequence on security). Also added new Curve25519 code for 64-bit platforms. 2018-12-08 21:04:07 +01:00
Thomas Pornin
fd98320c82 Cosmetic fix (value did not conform to its announced bit length, but this did not have bad consequences since br_i31_decode_mod() is lenient on that). 2018-10-18 17:51:10 +02:00
Thomas Pornin
431629d869 Changed speed benchmark for i31 to a 521-bit modulus. 2018-10-18 17:50:03 +02:00
Thomas Pornin
c6ffcd2938 Fixed warning on GCC 4.6 to 4.9 (macro redefinition). 2018-09-12 17:42:08 +02:00
Thomas Pornin
420f50c213 Added stand-alone RSA/PSS implementation. 2018-08-17 22:47:03 +02:00
Thomas Pornin
966078b337 Added SHAKE implementation. 2018-08-16 18:56:12 +02:00
Thomas Pornin
8ef7680081 Some documentation fixes. v0.6 2018-08-14 22:41:04 +02:00
Thomas Pornin
fa0b7bbe90 Added generic HKDF implementation. 2018-08-14 17:02:22 +02:00
Thomas Pornin
f8e38c231d Added POWER8 implementation for AES/CTR+CBC-MAC (for CCM and EAX modes). 2018-08-12 23:53:23 +02:00
Thomas Pornin
ffe3c9166b Made Base64 decoding constant-time (with regards to actual data byte contents). 2018-08-06 00:16:09 +02:00
Thomas Pornin
d8fa415fca Added support code for RSA and EC key encoding (including reconstruction of all public and private key elements from the private key structure), with raw and PKCS#8 formats, both in DER and PEM. 2018-08-06 00:02:36 +02:00
Thomas Pornin
cfbc702d3d Added AESCTR_DRBG implementation (beta). 2018-08-01 00:50:13 +02:00
Thomas Pornin
491a45337d Added RSA key generation code (i15, i31, i62). 2018-07-31 23:00:26 +02:00
Thomas Pornin
a0054ad821 Fixed computation of product size. 2018-07-31 22:53:35 +02:00
Thomas Pornin
e37c90ac68 Added support for CCM and CCM_8 cipher suites. 2018-07-28 22:31:50 +02:00
Thomas Pornin
d69276c18d Added guard code to avoid issue when decoding PEM but not keeping data. 2018-06-05 15:18:27 +02:00
Thomas Pornin
05520e8eae Fixed some typographic errors in comments. 2018-05-27 23:37:15 +02:00
Thomas Pornin
a8a8f51ea4 Small typo fixes (harmless). 2018-05-24 15:26:43 +02:00
Thomas Pornin
d592e99932 Added RSA/OAEP implementation. 2018-05-23 23:16:31 +02:00
Thomas Pornin
f81a282878 Added stricter rule on input for RSA private key operation (mathematically correct but out-of-range values are now rejected). 2018-05-23 18:48:19 +02:00
Thomas Pornin
932fb89081 Made client stricter in cipher suite selection (better consistency with server behaviour). 2018-05-19 01:53:16 +02:00
Thomas Pornin
c1e540575c Fixed bug in bit length computation (implied some wrong RSA signatures in case of carry propagation with some specific key/factor lengths). 2018-05-02 17:32:35 +02:00
Thomas Pornin
7d313ccce7 Simple documentation fix. 2018-05-02 17:31:35 +02:00
Thomas Pornin
12db697bcc Added API to share precomputations in EAX. 2018-02-08 15:50:10 +01:00
Thomas Pornin
e51143dc16 Fixed test code (removed static reference to aes_x86ni code). 2017-12-21 15:38:19 +01:00
Thomas Pornin
4cbe51b0d0 Make Rules.mk more compatible with merges and local diffs. 2017-11-02 13:52:49 +01:00
Thomas Pornin
dddc412922 Added generic EAX and CCM implementations. 2017-10-23 23:27:28 +02:00
Thomas Pornin
8e94ad2fcb Worked around some compiler errors with GCC 4.4 and 4.5. 2017-08-28 19:28:59 +02:00
Thomas Pornin
af9c79a071 Added seeder API. Also overhauled compile-time detection of features. 2017-08-28 16:37:30 +02:00
Thomas Pornin
5b980fb625 Switch C compiler to the generic 'cc' (to use the default compiler, not necessarily GCC -- this is for systems that offer both GCC and Clang, and use Clang as default). 2017-08-28 16:26:33 +02:00
Thomas Pornin
9dc6211237 Extra Makefile hack for compatibility with OpenBSD 'make'. 2017-08-28 16:25:20 +02:00
Thomas Pornin
a52cff8309 Some more extra casts to avoid alignment warnings with Clang and -Wcast-align on 32-bit systems with 64-bit alignment requirements (e.g. ARMv7). 2017-08-20 23:19:51 +02:00
Thomas Pornin
8e86598b33 Added intermediate casts to void* to prevent spurious warnings (with Clang and -Wcast-align). 2017-08-19 15:50:45 +02:00
Thomas Pornin
8cd3f8fecb Some more renaming to avoid shadowing. 2017-08-14 19:55:34 +02:00
Thomas Pornin
79eec9d9e3 Some renaming to avoid spurious warnings on some old GCC versions. 2017-08-14 14:15:13 +02:00
Thomas Pornin
ceb6ded7b9 Fixed documentation (new include file for AEAD). v0.5 2017-07-30 23:26:06 +02:00
Thomas Pornin
93681c2830 Added Twrch support. 2017-07-30 23:11:26 +02:00
Thomas Pornin
ce1c57909a Fixed br_ssl_session_cache_lru_forget(). 2017-07-30 14:11:45 -04:00
Thomas Pornin
0cc2e23690 Added name for new ChaCha20 implementation. 2017-07-26 16:03:32 +02:00
Thomas Pornin
24c6f09bf8 Added ChaCha20 implementation with SSE2 opcodes. 2017-07-26 15:58:01 +02:00
Thomas Pornin
5414fd525e Added function to forget saved session parameters (for tests). 2017-07-26 15:52:38 +02:00
Thomas Pornin
127fb4a31d Added general-purpose API for AEAD algorithms, and GCM implementation. 2017-07-17 17:22:46 +02:00
Thomas Pornin
4aac1cd5c6 Fixed behaviour in case of rejected renegotiation. 2017-07-15 06:14:55 +02:00