linux/arch/arm/crypto
Ard Biesheuvel 81edb42629 crypto: arm/aes - replace scalar AES cipher
This replaces the scalar AES cipher that originates in the OpenSSL project
with a new implementation that is ~15% (*) faster (on modern cores), and
reuses the lookup tables and the key schedule generation routines from the
generic C implementation (which is usually compiled in anyway due to
networking and other subsystems depending on it).

Note that the bit sliced NEON code for AES still depends on the scalar cipher
that this patch replaces, so it is not removed entirely yet.

* On Cortex-A57, the performance increases from 17.0 to 14.9 cycles per byte
  for 128-bit keys.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2017-01-13 00:26:50 +08:00
..
.gitignore crypto: arm - ignore generated SHA2 assembly files 2015-07-06 16:32:03 +08:00
aes-armv4.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
aes-ce-core.S crypto: arm/aes - streamline AES-192 code path 2015-05-11 15:08:01 +08:00
aes-ce-glue.c crypto: aes-ce - Make aes_simd_algs static 2016-12-01 21:06:44 +08:00
aes-cipher-core.S crypto: arm/aes - replace scalar AES cipher 2017-01-13 00:26:50 +08:00
aes-cipher-glue.c crypto: arm/aes - replace scalar AES cipher 2017-01-13 00:26:50 +08:00
aes_glue.h ARM: move AES typedefs and function prototypes to separate header 2013-10-04 09:26:54 +02:00
aesbs-core.S_shipped crypto: arm/aes update NEON AES module to latest OpenSSL version 2015-03-02 23:18:26 +13:00
aesbs-glue.c crypto: arm/aesbs - fix brokenness after skcipher conversion 2016-11-30 20:01:51 +08:00
bsaes-armv7.pl crypto: arm/aes update NEON AES module to latest OpenSSL version 2015-03-02 23:18:26 +13:00
chacha20-neon-core.S crypto: arm/chacha20 - implement NEON version based on SSE3 code 2017-01-13 00:26:48 +08:00
chacha20-neon-glue.c crypto: arm/chacha20 - implement NEON version based on SSE3 code 2017-01-13 00:26:48 +08:00
crc32-ce-core.S crypto: arm/crc32 - accelerated support based on x86 SSE implementation 2016-12-07 20:01:24 +08:00
crc32-ce-glue.c crypto: arm/crc32 - accelerated support based on x86 SSE implementation 2016-12-07 20:01:24 +08:00
crct10dif-ce-core.S crypto: arm/crct10dif - port x86 SSE implementation to ARM 2016-12-07 20:01:21 +08:00
crct10dif-ce-glue.c crypto: arm/crct10dif - port x86 SSE implementation to ARM 2016-12-07 20:01:21 +08:00
ghash-ce-core.S crypto: arm/ghash - fix big-endian bug in ghash 2015-03-24 22:24:56 +11:00
ghash-ce-glue.c crypto: arm/ghash - change internal cra_name to "__ghash" 2016-09-07 21:10:19 +08:00
Kconfig crypto: arm/aes - replace scalar AES cipher 2017-01-13 00:26:50 +08:00
Makefile crypto: arm/aes - replace scalar AES cipher 2017-01-13 00:26:50 +08:00
sha1-armv4-large.S ARM: 7723/1: crypto: sha1-armv4-large.S: fix SP handling 2013-05-22 22:01:35 +01:00
sha1-armv7-neon.S crypto: arm/sha1-neon - add support for building in Thumb2 mode 2016-09-07 21:08:29 +08:00
sha1-ce-core.S crypto: arm/sha1-ce - move SHA-1 ARMv8 implementation to base layer 2015-04-10 21:39:44 +08:00
sha1-ce-glue.c crypto: arm/sha1-ce - move SHA-1 ARMv8 implementation to base layer 2015-04-10 21:39:44 +08:00
sha1.h crypto: arm/sha1 - move SHA-1 ARM asm implementation to base layer 2015-04-10 21:39:42 +08:00
sha1_glue.c crypto: arm/sha1 - move SHA-1 ARM asm implementation to base layer 2015-04-10 21:39:42 +08:00
sha1_neon_glue.c crypto: arm/sha1_neon - move SHA-1 NEON implementation to base layer 2015-04-10 21:39:43 +08:00
sha2-ce-core.S crypto: arm/sha2-ce - move SHA-224/256 ARMv8 implementation to base layer 2015-04-10 21:39:45 +08:00
sha2-ce-glue.c crypto: arm/sha2-ce - move SHA-224/256 ARMv8 implementation to base layer 2015-04-10 21:39:45 +08:00
sha256-armv4.pl crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256-core.S_shipped crypto: arm/sha256 - Add optimized SHA-256/224 2015-04-03 18:03:40 +08:00
sha256_glue.c crypto: arm/sha256 - move SHA-224/256 ASM/NEON implementation to base layer 2015-04-10 21:39:44 +08:00
sha256_glue.h crypto: arm/sha256 - move SHA-224/256 ASM/NEON implementation to base layer 2015-04-10 21:39:44 +08:00
sha256_neon_glue.c crypto: arm/sha256 - move SHA-224/256 ASM/NEON implementation to base layer 2015-04-10 21:39:44 +08:00
sha512-armv4.pl crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON 2015-05-11 15:08:01 +08:00
sha512-core.S_shipped crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON 2015-05-11 15:08:01 +08:00
sha512-glue.c crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON 2015-05-11 15:08:01 +08:00
sha512-neon-glue.c crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON 2015-05-11 15:08:01 +08:00
sha512.h crypto: arm/sha512 - accelerated SHA-512 using ARM generic ASM and NEON 2015-05-11 15:08:01 +08:00