Merge branch 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[safe/jmp/linux-2.6] / crypto / Kconfig
index edf6c71..9d9434f 100644 (file)
@@ -23,11 +23,13 @@ comment "Crypto core or helper"
 
 config CRYPTO_FIPS
        bool "FIPS 200 compliance"
 
 config CRYPTO_FIPS
        bool "FIPS 200 compliance"
+       depends on CRYPTO_ANSI_CPRNG
        help
          This options enables the fips boot option which is
          required if you want to system to operate in a FIPS 200
          certification.  You should say no unless you know what
        help
          This options enables the fips boot option which is
          required if you want to system to operate in a FIPS 200
          certification.  You should say no unless you know what
-         this is.
+         this is. Note that CRYPTO_ANSI_CPRNG is required if this
+         option is selected
 
 config CRYPTO_ALGAPI
        tristate
 
 config CRYPTO_ALGAPI
        tristate
@@ -56,6 +58,7 @@ config CRYPTO_BLKCIPHER2
        tristate
        select CRYPTO_ALGAPI2
        select CRYPTO_RNG2
        tristate
        select CRYPTO_ALGAPI2
        select CRYPTO_RNG2
+       select CRYPTO_WORKQUEUE
 
 config CRYPTO_HASH
        tristate
 
 config CRYPTO_HASH
        tristate
@@ -75,6 +78,10 @@ config CRYPTO_RNG2
        tristate
        select CRYPTO_ALGAPI2
 
        tristate
        select CRYPTO_ALGAPI2
 
+config CRYPTO_PCOMP
+       tristate
+       select CRYPTO_ALGAPI2
+
 config CRYPTO_MANAGER
        tristate "Cryptographic algorithm manager"
        select CRYPTO_MANAGER2
 config CRYPTO_MANAGER
        tristate "Cryptographic algorithm manager"
        select CRYPTO_MANAGER2
@@ -87,6 +94,7 @@ config CRYPTO_MANAGER2
        select CRYPTO_AEAD2
        select CRYPTO_HASH2
        select CRYPTO_BLKCIPHER2
        select CRYPTO_AEAD2
        select CRYPTO_HASH2
        select CRYPTO_BLKCIPHER2
+       select CRYPTO_PCOMP
 
 config CRYPTO_GF128MUL
        tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
 
 config CRYPTO_GF128MUL
        tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
@@ -106,11 +114,25 @@ config CRYPTO_NULL
        help
          These are 'Null' algorithms, used by IPsec, which do nothing.
 
        help
          These are 'Null' algorithms, used by IPsec, which do nothing.
 
+config CRYPTO_PCRYPT
+       tristate "Parallel crypto engine (EXPERIMENTAL)"
+       depends on SMP && EXPERIMENTAL
+       select PADATA
+       select CRYPTO_MANAGER
+       select CRYPTO_AEAD
+       help
+         This converts an arbitrary crypto algorithm into a parallel
+         algorithm that executes in kernel threads.
+
+config CRYPTO_WORKQUEUE
+       tristate
+
 config CRYPTO_CRYPTD
        tristate "Software async crypto daemon"
        select CRYPTO_BLKCIPHER
        select CRYPTO_HASH
        select CRYPTO_MANAGER
 config CRYPTO_CRYPTD
        tristate "Software async crypto daemon"
        select CRYPTO_BLKCIPHER
        select CRYPTO_HASH
        select CRYPTO_MANAGER
+       select CRYPTO_WORKQUEUE
        help
          This is a generic software asynchronous crypto daemon that
          converts an arbitrary synchronous software crypto algorithm
        help
          This is a generic software asynchronous crypto daemon that
          converts an arbitrary synchronous software crypto algorithm
@@ -146,7 +168,7 @@ config CRYPTO_GCM
        tristate "GCM/GMAC support"
        select CRYPTO_CTR
        select CRYPTO_AEAD
        tristate "GCM/GMAC support"
        select CRYPTO_CTR
        select CRYPTO_AEAD
-       select CRYPTO_GF128MUL
+       select CRYPTO_GHASH
        help
          Support for Galois/Counter Mode (GCM) and Galois Message
          Authentication Code (GMAC). Required for IPSec.
        help
          Support for Galois/Counter Mode (GCM) and Galois Message
          Authentication Code (GMAC). Required for IPSec.
@@ -231,6 +253,11 @@ config CRYPTO_XTS
          key size 256, 384 or 512 bits. This implementation currently
          can't handle a sectorsize which is not a multiple of 16 bytes.
 
          key size 256, 384 or 512 bits. This implementation currently
          can't handle a sectorsize which is not a multiple of 16 bytes.
 
+config CRYPTO_FPU
+       tristate
+       select CRYPTO_BLKCIPHER
+       select CRYPTO_MANAGER
+
 comment "Hash modes"
 
 config CRYPTO_HMAC
 comment "Hash modes"
 
 config CRYPTO_HMAC
@@ -252,6 +279,18 @@ config CRYPTO_XCBC
                http://csrc.nist.gov/encryption/modes/proposedmodes/
                 xcbc-mac/xcbc-mac-spec.pdf
 
                http://csrc.nist.gov/encryption/modes/proposedmodes/
                 xcbc-mac/xcbc-mac-spec.pdf
 
+config CRYPTO_VMAC
+       tristate "VMAC support"
+       depends on EXPERIMENTAL
+       select CRYPTO_HASH
+       select CRYPTO_MANAGER
+       help
+         VMAC is a message authentication algorithm designed for
+         very high speed on 64-bit architectures.
+
+         See also:
+         <http://fastcrypto.org/vmac>
+
 comment "Digest"
 
 config CRYPTO_CRC32C
 comment "Digest"
 
 config CRYPTO_CRC32C
@@ -274,21 +313,28 @@ config CRYPTO_CRC32C_INTEL
          gain performance compared with software implementation.
          Module will be crc32c-intel.
 
          gain performance compared with software implementation.
          Module will be crc32c-intel.
 
+config CRYPTO_GHASH
+       tristate "GHASH digest algorithm"
+       select CRYPTO_SHASH
+       select CRYPTO_GF128MUL
+       help
+         GHASH is message digest algorithm for GCM (Galois/Counter Mode).
+
 config CRYPTO_MD4
        tristate "MD4 digest algorithm"
 config CRYPTO_MD4
        tristate "MD4 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          MD4 message digest algorithm (RFC1320).
 
 config CRYPTO_MD5
        tristate "MD5 digest algorithm"
        help
          MD4 message digest algorithm (RFC1320).
 
 config CRYPTO_MD5
        tristate "MD5 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          MD5 message digest algorithm (RFC1321).
 
 config CRYPTO_MICHAEL_MIC
        tristate "Michael MIC keyed digest algorithm"
        help
          MD5 message digest algorithm (RFC1321).
 
 config CRYPTO_MICHAEL_MIC
        tristate "Michael MIC keyed digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          Michael MIC is used for message integrity protection in TKIP
          (IEEE 802.11i). This algorithm is required for TKIP, but it
        help
          Michael MIC is used for message integrity protection in TKIP
          (IEEE 802.11i). This algorithm is required for TKIP, but it
@@ -351,13 +397,13 @@ config CRYPTO_RMD320
 
 config CRYPTO_SHA1
        tristate "SHA1 digest algorithm"
 
 config CRYPTO_SHA1
        tristate "SHA1 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
 config CRYPTO_SHA256
        tristate "SHA224 and SHA256 digest algorithm"
        help
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
 config CRYPTO_SHA256
        tristate "SHA224 and SHA256 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          SHA256 secure hash standard (DFIPS 180-2).
 
        help
          SHA256 secure hash standard (DFIPS 180-2).
 
@@ -369,7 +415,7 @@ config CRYPTO_SHA256
 
 config CRYPTO_SHA512
        tristate "SHA384 and SHA512 digest algorithms"
 
 config CRYPTO_SHA512
        tristate "SHA384 and SHA512 digest algorithms"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          SHA512 secure hash standard (DFIPS 180-2).
 
        help
          SHA512 secure hash standard (DFIPS 180-2).
 
@@ -381,7 +427,7 @@ config CRYPTO_SHA512
 
 config CRYPTO_TGR192
        tristate "Tiger digest algorithms"
 
 config CRYPTO_TGR192
        tristate "Tiger digest algorithms"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          Tiger hash algorithm 192, 160 and 128-bit hashes
 
        help
          Tiger hash algorithm 192, 160 and 128-bit hashes
 
@@ -394,7 +440,7 @@ config CRYPTO_TGR192
 
 config CRYPTO_WP512
        tristate "Whirlpool digest algorithms"
 
 config CRYPTO_WP512
        tristate "Whirlpool digest algorithms"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 
        help
          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 
@@ -404,6 +450,15 @@ config CRYPTO_WP512
          See also:
          <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
 
          See also:
          <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
 
+config CRYPTO_GHASH_CLMUL_NI_INTEL
+       tristate "GHASH digest algorithm (CLMUL-NI accelerated)"
+       depends on (X86 || UML_X86) && 64BIT
+       select CRYPTO_SHASH
+       select CRYPTO_CRYPTD
+       help
+         GHASH is message digest algorithm for GCM (Galois/Counter Mode).
+         The implementation is accelerated by CLMUL-NI of Intel.
+
 comment "Ciphers"
 
 config CRYPTO_AES
 comment "Ciphers"
 
 config CRYPTO_AES
@@ -470,6 +525,36 @@ config CRYPTO_AES_X86_64
 
          See <http://csrc.nist.gov/encryption/aes/> for more information.
 
 
          See <http://csrc.nist.gov/encryption/aes/> for more information.
 
+config CRYPTO_AES_NI_INTEL
+       tristate "AES cipher algorithms (AES-NI)"
+       depends on (X86 || UML_X86) && 64BIT
+       select CRYPTO_AES_X86_64
+       select CRYPTO_CRYPTD
+       select CRYPTO_ALGAPI
+       select CRYPTO_FPU
+       help
+         Use Intel AES-NI instructions for AES algorithm.
+
+         AES cipher algorithms (FIPS-197). AES uses the Rijndael
+         algorithm.
+
+         Rijndael appears to be consistently a very good performer in
+         both hardware and software across a wide range of computing
+         environments regardless of its use in feedback or non-feedback
+         modes. Its key setup time is excellent, and its key agility is
+         good. Rijndael's very low memory requirements make it very well
+         suited for restricted-space environments, in which it also
+         demonstrates excellent performance. Rijndael's operations are
+         among the easiest to defend against power and timing attacks.
+
+         The AES specifies three key sizes: 128, 192 and 256 bits
+
+         See <http://csrc.nist.gov/encryption/aes/> for more information.
+
+         In addition to AES cipher algorithm support, the
+         acceleration for some popular block cipher mode is supported
+         too, including ECB, CBC, CTR, LRW, PCBC, XTS.
+
 config CRYPTO_ANUBIS
        tristate "Anubis cipher algorithm"
        select CRYPTO_ALGAPI
 config CRYPTO_ANUBIS
        tristate "Anubis cipher algorithm"
        select CRYPTO_ALGAPI
@@ -714,6 +799,15 @@ config CRYPTO_DEFLATE
 
          You will most probably want this if using IPSec.
 
 
          You will most probably want this if using IPSec.
 
+config CRYPTO_ZLIB
+       tristate "Zlib compression algorithm"
+       select CRYPTO_PCOMP
+       select ZLIB_INFLATE
+       select ZLIB_DEFLATE
+       select NLATTR
+       help
+         This is the zlib algorithm.
+
 config CRYPTO_LZO
        tristate "LZO compression algorithm"
        select CRYPTO_ALGAPI
 config CRYPTO_LZO
        tristate "LZO compression algorithm"
        select CRYPTO_ALGAPI
@@ -726,13 +820,14 @@ comment "Random Number Generation"
 
 config CRYPTO_ANSI_CPRNG
        tristate "Pseudo Random Number Generation for Cryptographic modules"
 
 config CRYPTO_ANSI_CPRNG
        tristate "Pseudo Random Number Generation for Cryptographic modules"
+       default m
        select CRYPTO_AES
        select CRYPTO_RNG
        select CRYPTO_AES
        select CRYPTO_RNG
-       select CRYPTO_FIPS
        help
          This option enables the generic pseudo random number generator
          for cryptographic modules.  Uses the Algorithm specified in
        help
          This option enables the generic pseudo random number generator
          for cryptographic modules.  Uses the Algorithm specified in
-         ANSI X9.31 A.2.4
+         ANSI X9.31 A.2.4. Note that this option must be enabled if
+         CRYPTO_FIPS is selected
 
 source "drivers/crypto/Kconfig"
 
 
 source "drivers/crypto/Kconfig"