Commit Graph

66 Commits

Author SHA1 Message Date
Thomas Pornin 46f7dddce7 Added macro that indicates presence of the time callback feature. Also added C++ compatibility. 2022-06-08 08:15:39 -04:00
Thomas Pornin d40d23b60c Added generic API for date range validation (with callbacks). 2022-04-17 15:02:36 -04:00
Thomas Pornin 69807a34fc Fixed typo in comment. 2019-11-15 14:58:13 +01:00
Thomas Pornin fb4296c593 Fixed some errors in comments. 2019-09-04 15:07:42 +02:00
Thomas Pornin 2893441f2e Fixed a spurious warning on some compilers. 2019-05-29 13:42:20 +02:00
Thomas Pornin ecdf89770e Normalize use of BR_DOXYGEN_IGNORE. 2019-03-23 17:38:05 -04:00
Thomas Pornin f0ddbc32f0 Added new 64-bit implementations of Curve25519 and P-256. 2018-12-18 23:56:16 +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 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 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 e37c90ac68 Added support for CCM and CCM_8 cipher suites. 2018-07-28 22:31:50 +02:00
Thomas Pornin 05520e8eae Fixed some typographic errors in comments. 2018-05-27 23:37:15 +02:00
Thomas Pornin d592e99932 Added RSA/OAEP implementation. 2018-05-23 23:16:31 +02:00
Thomas Pornin 12db697bcc Added API to share precomputations in EAX. 2018-02-08 15:50:10 +01:00
Thomas Pornin dddc412922 Added generic EAX and CCM implementations. 2017-10-23 23:27:28 +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 ceb6ded7b9 Fixed documentation (new include file for AEAD). 2017-07-30 23:26:06 +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 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 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 968da0f646 Fixed handling of incoming application data after sending a close_notify (data shall be discarded silently, not trigger an error). Also fixed a couple of bugs in the command-line test tool. 2017-06-15 16:57:37 +02:00
Thomas Pornin 042986b989 Made headers compatible with C++. 2017-04-06 01:03:54 +02:00
Thomas Pornin ee15f235c9 Documentation fixes. 2017-04-03 21:38:47 +02:00
Thomas Pornin 8b2fe3add6 New "i62" code for big integers with 64x64->128 opcodes; also improved "i31" modular exponentiation. 2017-03-19 14:55:11 -04:00
Thomas Pornin 5db2d48b12 Added "ctmulq" implementation of Poly1305 (using 64->128 multiplications when available). 2017-03-18 16:46:00 +01:00
Thomas Pornin db8f1b6645 New AES and GHASH implementations using POWER8 crypto opcodes. 2017-02-15 14:08:37 +00:00
Thomas Pornin 5f045c7599 Added AES+GHASH implementation using AES-NI opcodes; also ARM-Thumb assembly for faster Montgomery multiplication on Cortex-M0+. Added selection functions for "default" implementations. 2017-01-29 21:46:33 +01:00
Thomas Pornin 3f00688b9d New Makefile structure; added compatibility with Windows + Visual C + nmake. 2017-01-22 20:00:29 +01:00
Thomas Pornin bd3036844b Added optimised implementation of P-256 that uses 32->64 multiplications (MUL31). 2017-01-16 18:04:40 +01:00
Thomas Pornin 89ea3b1876 Two new Curve25519 implementations (generic "i31" code, and optimised code with MUL31). 2017-01-15 23:16:18 +01:00
Thomas Pornin 3655193439 Activated Curve25519 support for ECDHE cipher suites. 2017-01-15 20:40:24 +01:00
Thomas Pornin 693d2a0085 New implementation of Curve25519 (using multiplications of words of 15 bits or so, should be much faster on Cortex M0). 2017-01-15 16:49:58 +01:00
Thomas Pornin 2f9c953af4 New basic implementation of Curve25519 (generic i15 code, experimental). 2017-01-15 03:32:13 +01:00
Thomas Pornin ef318ef83a Added API for external hashing of ServerKeyExchange, and signature algorithm identifiers in the 0x080* format (preparatory steps for EdDSA support). 2017-01-13 21:46:28 +01:00
Thomas Pornin 44c79c1add More optimisations for EC P-256 "i15" (specialised squaring function, mixed coordinates addition with a 4-bit window when the base point is the conventional generator). 2017-01-13 05:10:43 +01:00
Thomas Pornin 8f1043315f Simple grammar fix in header. 2017-01-12 21:52:59 +01:00
Thomas Pornin 7fc1ef315f Two new Poly1305 implementations: ctmul32 uses pure 32-bit multiplications (MUL15, constant-time on about everything); i15 uses the generic i15 big integers (MUL15 again), which is quite slow but also small. 2017-01-05 19:47:00 +01:00
Thomas Pornin 28e4e120b8 New "i15" implementation of big integers (faster, and constant-time, on ARM Cortex M0/M0+); imported into EC, ECDSA, RSA. 2017-01-04 19:21:09 +01:00
Thomas Pornin 6dd8c51ba7 New experimental EC implementation (P-256, only 32-bit multiplications, meant for Cortex-M0/M0+). 2017-01-02 22:19:49 +01:00
Thomas Pornin bf809dfae5 Fixed RSA "i32" PKCS#1 v1.5 signature generation. 2016-12-31 16:19:12 +01:00
Thomas Pornin f9b85fee90 New simplified initialisation function for X.509 minimal engine. 2016-12-29 23:11:46 +01:00