go/src/crypto/aes
Fangming.Fang 917e72697e crypto/aes: optimize arm64 AES implementation
This patch makes use of arm64 AES instructions to accelerate AES computation
and only supports optimization on Linux for arm64

name        old time/op    new time/op     delta
Encrypt-32     255ns ± 0%       26ns ± 0%   -89.73%
Decrypt-32     256ns ± 0%       26ns ± 0%   -89.77%
Expand-32      990ns ± 5%      901ns ± 0%    -9.05%

name        old speed      new speed       delta
Encrypt-32  62.5MB/s ± 0%  610.4MB/s ± 0%  +876.39%
Decrypt-32  62.3MB/s ± 0%  610.2MB/s ± 0%  +879.6%

Fixes #18498

Change-Id: If416e5a151785325527b32ff72f6da3812493ed0
Reviewed-on: https://go-review.googlesource.com/64490
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
2018-03-06 00:44:29 +00:00
..
aes_gcm.go crypto/cipher: add NewGCMWithNonceAndTagSize for custom tag sizes. 2018-02-14 15:32:26 +00:00
aes_test.go
asm_amd64.s crypto/{cipher,tls,internal/cryptohw}: prioritise AES-GCM when hardware support is present. 2016-11-07 20:01:18 +00:00
asm_arm64.s crypto/aes: optimize arm64 AES implementation 2018-03-06 00:44:29 +00:00
asm_ppc64le.s crypto: clarify that some files come from CRYPTOGAMS 2018-01-11 00:07:35 +00:00
asm_s390x.s crypto/aes: use s390x KMA instruction for AES-GCM if available 2017-11-06 07:58:37 +00:00
block.go
cbc_s390x.go
cipher.go
cipher_amd64.go crypto/{cipher,tls,internal/cryptohw}: prioritise AES-GCM when hardware support is present. 2016-11-07 20:01:18 +00:00
cipher_arm64.go crypto/aes: optimize arm64 AES implementation 2018-03-06 00:44:29 +00:00
cipher_generic.go crypto/aes: optimize arm64 AES implementation 2018-03-06 00:44:29 +00:00
cipher_ppc64le.go crypto/aes: minor ppc64 assembly naming improvements 2017-02-21 18:42:27 +00:00
cipher_s390x.go crypto/aes: correct 'noescape' typo in s390x 2016-12-14 16:10:22 +00:00
const.go crypto/*: document use or non-use of constant-time algorithms 2016-12-07 16:34:50 +00:00
ctr_s390x.go crypto/{aes,cipher,rc4}: fix out of bounds write in stream ciphers 2017-08-09 04:17:51 +00:00
gcm_amd64.s crypto/aes: make the GHASH part of AES-GCM faster 2017-08-18 21:40:57 +00:00
gcm_s390x.go crypto/cipher: add NewGCMWithNonceAndTagSize for custom tag sizes. 2018-02-14 15:32:26 +00:00
modes.go crypto/cipher: add NewGCMWithNonceAndTagSize for custom tag sizes. 2018-02-14 15:32:26 +00:00
modes_test.go crypto/cipher: add NewGCMWithNonceAndTagSize for custom tag sizes. 2018-02-14 15:32:26 +00:00