boringssl/crypto
David Benjamin 488ca0eace Enable ADX in x86_64-mont*.pl.
This is a reland of https://boringssl-review.googlesource.com/18965
which was reverted due to Windows toolchain problems that have since
been fixed.

We have an SDE bot now and can more easily test things. We also enabled
ADX in rsaz-avx2.pl which does not work without x86_64-mont*.pl enabled.
rsa-avx2.pl's ADX code only turns itself off so that the faster ADX code
can be used... but we disable it.

Verified, after reverting the fix, the test vectors we imported combined
with Intel SDE catches CVE-2016-7055, so we do indeed have test
coverage. Also verified on the Windows version of Intel SDE.

Thanks to Alexey Ivanov for pointing out the discrepancy.

Skylake numbers:

Before:
Did 7296 RSA 2048 signing operations in 10038191us (726.8 ops/sec)
Did 209000 RSA 2048 verify operations in 10030629us (20836.2 ops/sec)
Did 1080 RSA 4096 signing operations in 10072221us (107.2 ops/sec)
Did 60836 RSA 4096 verify operations in 10053929us (6051.0 ops/sec)

ADX consistently off:
Did 9360 RSA 2048 signing operations in 10025823us (933.6 ops/sec)
Did 220000 RSA 2048 verify operations in 10024339us (21946.6 ops/sec)
Did 1048 RSA 4096 signing operations in 10006782us (104.7 ops/sec)
Did 61936 RSA 4096 verify operations in 10088011us (6139.6 ops/sec)

After (ADX consistently on):
Did 10444 RSA 2048 signing operations in 10006781us (1043.7 ops/sec)
Did 323000 RSA 2048 verify operations in 10012192us (32260.7 ops/sec)
Did 1610 RSA 4096 signing operations in 10044930us (160.3 ops/sec)
Did 96000 RSA 4096 verify operations in 10075606us (9528.0 ops/sec)

Change-Id: I2502ce80e9cfcdea40907512682e3a6663000faa
Reviewed-on: https://boringssl-review.googlesource.com/19105
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
2017-08-14 19:16:25 +00:00
..
asn1 Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
base64 Optimize constant-time base64 implementation slightly. 2017-05-17 23:11:47 +00:00
bio Test with IPv6 by default, and IPv4 only if that fails. 2017-05-25 23:49:52 +00:00
bn_extra Move bn/ into crypto/fipsmodule/ 2017-05-01 22:51:25 +00:00
buf Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
bytestring Convert bytestring_test to GTest. 2017-04-17 14:19:47 +00:00
chacha x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. 2017-07-26 22:01:37 +00:00
cipher_extra Clarify the ChaCha20-Poly1305 assembly functions' final parameters. 2017-08-01 22:23:08 +00:00
cmac Convert cmac_test to GTest. 2017-04-24 20:25:22 +00:00
conf Fix out-of-memory condition in conf. 2017-03-21 16:19:22 +00:00
curve25519 Improve Curve25519 cswap x64 assembly 2017-05-23 22:51:48 +00:00
dh Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
digest_extra Convert digest_test to GTest. 2017-05-18 14:50:06 +00:00
dsa Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
ec_extra Remove some unnecessary indirections. 2017-06-21 21:29:38 +00:00
ecdh Convert a number of tests to GTest. 2017-06-01 17:02:13 +00:00
ecdsa_extra Tidy up FIPS module dependencies. 2017-05-05 23:10:24 +00:00
engine Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
err Detect WatchGuard's TLS 1.3 interference failure mode. 2017-06-22 19:49:23 +00:00
evp Unify RSA errors somewhat. 2017-07-06 22:16:17 +00:00
fipsmodule Enable ADX in x86_64-mont*.pl. 2017-08-14 19:16:25 +00:00
hkdf Convert various tests to GTest. 2017-05-23 22:34:09 +00:00
hmac_extra Convert a number of tests to GTest. 2017-06-01 17:02:13 +00:00
lhash Convert various tests to GTest. 2017-05-23 22:34:09 +00:00
obj Add OpenSSL 1.1.0's cipher property functions. 2017-08-11 02:08:58 +00:00
pem OPENSSL_cleanse some buffers. 2017-08-09 00:17:52 +00:00
perlasm Sync ARM assembly up to 609b0852e4d50251857dbbac3141ba042e35a9ae. 2017-06-13 17:47:20 +00:00
pkcs7 Move pkcs{7,8}_test over to gtest 2017-06-02 16:53:41 +00:00
pkcs8 Convert remaining pkcs8 tests to gtest 2017-06-07 17:30:27 +00:00
poly1305 Convert a number of tests to GTest. 2017-06-01 17:02:13 +00:00
pool Convert various tests to GTest. 2017-05-23 22:34:09 +00:00
rand_extra Add dummy |RAND_get_rand_method|. 2017-07-28 21:50:21 +00:00
rc4 Simplify RC4 code and remove assembly. 2016-08-30 15:32:31 +00:00
rsa_extra Don't crash when decrypting with public keys. 2017-06-22 15:20:15 +00:00
stack Convert stack.h to use inline functions. 2017-05-22 15:06:04 +00:00
test Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
x509 More scopers. 2017-08-03 19:35:09 +00:00
x509v3 Use functions that do not depend on the current locale. 2017-07-25 22:53:33 +00:00
CMakeLists.txt Convert the tests in x509v3 to GTest. 2017-07-10 19:05:04 +00:00
compiler_test.cc Test that nullptr has the obvious memory representation. 2017-07-28 17:39:28 +00:00
constant_time_test.cc Switch constant-time functions to using |crypto_word_t|. 2017-04-21 22:06:05 +00:00
cpu-aarch64-linux.c
cpu-arm-linux.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
cpu-arm.c
cpu-intel.c x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. 2017-07-26 22:01:37 +00:00
cpu-ppc64le.c Make the POWER hardware capability value a global in crypto.c. 2017-04-04 18:19:19 +00:00
crypto.c Set static armcaps based on __ARM_FEATURE_CRYPTO. 2017-06-09 00:29:10 +00:00
ex_data.c Remove ex_data's dup hook. 2017-05-23 22:43:59 +00:00
internal.h Remove ex_data's dup hook. 2017-05-23 22:43:59 +00:00
mem.c Use functions that do not depend on the current locale. 2017-07-25 22:53:33 +00:00
refcount_c11.c
refcount_lock.c Split unlock functions into read/write variants. 2016-05-31 21:09:29 +00:00
refcount_test.cc Convert various tests to GTest. 2017-05-23 22:34:09 +00:00
thread_none.c Split unlock functions into read/write variants. 2016-05-31 21:09:29 +00:00
thread_pthread.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
thread_test.cc Convert thread_test to GTest. 2017-06-05 22:30:35 +00:00
thread_win.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
thread.c Remove a bunch of unnecessary includes. 2016-06-28 20:31:14 +00:00