boringssl/crypto/cipher
Adam Langley 4467e59bc8 Add PPC64LE assembly for AES-GCM.
This change adds AES and GHASH assembly from upstream, with the aim of
speeding up AES-GCM.

The PPC64LE assembly matches the interface of the ARMv8 assembly so I've
changed the prefix of both sets of asm functions to be the same
("aes_hw_").

Otherwise, the new assmebly files and Perlasm match exactly those from
upstream's c536b6be1a (from their master branch).

Before:
Did 1879000 AES-128-GCM (16 bytes) seal operations in 1000428us (1878196.1 ops/sec): 30.1 MB/s
Did 61000 AES-128-GCM (1350 bytes) seal operations in 1006660us (60596.4 ops/sec): 81.8 MB/s
Did 11000 AES-128-GCM (8192 bytes) seal operations in 1072649us (10255.0 ops/sec): 84.0 MB/s
Did 1665000 AES-256-GCM (16 bytes) seal operations in 1000591us (1664016.6 ops/sec): 26.6 MB/s
Did 52000 AES-256-GCM (1350 bytes) seal operations in 1006971us (51640.0 ops/sec): 69.7 MB/s
Did 8840 AES-256-GCM (8192 bytes) seal operations in 1013294us (8724.0 ops/sec): 71.5 MB/s

After:
Did 4994000 AES-128-GCM (16 bytes) seal operations in 1000017us (4993915.1 ops/sec): 79.9 MB/s
Did 1389000 AES-128-GCM (1350 bytes) seal operations in 1000073us (1388898.6 ops/sec): 1875.0 MB/s
Did 319000 AES-128-GCM (8192 bytes) seal operations in 1000101us (318967.8 ops/sec): 2613.0 MB/s
Did 4668000 AES-256-GCM (16 bytes) seal operations in 1000149us (4667304.6 ops/sec): 74.7 MB/s
Did 1202000 AES-256-GCM (1350 bytes) seal operations in 1000646us (1201224.0 ops/sec): 1621.7 MB/s
Did 269000 AES-256-GCM (8192 bytes) seal operations in 1002804us (268247.8 ops/sec): 2197.5 MB/s

Change-Id: Id848562bd4e1aa79a4683012501dfa5e6c08cfcc
Reviewed-on: https://boringssl-review.googlesource.com/11262
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-09-27 18:43:20 +00:00
..
test Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
aead_test.cc Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
aead.c Add EVP_AEAD_CTX_aead. 2016-09-17 01:06:40 +00:00
cipher_test.cc Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
cipher.c Fix encrypt overflow 2016-05-03 16:43:12 +00:00
CMakeLists.txt Add a run_tests target to run all tests. 2015-10-26 20:33:44 +00:00
derive_key.c
e_aes.c Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
e_chacha20poly1305.c Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
e_des.c Use C99 for size_t loops. 2016-09-12 19:44:24 +00:00
e_null.c Remove some easy obj.h dependencies. 2016-03-31 20:50:33 +00:00
e_rc2.c Remove some easy obj.h dependencies. 2016-03-31 20:50:33 +00:00
e_rc4.c Remove some easy obj.h dependencies. 2016-03-31 20:50:33 +00:00
e_ssl3.c Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
e_tls.c Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
internal.h Remove RC4 from TLS for real. 2016-09-16 03:06:36 +00:00
tls_cbc.c Replace CBC_MAC_ROTATE_IN_PLACE with an N lg N rotation. 2016-09-12 19:27:25 +00:00