aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorHuang Ying <ying.huang@intel.com>2009-01-18 00:28:34 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2009-02-18 03:48:06 -0500
commit54b6a1bd5364aca95cd6ffae00f2b64c6511122c (patch)
treeb1e288b009df7fefa92ce001d8709b04dd20663f /crypto
parent1cac2cbc76b9f3fce0d4ccc374e724e7f2533a47 (diff)
crypto: aes-ni - Add support to Intel AES-NI instructions for x86_64 platform
Intel AES-NI is a new set of Single Instruction Multiple Data (SIMD) instructions that are going to be introduced in the next generation of Intel processor, as of 2009. These instructions enable fast and secure data encryption and decryption, using the Advanced Encryption Standard (AES), defined by FIPS Publication number 197. The architecture introduces six instructions that offer full hardware support for AES. Four of them support high performance data encryption and decryption, and the other two instructions support the AES key expansion procedure. The white paper can be downloaded from: http://softwarecommunity.intel.com/isn/downloads/intelavx/AES-Instructions-Set_WP.pdf AES may be used in soft_irq context, but MMX/SSE context can not be touched safely in soft_irq context. So in_interrupt() is checked, if in IRQ or soft_irq context, the general x86_64 implementation are used instead. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig25
1 files changed, 25 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 8dde4fcf99c9..a83ce0462b6b 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -470,6 +470,31 @@ config CRYPTO_AES_X86_64
470 470
471 See <http://csrc.nist.gov/encryption/aes/> for more information. 471 See <http://csrc.nist.gov/encryption/aes/> for more information.
472 472
473config CRYPTO_AES_NI_INTEL
474 tristate "AES cipher algorithms (AES-NI)"
475 depends on (X86 || UML_X86) && 64BIT
476 select CRYPTO_AES_X86_64
477 select CRYPTO_CRYPTD
478 select CRYPTO_ALGAPI
479 help
480 Use Intel AES-NI instructions for AES algorithm.
481
482 AES cipher algorithms (FIPS-197). AES uses the Rijndael
483 algorithm.
484
485 Rijndael appears to be consistently a very good performer in
486 both hardware and software across a wide range of computing
487 environments regardless of its use in feedback or non-feedback
488 modes. Its key setup time is excellent, and its key agility is
489 good. Rijndael's very low memory requirements make it very well
490 suited for restricted-space environments, in which it also
491 demonstrates excellent performance. Rijndael's operations are
492 among the easiest to defend against power and timing attacks.
493
494 The AES specifies three key sizes: 128, 192 and 256 bits
495
496 See <http://csrc.nist.gov/encryption/aes/> for more information.
497
473config CRYPTO_ANUBIS 498config CRYPTO_ANUBIS
474 tristate "Anubis cipher algorithm" 499 tristate "Anubis cipher algorithm"
475 select CRYPTO_ALGAPI 500 select CRYPTO_ALGAPI