boringssl/crypto/fipsmodule/ec
David Benjamin 99767ecdd4 Enable ADX assembly.
Build (and carry) issues are now resolved (as far as we know). Let's try
this again...

Measurements on a Skylake VM (so a little noisy).

Before:
Did 3135 RSA 2048 signing operations in 3015866us (1039.5 ops/sec)
Did 89000 RSA 2048 verify (same key) operations in 3007271us (29594.9 ops/sec)
Did 66000 RSA 2048 verify (fresh key) operations in 3014363us (21895.2 ops/sec)
Did 324 RSA 4096 signing operations in 3004364us (107.8 ops/sec)
Did 23126 RSA 4096 verify (same key) operations in 3003398us (7699.9 ops/sec)
Did 21312 RSA 4096 verify (fresh key) operations in 3017043us (7063.9 ops/sec)
Did 31040 ECDH P-256 operations in 3024273us (10263.6 ops/sec)
Did 91000 ECDSA P-256 signing operations in 3019740us (30135.0 ops/sec)
Did 25678 ECDSA P-256 verify operations in 3046975us (8427.4 ops/sec)

After:
Did 3640 RSA 2048 signing operations in 3035845us (1199.0 ops/sec)
Did 129000 RSA 2048 verify (same key) operations in 3003691us (42947.2 ops/sec)
Did 105000 RSA 2048 verify (fresh key) operations in 3029935us (34654.2 ops/sec)
Did 510 RSA 4096 signing operations in 3014096us (169.2 ops/sec)
Did 38000 RSA 4096 verify (same key) operations in 3092814us (12286.5 ops/sec)
Did 34221 RSA 4096 verify (fresh key) operations in 3003817us (11392.5 ops/sec)
Did 38000 ECDH P-256 operations in 3061758us (12411.2 ops/sec)
Did 116000 ECDSA P-256 signing operations in 3001637us (38645.6 ops/sec)
Did 35100 ECDSA P-256 verify operations in 3023872us (11607.6 ops/sec)

Tested with Intel SDE.

Change-Id: Ib27c0d6012d14274e331ab03f958e5a0c8b7e885
Reviewed-on: https://boringssl-review.googlesource.com/28104
Reviewed-by: Adam Langley <agl@google.com>
2018-05-11 21:57:13 +00:00
..
asm Enable ADX assembly. 2018-05-11 21:57:13 +00:00
ec_key.c Store EC_KEY's private key as an EC_SCALAR. 2018-03-07 21:17:31 +00:00
ec_montgomery.c Implement constant-time generic multiplication. 2018-04-27 20:11:29 +00:00
ec_scalar_base_mult_tests.txt Add some EC base point multiplication test vectors. 2018-03-27 23:33:24 +00:00
ec_test.cc Add test coverage for the a != -3 case. 2018-04-02 18:25:08 +00:00
ec.c Add some OpenSSL compatibility functions and hacks. 2018-05-08 01:22:04 +00:00
felem.c Add missing #include of <openssl/err.h>. 2018-05-01 01:00:44 +00:00
internal.h Implement constant-time generic multiplication. 2018-04-27 20:11:29 +00:00
make_ec_scalar_base_mult_tests.go Add some EC base point multiplication test vectors. 2018-03-27 23:33:24 +00:00
make_p256-x86_64-table.go Add utility program for emitting P-256 x86-64 table. 2018-03-26 16:28:42 +00:00
oct.c Name constant-time functions more consistently. 2018-03-29 23:30:55 +00:00
p224-64.c Clear mallocs in ec_wNAF_mul. 2018-04-27 19:44:58 +00:00
p256-x86_64_test.cc Add some tests for scalar operations. 2018-04-24 16:12:34 +00:00
p256-x86_64_tests.txt Add some tests for scalar operations. 2018-04-24 16:12:34 +00:00
p256-x86_64-table.h Add utility program for emitting P-256 x86-64 table. 2018-03-26 16:28:42 +00:00
p256-x86_64.c Clear mallocs in ec_wNAF_mul. 2018-04-27 19:44:58 +00:00
p256-x86_64.h Add some tests for scalar operations. 2018-04-24 16:12:34 +00:00
scalar.c Add missing #include of <openssl/mem.h>. 2018-05-04 16:51:04 +00:00
simple_mul.c Implement constant-time generic multiplication. 2018-04-27 20:11:29 +00:00
simple.c Implement constant-time generic multiplication. 2018-04-27 20:11:29 +00:00
util.c ec/p256.c: fiat-crypto field arithmetic (64, 32) 2017-12-11 17:55:46 +00:00
wnaf.c Implement constant-time generic multiplication. 2018-04-27 20:11:29 +00:00