openssl/crypto
Nicola Tuveri f45846f500 EC2M Lopez-Dahab ladder implementation
This commit uses the new ladder scaffold to implement a specialized
ladder step based on differential addition-and-doubling in mixed
Lopez-Dahab projective coordinates, modified to independently blind the
operands.

The arithmetic in `ladder_pre`, `ladder_step` and `ladder_post` is
auto generated with tooling:
- see, e.g., "Guide to ECC" Alg 3.40 for reference about the
  `ladder_pre` implementation;
- see https://www.hyperelliptic.org/EFD/g12o/auto-code/shortw/xz/ladder/mladd-2003-s.op3
  for the differential addition-and-doubling formulas implemented in
  `ladder_step`;
- see, e.g., "Fast Multiplication on Elliptic Curves over GF(2**m)
  without Precomputation" (Lopez and Dahab, CHES 1999) Appendix Alg Mxy
  for the `ladder_post` implementation to recover the `(x,y)` result in
  affine coordinates.

Co-authored-by: Billy Brumley <bbrumley@gmail.com>
Co-authored-by: Sohaib ul Hassan <soh.19.hassan@gmail.com>

Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6690)
2018-07-16 10:17:40 +01:00
..
aes PA-RISC assembly pack: make it work with GNU assembler for HP-UX. 2018-06-25 16:45:48 +02:00
aria
asn1 Update copyright year 2018-06-20 15:29:23 +01:00
async Update copyright year 2018-05-01 13:34:30 +01:00
bf
bio Fix a new gcc-9 warning [-Wstringop-truncation] 2018-06-24 18:01:12 +02:00
blake2
bn bn/bn_lcl.h,bn_nist.c: addres strict warnings with -DBN_DEBUG. 2018-07-14 13:44:24 +02:00
buffer
camellia Remove some inline assembler and non-standard constructs. 2018-06-21 14:01:03 +02:00
cast
chacha chacha/asm/chacha-x86_64.pl: add dedicated path for 128-byte inputs. 2018-07-03 19:02:02 +02:00
cmac
cms Remove __cplusplus preamble from internal headers 2018-06-22 12:24:59 +02:00
comp Fix last(?) batch of malloc-NULL places 2018-04-26 14:02:24 -04:00
conf NCONF_get_number refix. 2018-07-11 09:03:22 +10:00
ct Add -Wstrict-prototypes option to --strict-warnings 2018-06-21 19:04:19 +02:00
des
dh Update copyright year 2018-06-20 15:29:23 +01:00
dsa Use DEPRECATEDIN_1_2_0 macro for DSA_sign_setup declaration 2018-06-21 11:01:32 +01:00
dso
ec EC2M Lopez-Dahab ladder implementation 2018-07-16 10:17:40 +01:00
engine Correctly check for cryptodev hash support 2018-07-09 12:45:28 -04:00
err EC2M Lopez-Dahab ladder implementation 2018-07-16 10:17:40 +01:00
evp Fix undefined behavior in s390x aes-gcm/ccm 2018-07-12 13:36:08 -04:00
hmac Remove __cplusplus preamble from internal headers 2018-06-22 12:24:59 +02:00
idea
include/internal Remove stale SM2 error codes 2018-07-16 10:17:40 +01:00
kdf
lhash Update copyright year 2018-05-01 13:34:30 +01:00
md2
md4
md5
mdc2
modes modes/ocb128.c: readability and formatting improvements. 2018-07-09 12:37:09 +02:00
objects New GOST identificators 2018-06-08 12:06:40 -04:00
ocsp
pem Zero-fill IV by default. 2018-06-28 18:13:54 -04:00
perlasm perlasm/x86_64-xlate.pl: refine symbol recognition in .xdata. 2018-07-03 19:01:20 +02:00
pkcs7
pkcs12 Update copyright year 2018-06-20 15:29:23 +01:00
poly1305 poly1305/asm/poly1305-x86_64.pl: fix solaris64-x86_64-cc build. 2018-07-10 12:01:56 +02:00
rand rand/rand_unix.c: address macro redifinition warning. 2018-07-01 12:05:54 +02:00
rc2
rc4 PA-RISC assembly pack: make it work with GNU assembler for HP-UX. 2018-06-25 16:45:48 +02:00
rc5
ripemd
rsa rsa/*: switch to BN_bn2binpad. 2018-07-14 13:38:21 +02:00
seed Remove __cplusplus preamble from internal headers 2018-06-22 12:24:59 +02:00
sha Remove development artifacts. 2018-07-02 07:21:26 +10:00
siphash Add support getting raw private/public keys 2018-06-08 10:04:09 +01:00
sm2 Remove a memset 2018-07-07 14:00:19 +01:00
sm3
sm4
srp Make ck_errf.pl ignore commented out error generation 2018-06-12 12:31:45 +02:00
stack Fix last(?) batch of malloc-NULL places 2018-04-26 14:02:24 -04:00
store store/loader_file.c: fix char-subscripts warning. 2018-06-25 16:47:36 +02:00
ts Use void in all function definitions that do not take any arguments 2018-05-11 14:37:48 +02:00
txt_db
ui Update copyright year 2018-05-29 13:16:04 +01:00
whrlpool
x509 Update copyright year 2018-06-20 15:29:23 +01:00
x509v3 Remove __cplusplus preamble from internal headers 2018-06-22 12:24:59 +02:00
alphacpuid.pl
arm64cpuid.pl {arm64|x86_64}cpuid.pl: add special 16-byte case to OPENSSL_memcmp. 2018-06-03 21:15:18 +02:00
arm_arch.h
armcap.c
armv4cpuid.pl Update copyright year 2018-05-01 13:34:30 +01:00
build.info
c64xpluscpuid.pl
cpt_err.c Fix last(?) batch of malloc-NULL places 2018-04-26 14:02:24 -04:00
cryptlib.c
ctype.c
cversion.c
dllmain.c
ebcdic.c
ex_data.c
ia64cpuid.S
init.c Fix memleaks in async api 2018-04-26 18:39:51 +02:00
LPdir_nyi.c
LPdir_unix.c
LPdir_vms.c
LPdir_win32.c
LPdir_win.c
LPdir_wince.c
mem_clr.c
mem_dbg.c
mem_sec.c Use void in all function definitions that do not take any arguments 2018-05-11 14:37:48 +02:00
mem.c
mips_arch.h
o_dir.c
o_fips.c
o_fopen.c
o_init.c
o_str.c
o_time.c
pariscid.pl PA-RISC assembly pack: make it work with GNU assembler for HP-UX. 2018-06-25 16:45:48 +02:00
ppc_arch.h
ppccap.c crypto/ppccap.c: wire new ChaCha20_ctr32_vsx. 2018-06-06 22:14:15 +02:00
ppccpuid.pl
s390x_arch.h
s390xcap.c
s390xcpuid.pl
sparc_arch.h
sparccpuid.S
sparcv9cap.c
threads_none.c
threads_pthread.c
threads_win.c Save and restore the Windows error around TlsGetValue. 2018-05-23 17:34:54 -04:00
uid.c
vms_rms.h
x86_64cpuid.pl {arm64|x86_64}cpuid.pl: add special 16-byte case to OPENSSL_memcmp. 2018-06-03 21:15:18 +02:00
x86cpuid.pl