boringssl/crypto/fipsmodule/modes
David Benjamin d22578f366 Adapt gcm_*_neon to aarch64.
This makes AES-GCM always constant-time on aarch64 (provided assembly is
enabled). Unlike vpaes, this does come at a binary size penalty of 1K
compared to the gcm_*_4bit version.

ABI testing already covered by GCMTest.ABI (GHASH_ASM_ARM covers both
OPENSSL_ARM and OPENSSL_AARCH64.)

Cortex-A53 (Raspberry Pi 3 Model B+)
Before:
Did 274000 AES-128-GCM (16 bytes) seal operations in 1003461us (273055.0 ops/sec): 4.4 MB/s
Did 53000 AES-128-GCM (256 bytes) seal operations in 1007689us (52595.6 ops/sec): 13.5 MB/s
Did 12000 AES-128-GCM (1350 bytes) seal operations in 1075908us (11153.4 ops/sec): 15.1 MB/s
Did 2068 AES-128-GCM (8192 bytes) seal operations in 1089037us (1898.9 ops/sec): 15.6 MB/s
After:
Did 298000 AES-128-GCM (16 bytes) seal operations in 1002917us (297133.3 ops/sec): 4.8 MB/s
Did 64000 AES-128-GCM (256 bytes) seal operations in 1001124us (63928.1 ops/sec): 16.4 MB/s
Did 14000 AES-128-GCM (1350 bytes) seal operations in 1015477us (13786.6 ops/sec): 18.6 MB/s
Did 2497 AES-128-GCM (8192 bytes) seal operations in 1057951us (2360.2 ops/sec): 19.3 MB/s

Bug: 265
Change-Id: I251bf0f2eae0578580bb14192755e5d8ff64cd14
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/35285
Reviewed-by: Adam Langley <agl@google.com>
2019-03-14 21:43:27 +00:00
..
asm Adapt gcm_*_neon to aarch64. 2019-03-14 21:43:27 +00:00
cbc.c Remove STRICT_ALIGNMENT code from modes. 2019-02-14 17:39:36 +00:00
ccm.c Fix undefined block128_f, etc., casts. 2018-10-01 17:35:02 +00:00
cfb.c Remove STRICT_ALIGNMENT code from modes. 2019-02-14 17:39:36 +00:00
ctr.c Remove STRICT_ALIGNMENT code from modes. 2019-02-14 17:39:36 +00:00
gcm_test.cc Add a 32-bit SSSE3 GHASH implementation. 2019-03-04 19:02:52 +00:00
gcm_tests.txt Convert a number of tests to GTest. 2017-06-01 17:02:13 +00:00
gcm.c Add a 32-bit SSSE3 GHASH implementation. 2019-03-04 19:02:52 +00:00
internal.h Adapt gcm_*_neon to aarch64. 2019-03-14 21:43:27 +00:00
ofb.c Modernize OPENSSL_COMPILE_ASSERT, part 2. 2018-11-14 16:06:37 +00:00
polyval.c Run the comment converter on libcrypto. 2017-08-18 21:49:04 +00:00