Commit graph

53 commits

Author SHA1 Message Date
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
Thomas Pornin
05ac106834 Added ALPN support (client and server). 2016-12-28 14:11:51 +01:00
Thomas Pornin
b42bd5972f Added ChaCha20+Poly1305 support (stand-alone, cipher suites). 2016-12-13 20:01:19 +01:00
Thomas Pornin
9e71c0673a Added certificate name extraction API (from subject DN and SAN extension). 2016-12-12 20:45:06 +01:00
Thomas Pornin
e61ad42191 Added support for client certificates (both client-side and server-side, but still missing an API for extracting the client identity from the certificate). 2016-12-10 17:35:06 +01:00
Thomas Pornin
e9ce2f4e8c Small documentation fixes. 2016-11-30 02:25:14 +01:00
Thomas Pornin
298ce6530e More Doxygen-compatible documentation (SSL API). 2016-11-23 16:59:44 +01:00
Thomas Pornin
2e2b17186b Some more Doxygen API documentation (X.509 processing). 2016-11-22 02:41:34 +01:00
Thomas Pornin
90aca31db0 More API documentation (Doxygen format) for EC code. 2016-11-21 20:12:11 +01:00
Thomas Pornin
ccd43452e6 More API documentation in Doxygen format (block ciphers, PEM). 2016-11-21 16:29:51 +01:00
Thomas Pornin
ab68048011 Added API to save and restore session parameters (for controllable session resumption on the client side). 2016-11-20 20:14:48 +01:00
Thomas Pornin
d16eee962a Added flag to prohibit renegotiations. 2016-11-20 18:50:37 +01:00
Thomas Pornin
6cc90dad21 More Doxygen documentation. 2016-11-19 23:55:44 +01:00
Thomas Pornin
e683ebfe19 More Doxygen-compatible documentation. Also unified two identical structures. 2016-11-19 19:05:08 +01:00