boringssl/crypto
Brian Smith a26d4c3f43 Enable stitched x86-64 AES-NI AES-GCM implementation.
Measured on a SkyLake processor:

Before:

Did 11373750 AES-128-GCM (16 bytes) seal operations in 1016000us (11194635.8 ops/sec): 179.1 MB/s
Did 2253000 AES-128-GCM (1350 bytes) seal operations in 1016000us (2217519.7 ops/sec): 2993.7 MB/s
Did 453750 AES-128-GCM (8192 bytes) seal operations in 1015000us (447044.3 ops/sec): 3662.2 MB/s
Did 10753500 AES-256-GCM (16 bytes) seal operations in 1016000us (10584153.5 ops/sec): 169.3 MB/s
Did 1898750 AES-256-GCM (1350 bytes) seal operations in 1015000us (1870689.7 ops/sec): 2525.4 MB/s
Did 374000 AES-256-GCM (8192 bytes) seal operations in 1016000us (368110.2 ops/sec): 3015.6 MB/s

After:

Did 11074000 AES-128-GCM (16 bytes) seal operations in 1015000us (10910344.8 ops/sec): 174.6 MB/s
Did 3178250 AES-128-GCM (1350 bytes) seal operations in 1016000us (3128198.8 ops/sec): 4223.1 MB/s
Did 734500 AES-128-GCM (8192 bytes) seal operations in 1016000us (722933.1 ops/sec): 5922.3 MB/s
Did 10394750 AES-256-GCM (16 bytes) seal operations in 1015000us (10241133.0 ops/sec): 163.9 MB/s
Did 2502250 AES-256-GCM (1350 bytes) seal operations in 1016000us (2462844.5 ops/sec): 3324.8 MB/s
Did 544500 AES-256-GCM (8192 bytes) seal operations in 1015000us (536453.2 ops/sec): 4394.6 MB/s

Change-Id: If058935796441ed4e577b9a72d3aa43422edba58
Reviewed-on: https://boringssl-review.googlesource.com/7273
Reviewed-by: Adam Langley <alangley@gmail.com>
2017-01-16 16:54:13 +00:00
..
aes Test invalid inputs for AES_unwrap_key. 2017-01-04 04:37:46 +00:00
asn1 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
base64 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
bio Don't chain to next_bio for buffer BIO BIO_[w]pending. 2016-12-21 23:08:22 +00:00
bn Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
buf Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
bytestring Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
chacha Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
cipher Fix AES-GCM-SIV on large inputs. 2017-01-04 01:45:31 +00:00
cmac Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
conf Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
curve25519 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
des Fix up macros. 2016-10-18 18:28:23 +00:00
dh Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
digest Decouple EVP_get_digestbyobj from the giant OID table. 2017-01-10 23:45:00 +00:00
dsa Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
ec Remove specialized assembly language |ecp_nistz256_from_mont|. 2017-01-13 17:27:13 +00:00
ecdh Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
ecdsa Don't use BN_mod_inverse for inverses mod p in RSA keygen. 2017-01-04 13:56:11 +00:00
engine Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
err Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
evp Import RSA decryption tests from upstream. 2017-01-04 01:47:53 +00:00
hkdf Convert hkdf_test to C++. 2017-01-04 01:40:44 +00:00
hmac Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
lhash Remove lh_new's default hash and comparator. 2017-01-04 01:44:10 +00:00
md4 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
md5 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
modes Enable stitched x86-64 AES-NI AES-GCM implementation. 2017-01-16 16:54:13 +00:00
obj Reimplement objects.pl in Go. 2016-12-21 22:14:13 +00:00
pem Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
perlasm perlasm/x86_64-xlate.pl: refine sign extension in ea package. 2016-12-14 17:36:29 +00:00
pkcs8 Parse PKCS#12 files more accurately. 2017-01-12 16:56:05 +00:00
poly1305 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
pool Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
rand Fix crypto/rand/urandom header guards for Fuchsia. 2017-01-14 01:03:01 +00:00
rc4 Simplify RC4 code and remove assembly. 2016-08-30 15:32:31 +00:00
rsa Remove BN_FLG_CONSTTIME. 2017-01-12 02:00:44 +00:00
sha Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
stack Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
test Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
x509 ASN1_UTCTIME_print: fix, comment, test. 2017-01-10 23:32:12 +00:00
x509v3 Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
CMakeLists.txt Convert constant_time_test and refcount_test to C++. 2017-01-04 01:36:49 +00:00
constant_time_test.cc Convert constant_time_test and refcount_test to C++. 2017-01-04 01:36:49 +00:00
cpu-aarch64-linux.c Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
cpu-arm-linux.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
cpu-arm.c Rewrite ARM feature detection. 2016-03-26 04:54:44 +00:00
cpu-intel.c Wrap MSVC-only warning pragmas in a macro. 2016-06-09 21:29:36 +00:00
cpu-ppc64le.c Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
crypto.c Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
ex_data.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
internal.h Fix comment on OPENSSL_memcmp, etc. 2016-12-21 21:47:24 +00:00
mem.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
refcount_c11.c Cast refcounts to _Atomic before use. 2015-05-20 13:39:22 -07:00
refcount_lock.c Split unlock functions into read/write variants. 2016-05-31 21:09:29 +00:00
refcount_test.cc Convert constant_time_test and refcount_test to C++. 2017-01-04 01:36:49 +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.c Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +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
time_support.c Remove some mingw support cruft. 2016-01-25 23:05:45 +00:00