diff options
author | David McCullough <david_mccullough@mcafee.com> | 2012-09-06 16:17:02 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-09-06 16:17:02 -0400 |
commit | f0be44f4fb1faee42635ca5ea06dc9c3e820a35d (patch) | |
tree | 866c6016f7153ddff778a5eda036934e7eb426ac /crypto | |
parent | 956c203c5e370c7beb766400b5c1a32ec570ce96 (diff) |
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/Kconfig | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index 213fb37be51f..27307981f88e 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 | ||
436 | config 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 | |||
436 | config CRYPTO_SHA256 | 445 | config 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 | ||
602 | config 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 | |||
593 | config CRYPTO_ANUBIS | 626 | config CRYPTO_ANUBIS |
594 | tristate "Anubis cipher algorithm" | 627 | tristate "Anubis cipher algorithm" |
595 | select CRYPTO_ALGAPI | 628 | select CRYPTO_ALGAPI |