Ard Biesheuvel
521cdde758
crypto: aegis - avoid prerotated AES tables
...
The generic AES code provides four sets of lookup tables, where each
set consists of four tables containing the same 32-bit values, but
rotated by 0, 8, 16 and 24 bits, respectively. This makes sense for
CISC architectures such as x86 which support memory operands, but
for other architectures, the rotates are quite cheap, and using all
four tables needlessly thrashes the D-cache, and actually hurts rather
than helps performance.
Since x86 already has its own implementation of AEGIS based on AES-NI
instructions, let's tweak the generic implementation towards other
architectures, and avoid the prerotated tables, and perform the
rotations inline. On ARM Cortex-A53, this results in a ~8% speedup.
Acked-by: Ondrej Mosnacek <omosnace@redhat.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-07-26 15:03:57 +10:00
..
asymmetric_keys
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
async_tx
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335
2019-06-05 17:37:06 +02:00
842.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157
2019-05-30 11:26:37 -07:00
ablkcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
acompress.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
adiantum.c
crypto: shash - remove shash_desc::flags
2019-04-25 15:38:12 +08:00
aead.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
aegis.h
crypto: aegis - avoid prerotated AES tables
2019-07-26 15:03:57 +10:00
aegis128.c
crypto: aegis128 - drop empty TFM init/exit routines
2019-07-26 15:03:57 +10:00
aes_generic.c
crypto: aes-generic - unexport last-round AES tables
2019-07-26 14:58:35 +10:00
aes_ti.c
crypto: aes - create AES library based on the fixed time AES code
2019-07-26 14:55:33 +10:00
af_alg.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ahash.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
akcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
algapi.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
algboss.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
algif_aead.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
algif_hash.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
algif_rng.c
algif_skcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ansi_cprng.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 42
2019-05-24 17:27:12 +02:00
anubis.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
api.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
arc4.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
authenc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
authencesn.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
blkcipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
blowfish_common.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
blowfish_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
camellia_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
cast5_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 140
2019-05-30 11:25:16 -07:00
cast6_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 140
2019-05-30 11:25:16 -07:00
cast_common.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 44
2019-05-24 17:27:12 +02:00
cbc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ccm.c
wusb: switch to cbcmac transform
2019-06-18 08:52:34 +02:00
cfb.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
chacha20poly1305.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
chacha_generic.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
cipher.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
cmac.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
compress.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
crc32_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
crc32c_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
crct10dif_common.c
crct10dif_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
cryptd.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
crypto_engine.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
crypto_null.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
crypto_user_base.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-05 13:31:19 +09:00
crypto_user_stat.c
ctr.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
cts.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
deflate.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
des_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
dh.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
dh_helper.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
drbg.c
crypto: drbg - add FIPS 140-2 CTRNG for noise source
2019-05-23 14:01:06 +08:00
ecb.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ecc.c
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecc.h
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecc_curve_defs.h
crypto: ecc - make ecc into separate module
2019-04-18 22:15:02 +08:00
ecdh.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ecdh_helper.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
echainiv.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ecrdsa.c
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecrdsa_defs.h
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecrdsa_params.asn1
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
ecrdsa_pub_key.asn1
crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm
2019-04-18 22:15:02 +08:00
fcrypt.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
fips.c
crypto: fips - add FIPS test failure notification chain
2019-07-26 14:51:57 +10:00
gcm.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
2019-06-19 17:09:55 +02:00
gf128mul.c
ghash-generic.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
hash_info.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
hmac.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-06-06 13:10:49 -07:00
internal.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
jitterentropy-kcapi.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-06-20 14:17:24 +08:00
jitterentropy.c
crypto: jitter - update implementation to 2.1.2
2019-06-06 14:38:57 +08:00
Kconfig
crypto: aegis128l/aegis256 - remove x86 and generic implementations
2019-07-26 15:03:56 +10:00
keywrap.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
khazad.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
kpp.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
lrw.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lz4.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lz4hc.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lzo-rle.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
lzo.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
Makefile
crypto: aegis128l/aegis256 - remove x86 and generic implementations
2019-07-26 15:03:56 +10:00
md4.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
md5.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
memneq.c
michael_mic.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
nhpoly1305.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
ofb.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
pcbc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
pcrypt.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335
2019-06-05 17:37:06 +02:00
poly1305_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
proc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
ripemd.h
rmd128.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rmd160.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rmd256.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rmd320.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
rng.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
rsa-pkcs1pad.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
rsa.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36
2019-05-24 17:27:11 +02:00
rsa_helper.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
rsaprivkey.asn1
rsapubkey.asn1
salsa20_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
scatterwalk.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
scompress.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
seed.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
seqiv.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
serpent_generic.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
sha1_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sha3_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sha256_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
sha512_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45
2019-05-24 17:27:12 +02:00
shash.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
simd.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
skcipher.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
sm3_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234
2019-06-19 17:09:07 +02:00
sm4_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
streebog_generic.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
tcrypt.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
tcrypt.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
tea.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
testmgr.c
crypto: aegis128l/aegis256 - remove x86 and generic implementations
2019-07-26 15:03:56 +10:00
testmgr.h
crypto: aegis128l/aegis256 - remove x86 and generic implementations
2019-07-26 15:03:56 +10:00
tgr192.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00
twofish_common.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
twofish_generic.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
vmac.c
crypto: run initcalls for generic implementations earlier
2019-04-18 22:15:03 +08:00
wp512.c
crypto: make all generic algorithms set cra_driver_name
2019-06-13 14:31:39 +08:00
xcbc.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13
2019-05-21 11:28:45 +02:00
xor.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 47
2019-05-24 17:27:13 +02:00
xts.c
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152
2019-05-30 11:26:32 -07:00
xxhash_generic.c
crypto: xxhash - Implement xxhash support
2019-06-06 14:38:57 +08:00
zstd.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
2019-07-08 20:57:08 -07:00