Commit graph

30 commits

Author SHA1 Message Date
Thomas Pornin
001d094d14 Some small performance improvements on 32-bit architectures. 2019-01-03 19:50:54 +01:00
Thomas Pornin
c6ffcd2938 Fixed warning on GCC 4.6 to 4.9 (macro redefinition). 2018-09-12 17:42:08 +02:00
Thomas Pornin
420f50c213 Added stand-alone RSA/PSS implementation. 2018-08-17 22:47:03 +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
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
8e94ad2fcb Worked around some compiler errors with GCC 4.4 and 4.5. 2017-08-28 19:28:59 +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
24c6f09bf8 Added ChaCha20 implementation with SSE2 opcodes. 2017-07-26 15:58:01 +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
d021b7eb7f Workaround for compiler bug (GCC 4.8 and 4.9 when targetting 32-bit x86). 2017-04-17 13:36:06 +00:00
Thomas Pornin
5281cd0f58 Fixed typo in C preprocessor expression. 2017-03-19 20:08:29 +01: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
90bc9406c3 Optimised code for encoding/decoding integers when the underlying architecture has the right endianness and allows unaligned accesses. 2017-03-18 18:07:36 +01: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
2f88a67304 Fixed compilation for GCC 4.4 to 4.8 (AES-NI opcodes; intrinsics headers require target options to be set). 2017-03-09 20:13:23 +00: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
556e525d62 Improved modular exponentiation (automatic window optimisation if there is enough room). 2017-01-24 19:35:04 +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
2f454aad57 Some cleanups (removed unused files, split i15 code into per-function files). 2017-01-16 20:19:11 +01:00
Thomas Pornin
2f9c953af4 New basic implementation of Curve25519 (generic i15 code, experimental). 2017-01-15 03:32:13 +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
b42bd5972f Added ChaCha20+Poly1305 support (stand-alone, cipher suites). 2016-12-13 20:01:19 +01:00
Thomas Pornin
3210f38e04 Initial import. 2016-11-02 19:01:13 -04:00