aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorDavid McCullough2012-09-06 15:17:02 -0500
committerHerbert Xu2012-09-06 15:17:02 -0500
commitf0be44f4fb1faee42635ca5ea06dc9c3e820a35d (patch)
tree866c6016f7153ddff778a5eda036934e7eb426ac /crypto
parent956c203c5e370c7beb766400b5c1a32ec570ce96 (diff)
downloadkernel-common-f0be44f4fb1faee42635ca5ea06dc9c3e820a35d.tar.gz
kernel-common-f0be44f4fb1faee42635ca5ea06dc9c3e820a35d.tar.xz
kernel-common-f0be44f4fb1faee42635ca5ea06dc9c3e820a35d.zip
arm/crypto: Add optimized AES and SHA1 routines
Add assembler versions of AES and SHA1 for ARM platforms. This has provided up to a 50% improvement in IPsec/TCP throughout for tunnels using AES128/SHA1. Platform CPU SPeed Endian Before (bps) After (bps) Improvement IXP425 533 MHz big 11217042 15566294 ~38% KS8695 166 MHz little 3828549 5795373 ~51% Signed-off-by: David McCullough <ucdevel@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig33
1 files changed, 33 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 213fb37be51..27307981f88 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -433,6 +433,15 @@ config CRYPTO_SHA1_SSSE3
433 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector 433 using Supplemental SSE3 (SSSE3) instructions or Advanced Vector
434 Extensions (AVX), when available. 434 Extensions (AVX), when available.
435 435
436config CRYPTO_SHA1_ARM
437 tristate "SHA1 digest algorithm (ARM-asm)"
438 depends on ARM
439 select CRYPTO_SHA1
440 select CRYPTO_HASH
441 help
442 SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented
443 using optimized ARM assembler.
444
436config CRYPTO_SHA256 445config CRYPTO_SHA256
437 tristate "SHA224 and SHA256 digest algorithm" 446 tristate "SHA224 and SHA256 digest algorithm"
438 select CRYPTO_HASH 447 select CRYPTO_HASH
@@ -590,6 +599,30 @@ config CRYPTO_AES_NI_INTEL
590 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional 599 ECB, CBC, LRW, PCBC, XTS. The 64 bit version has additional
591 acceleration for CTR. 600 acceleration for CTR.
592 601
602config CRYPTO_AES_ARM
603 tristate "AES cipher algorithms (ARM-asm)"
604 depends on ARM
605 select CRYPTO_ALGAPI
606 select CRYPTO_AES
607 help
608 Use optimized AES assembler routines for ARM platforms.
609
610 AES cipher algorithms (FIPS-197). AES uses the Rijndael
611 algorithm.
612
613 Rijndael appears to be consistently a very good performer in
614 both hardware and software across a wide range of computing
615 environments regardless of its use in feedback or non-feedback
616 modes. Its key setup time is excellent, and its key agility is
617 good. Rijndael's very low memory requirements make it very well
618 suited for restricted-space environments, in which it also
619 demonstrates excellent performance. Rijndael's operations are
620 among the easiest to defend against power and timing attacks.
621
622 The AES specifies three key sizes: 128, 192 and 256 bits
623
624 See <http://csrc.nist.gov/encryption/aes/> for more information.
625
593config CRYPTO_ANUBIS 626config CRYPTO_ANUBIS
594 tristate "Anubis cipher algorithm" 627 tristate "Anubis cipher algorithm"
595 select CRYPTO_ALGAPI 628 select CRYPTO_ALGAPI