Commit graph

29 commits

Author SHA1 Message Date
Thomas Pornin
b2ec2030e4 Fixed carry propagation bug in m64 impl for P-256. 2020-11-18 09:53:11 -05:00
Thomas Pornin
dda1f8a0c4 Harmonized behaviour when point length is invalid. 2020-04-24 15:18:58 +02:00
Thomas Pornin
252dba9149 Fixed carry propagation bug in P-256 'm62' implementation (found by Auke Zeilstra; consequences unclear, possibly some invalid curve attacks in static ECDH contexts). 2019-12-14 16:53:30 +01:00
Thomas Pornin
fb4296c593 Fixed some errors in comments. 2019-09-04 15:07:42 +02:00
Thomas Pornin
001d094d14 Some small performance improvements on 32-bit architectures. 2019-01-03 19:50:54 +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
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
05520e8eae Fixed some typographic errors in comments. 2018-05-27 23:37:15 +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
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
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
a7e6409c37 Slight speed improvement for Curve25519 (m15 implementation on Cortex-M0+). 2017-01-23 19:54:16 +01:00
Thomas Pornin
2f454aad57 Some cleanups (removed unused files, split i15 code into per-function files). 2017-01-16 20:19:11 +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
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
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
e8ccee8bcd Fixed buffer overflow, and also NULL pointer dereference, in ECDSA signature handling. 2016-11-21 20:11:21 +01:00
Thomas Pornin
3210f38e04 Initial import. 2016-11-02 19:01:13 -04:00