46 Commits

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