Commit graph

49 commits

Author SHA1 Message Date
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
21743ae69e Improved performance on dedicated P-256/i15 EC implementation. 2017-01-12 21:53:31 +01:00
Thomas Pornin
8f1043315f Simple grammar fix in header. 2017-01-12 21:52:59 +01:00
Thomas Pornin
52b3f2820f Fixed wrong check on length overflow (unsigned/signed issue). 2017-01-09 16:48:52 +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
8bb8d74d4a Fixed scheduling error (jumping back to failed engine, could lead to segfault). 2016-12-24 03:20:03 +01:00
Thomas Pornin
4981173660 Added speed benchmark for Poly1305. 2016-12-24 03:19:29 +01:00
Thomas Pornin
32c995f23d Fixed definition of function (wrong name). 2016-12-22 17:01:02 +01:00
Thomas Pornin
72d33930b2 Fixed description of TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 in the command-line tool. 2016-12-15 01:10:52 +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
fb7052216d Optimised T0 generated code: when possible (at most 256 words), word calls are encoded over one byte, even in the 128..255 range. 2016-12-12 19:58:49 +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
93185df1e7 Fixed buffer overrun (read only, usually harmless, but sloppy nonetheless). 2016-11-29 16:03:49 +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
e8ccee8bcd Fixed buffer overflow, and also NULL pointer dereference, in ECDSA signature handling. 2016-11-21 20:11:21 +01:00
Thomas Pornin
ccd43452e6 More API documentation in Doxygen format (block ciphers, PEM). 2016-11-21 16:29:51 +01:00
Thomas Pornin
292f433578 Fixed handling of CR+LF line endings in PEM objects. 2016-11-21 16:04:26 +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
3b044d4296 SIGPIPE shall be ignored in most network-related cases. 2016-11-20 16:23:00 +01:00
Thomas Pornin
7561e7d6c8 Added support for TLS_FALLBACK_SCSV. 2016-11-20 16:14:48 +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
Thomas Pornin
60126cafc8 Added support for ClientHello padding (RFC 7685) and fixed buffering bug. 2016-11-18 18:03:06 +01:00
Thomas Pornin
e8929ff27f Added some comments. 2016-11-17 03:20:52 +01:00
Thomas Pornin
91d47bdd70 Added Doxygen configuration file, and converted bearssl_hash.h file to Doxygen format. 2016-11-17 02:59:53 +01:00
Thomas Pornin
f3ac21cb00 Moved address-to-string translation code to blocks that depend on the 'verbose' flag. 2016-11-12 16:49:27 +01:00
Thomas Pornin
133705ee65 Fixed error reporting in case of PEM encoding error when decoding certificates. 2016-11-12 15:58:57 +01:00
Thomas Pornin
16d0864818 Better handling of inet_ntop() failures (which should not happen in practice, since we filter on address family, but let's be cautious). 2016-11-12 15:30:47 +01:00
Thomas Pornin
0d974e1c9c Improved parsing of some integer arguments (sizes). 2016-11-12 15:23:43 +01:00
Thomas Pornin
9dc3c9b61d Fixed displaying of IPv6 addresses. 2016-11-12 14:43:05 +01:00
Thomas Pornin
f56b0baab3 Removed unreachable code. 2016-11-12 14:40:03 +01:00
Thomas Pornin
6b4cd86094 No need to check for NULL, free_private_key() already does that. 2016-11-09 21:00:11 +01:00
Thomas Pornin
49a0bdc0a9 Removed needless variable shadowing (suggested by Doug Hogan). 2016-11-09 19:58:17 +01:00
Thomas Pornin
efea83e701 Added .gitignore file (suggested by Doug Hogan). 2016-11-09 19:33:59 +01:00
Thomas Pornin
bab0f8639c Fixed some small bugs. 2016-11-04 21:29:18 -04:00
Thomas Pornin
3210f38e04 Initial import. 2016-11-02 19:01:13 -04:00