boringssl/crypto/fipsmodule
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
..
aes x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. 2017-07-26 22:01:37 +00:00
bn Enable ADX in x86_64-mont*.pl. 2017-08-14 19:16:25 +00:00
cipher Make the bssl::SealRecord out_suffix arg fixed length. 2017-07-28 21:42:25 +00:00
des Move des/ to crypto/fipsmodule/ 2017-05-02 19:21:02 +00:00
digest Be less clever about .rel.ro avoidance. 2017-04-07 15:20:26 +00:00
ec Align the tables in P-256 select w[57] tests. 2017-08-09 01:04:57 +00:00
ecdsa Don't draw entropy during FIPS power-on tests. 2017-06-13 20:27:48 +00:00
hmac
md4
md5 Remove filename argument to x86 asm_init. 2017-05-12 14:58:27 +00:00
modes x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. 2017-07-26 22:01:37 +00:00
policydocs Update FIPS documentation with pointer to the cert and security policy. 2017-07-20 03:32:08 +00:00
rand Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
rsa Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
sha x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. 2017-07-26 22:01:37 +00:00
bcm.c Don't draw entropy during FIPS power-on tests. 2017-06-13 20:27:48 +00:00
CMakeLists.txt Convert example_mul to GTest. 2017-07-10 19:28:29 +00:00
delocate.h Switch to new delocate tool. 2017-05-30 18:00:16 +00:00
FIPS.md Update FIPS documentation with pointer to the cert and security policy. 2017-07-20 03:32:08 +00:00
intcheck1.png
intcheck2.png Inject FIPS hash without running module. 2017-04-12 23:09:38 +00:00
intcheck3.png
is_fips.c Move OPENSSL_ASAN to base.h. 2017-05-16 20:16:52 +00:00