Commit graph

124 commits

Author SHA1 Message Date
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. 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). 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
Thomas Pornin
57b2175020 Fixed selection of ECDHE_RSA suites for pre-1.2 TLS versions. 2017-07-07 00:49:58 +02:00
Thomas Pornin
ea95d8264c Added implementation of keying material export (RFC 5705) (API for PRF implementations changed, to handle chunked seeds). 2017-07-04 20:43:39 +02:00
Thomas Pornin
2b738493bd Fixed modular reduction bug in the special field for P-256 (in some rare cases, value would end up being negative, which would corrupt subsequent operations). 2017-06-24 00:31:09 +02:00
Thomas Pornin
d8641065c9 Fixed mishandling of tree structure in the cache for session parameters. 2017-06-24 00:29:41 +02:00
Thomas Pornin
3c6823cad7 Added an explicit initialisation to a stack buffer to prevent an (harmless) uninitialised read reported by valgrind. 2017-06-22 23:15:17 +02:00
Thomas Pornin
eaa0d38fa8 Fixed IV processing for CBC decryption with AES (x86ni implementation) when data length is not multiple of 64 bytes (the bug was breaking TLS 1.0 AES/CBC on recent x86 systems). 2017-06-22 21:13:15 +02:00
Thomas Pornin
7f343eedfc Added encoded OID for hash functions (for use with PKCS#1 v1.5 signatures) into the public API. 2017-06-21 15:19:32 +02:00
Thomas Pornin
81437e1175 Fixed proper handling of clients with no "secure renegotiation" support. 2017-06-18 23:53:17 +02:00