boringssl/include/openssl
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
..
aead.h Add EVP_AEAD_CTX_aead. 2016-09-17 01:06:40 +00:00
aes.h
arm_arch.h Remove CRYPTO_set_NEON_functional. 2016-02-23 23:19:46 +00:00
asn1_mac.h Purge the remainder of asn1_mac.h. 2016-08-03 21:37:31 +00:00
asn1.h Add a few more scopers. 2016-09-16 17:27:43 +00:00
asn1t.h Remove ASN.1 print hooks. 2016-06-14 17:38:31 +00:00
base64.h Replace base64 decoding. 2016-05-26 17:59:10 +00:00
base.h Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
bio.h Unwind unnecessary Android hacks. 2016-09-21 15:36:49 +00:00
blowfish.h
bn.h Add BN_set_u64. 2016-09-18 20:12:25 +00:00
buf.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
buffer.h
bytestring.h Better explain usage of CBB_flush 2016-09-23 20:46:16 +00:00
cast.h
chacha.h Require in == out for in-place encryption. 2016-06-09 19:49:03 +00:00
cipher.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
cmac.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
conf.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
cpu.h Add PPC64LE assembly for AES-GCM. 2016-09-27 18:43:20 +00:00
crypto.h Add no-op function ENGINE_register_all_complete. 2016-07-12 17:54:41 +00:00
curve25519.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
des.h Fix shared library build on OS X. 2015-10-26 23:39:47 +00:00
dh.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
digest.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
dsa.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
dtls1.h
ec_key.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
ec.h Fix documentation for POINT_CONVERSION_UNCOMPRESSED in ec.h 2016-09-23 18:02:48 +00:00
ecdh.h Clean up |ECDH_compute_key|. 2015-10-27 17:00:25 +00:00
ecdsa.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
engine.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
err.h Have doc.go parse struct comments. 2016-01-26 23:23:23 +00:00
evp.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
ex_data.h Skip free callbacks on empty CRYPTO_EX_DATAs. 2015-12-15 21:32:14 +00:00
hkdf.h Const-correct HKDF_expand. 2016-07-16 07:55:19 +00:00
hmac.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
lhash_macros.h
lhash.h Style: fix some header guards 2015-10-26 18:47:51 +00:00
md4.h Add one-shot |MD4| function. 2016-03-09 01:13:55 +00:00
md5.h Store the partial block as uint8_t, not uint32_t. 2015-12-16 19:59:29 +00:00
mem.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
newhope.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
nid.h Elliptic curve + post-quantum key exchange 2016-05-19 22:19:14 +00:00
obj_mac.h Rename obj_mac.h to nid.h and make it a multiply-includable header. 2016-03-31 20:45:35 +00:00
obj.h Rename the |dont_return_name| flag of |OBJ_obj2txt| to |always_return_oid|. 2016-08-10 17:18:25 +00:00
objects.h
opensslconf.h Rename opensslfeatures.h to opensslconf.h. 2016-02-26 01:32:50 +00:00
opensslv.h
ossl_typ.h
pem.h Include crypto.h from pem.h. 2016-05-20 15:31:26 +00:00
pkcs7.h
pkcs8.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
pkcs12.h
poly1305.h Revert "Enable upstream's Poly1305 code." 2016-03-29 22:47:11 +00:00
rand.h Add a deterministic PRNG for fuzzing. 2016-03-03 01:36:19 +00:00
rc4.h Add |RC4_options| to decrepit. 2016-03-09 01:14:30 +00:00
ripemd.h Add RIPEMD160 support in decrepit. 2016-03-09 19:37:14 +00:00
rsa.h Fold stack-allocated types into headers. 2016-09-07 21:50:05 +00:00
safestack.h
sha.h Fix the comments for |SHA[256|384|512]_Transform|. 2016-07-28 21:49:48 +00:00
srtp.h
ssl3.h Insert a state before cert_cb. 2016-08-11 15:45:00 +00:00
ssl.h Implement draft-davidben-tls-grease-01. 2016-09-23 21:11:15 +00:00
stack_macros.h Remove STACK_OF(OPENSSL_BLOCK). 2016-08-16 19:38:02 +00:00
stack.h Remove STACK_OF(OPENSSL_BLOCK). 2016-08-16 19:38:02 +00:00
thread.h Add missing 'does nothing' comments for consistency. 2016-06-28 20:40:45 +00:00
time_support.h Include time.h in time_support.h. 2016-03-17 17:27:27 +00:00
tls1.h Add TLS 1.3 1-RTT. 2016-07-18 09:54:46 +00:00
type_check.h
x509_vfy.h Replace Scoped* heap types with bssl::UniquePtr. 2016-09-01 22:22:54 +00:00
x509.h Add deleters for some more X.509 things. 2016-09-26 21:29:38 +00:00
x509v3.h Add deleters for some more X.509 things. 2016-09-26 21:29:38 +00:00