Commit Graph

129 Commits

Author SHA1 Message Date
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. 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