Commit graph

16 commits

Author SHA1 Message Date
Thomas Pornin
eaa0d38fa8 Fixed IV processing for CBC decryption with AES (x86ni implementation) when data length is not multiple of 64 bytes (the bug was breaking TLS 1.0 AES/CBC on recent x86 systems). 2017-06-22 21:13:15 +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
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
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
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
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