Merge mulgrave-w:git/scsi-misc-2.6
[pandora-kernel.git] / crypto / Kconfig
index 89299f4..1e2f39c 100644 (file)
@@ -9,55 +9,91 @@ config CRYPTO
        help
          This option provides the core Cryptographic API.
 
+if CRYPTO
+
+config CRYPTO_ALGAPI
+       tristate
+       help
+         This option provides the API for cryptographic algorithms.
+
+config CRYPTO_BLKCIPHER
+       tristate
+       select CRYPTO_ALGAPI
+
+config CRYPTO_HASH
+       tristate
+       select CRYPTO_ALGAPI
+
+config CRYPTO_MANAGER
+       tristate "Cryptographic algorithm manager"
+       select CRYPTO_ALGAPI
+       default m
+       help
+         Create default cryptographic template instantiations such as
+         cbc(aes).
+
 config CRYPTO_HMAC
-       bool "HMAC support"
-       depends on CRYPTO
+       tristate "HMAC support"
+       select CRYPTO_HASH
        help
          HMAC: Keyed-Hashing for Message Authentication (RFC2104).
          This is required for IPSec.
 
 config CRYPTO_NULL
        tristate "Null algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          These are 'Null' algorithms, used by IPsec, which do nothing.
 
 config CRYPTO_MD4
        tristate "MD4 digest algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          MD4 message digest algorithm (RFC1320).
 
 config CRYPTO_MD5
        tristate "MD5 digest algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          MD5 message digest algorithm (RFC1321).
 
 config CRYPTO_SHA1
        tristate "SHA1 digest algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
-config CRYPTO_SHA1_Z990
-       tristate "SHA1 digest algorithm for IBM zSeries z990"
-       depends on CRYPTO && ARCH_S390
+config CRYPTO_SHA1_S390
+       tristate "SHA1 digest algorithm (s390)"
+       depends on S390
+       select CRYPTO_ALGAPI
        help
+         This is the s390 hardware accelerated implementation of the
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
 config CRYPTO_SHA256
        tristate "SHA256 digest algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          SHA256 secure hash standard (DFIPS 180-2).
          
          This version of SHA implements a 256 bit hash with 128 bits of
          security against collision attacks.
 
+config CRYPTO_SHA256_S390
+       tristate "SHA256 digest algorithm (s390)"
+       depends on S390
+       select CRYPTO_ALGAPI
+       help
+         This is the s390 hardware accelerated implementation of the
+         SHA256 secure hash standard (DFIPS 180-2).
+
+         This version of SHA implements a 256 bit hash with 128 bits of
+         security against collision attacks.
+
 config CRYPTO_SHA512
        tristate "SHA384 and SHA512 digest algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          SHA512 secure hash standard (DFIPS 180-2).
          
@@ -69,7 +105,7 @@ config CRYPTO_SHA512
 
 config CRYPTO_WP512
        tristate "Whirlpool digest algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 
@@ -81,7 +117,7 @@ config CRYPTO_WP512
 
 config CRYPTO_TGR192
        tristate "Tiger digest algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Tiger hash algorithm 192, 160 and 128-bit hashes
 
@@ -92,21 +128,40 @@ config CRYPTO_TGR192
          See also:
          <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
 
+config CRYPTO_ECB
+       tristate "ECB support"
+       select CRYPTO_BLKCIPHER
+       default m
+       help
+         ECB: Electronic CodeBook mode
+         This is the simplest block cipher algorithm.  It simply encrypts
+         the input block by block.
+
+config CRYPTO_CBC
+       tristate "CBC support"
+       select CRYPTO_BLKCIPHER
+       default m
+       help
+         CBC: Cipher Block Chaining mode
+         This block cipher algorithm is required for IPSec.
+
 config CRYPTO_DES
        tristate "DES and Triple DES EDE cipher algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
 
-config CRYPTO_DES_Z990
-       tristate "DES and Triple DES cipher algorithms for IBM zSeries z990"
-       depends on CRYPTO && ARCH_S390
+config CRYPTO_DES_S390
+       tristate "DES and Triple DES cipher algorithms (s390)"
+       depends on S390
+       select CRYPTO_ALGAPI
+       select CRYPTO_BLKCIPHER
        help
          DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
 
 config CRYPTO_BLOWFISH
        tristate "Blowfish cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Blowfish cipher algorithm, by Bruce Schneier.
          
@@ -119,7 +174,8 @@ config CRYPTO_BLOWFISH
 
 config CRYPTO_TWOFISH
        tristate "Twofish cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
+       select CRYPTO_TWOFISH_COMMON
        help
          Twofish cipher algorithm.
          
@@ -131,9 +187,47 @@ config CRYPTO_TWOFISH
          See also:
          <http://www.schneier.com/twofish.html>
 
+config CRYPTO_TWOFISH_COMMON
+       tristate
+       help
+         Common parts of the Twofish cipher algorithm shared by the
+         generic c and the assembler implementations.
+
+config CRYPTO_TWOFISH_586
+       tristate "Twofish cipher algorithms (i586)"
+       depends on (X86 || UML_X86) && !64BIT
+       select CRYPTO_ALGAPI
+       select CRYPTO_TWOFISH_COMMON
+       help
+         Twofish cipher algorithm.
+
+         Twofish was submitted as an AES (Advanced Encryption Standard)
+         candidate cipher by researchers at CounterPane Systems.  It is a
+         16 round block cipher supporting key sizes of 128, 192, and 256
+         bits.
+
+         See also:
+         <http://www.schneier.com/twofish.html>
+
+config CRYPTO_TWOFISH_X86_64
+       tristate "Twofish cipher algorithm (x86_64)"
+       depends on (X86 || UML_X86) && 64BIT
+       select CRYPTO_ALGAPI
+       select CRYPTO_TWOFISH_COMMON
+       help
+         Twofish cipher algorithm (x86_64).
+
+         Twofish was submitted as an AES (Advanced Encryption Standard)
+         candidate cipher by researchers at CounterPane Systems.  It is a
+         16 round block cipher supporting key sizes of 128, 192, and 256
+         bits.
+
+         See also:
+         <http://www.schneier.com/twofish.html>
+
 config CRYPTO_SERPENT
        tristate "Serpent cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
 
@@ -146,7 +240,7 @@ config CRYPTO_SERPENT
 
 config CRYPTO_AES
        tristate "AES cipher algorithms"
-       depends on CRYPTO && !(X86 || UML_X86)
+       select CRYPTO_ALGAPI
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
@@ -166,7 +260,8 @@ config CRYPTO_AES
 
 config CRYPTO_AES_586
        tristate "AES cipher algorithms (i586)"
-       depends on CRYPTO && ((X86 || UML_X86) && !64BIT)
+       depends on (X86 || UML_X86) && !64BIT
+       select CRYPTO_ALGAPI
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
@@ -186,7 +281,8 @@ config CRYPTO_AES_586
 
 config CRYPTO_AES_X86_64
        tristate "AES cipher algorithms (x86_64)"
-       depends on CRYPTO && ((X86 || UML_X86) && 64BIT)
+       depends on (X86 || UML_X86) && 64BIT
+       select CRYPTO_ALGAPI
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
@@ -204,23 +300,45 @@ config CRYPTO_AES_X86_64
 
          See <http://csrc.nist.gov/encryption/aes/> for more information.
 
+config CRYPTO_AES_S390
+       tristate "AES cipher algorithms (s390)"
+       depends on S390
+       select CRYPTO_ALGAPI
+       select CRYPTO_BLKCIPHER
+       help
+         This is the s390 hardware accelerated implementation of the
+         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.
+
+         On s390 the System z9-109 currently only supports the key size
+         of 128 bit.
+
 config CRYPTO_CAST5
        tristate "CAST5 (CAST-128) cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          The CAST5 encryption algorithm (synonymous with CAST-128) is
          described in RFC2144.
 
 config CRYPTO_CAST6
        tristate "CAST6 (CAST-256) cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          The CAST6 encryption algorithm (synonymous with CAST-256) is
          described in RFC2612.
 
 config CRYPTO_TEA
        tristate "TEA, XTEA and XETA cipher algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          TEA cipher algorithm.
 
@@ -237,7 +355,7 @@ config CRYPTO_TEA
 
 config CRYPTO_ARC4
        tristate "ARC4 cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          ARC4 cipher algorithm.
 
@@ -248,7 +366,7 @@ config CRYPTO_ARC4
 
 config CRYPTO_KHAZAD
        tristate "Khazad cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Khazad cipher algorithm.
 
@@ -261,7 +379,7 @@ config CRYPTO_KHAZAD
 
 config CRYPTO_ANUBIS
        tristate "Anubis cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Anubis cipher algorithm.
 
@@ -276,7 +394,7 @@ config CRYPTO_ANUBIS
 
 config CRYPTO_DEFLATE
        tristate "Deflate compression algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        select ZLIB_INFLATE
        select ZLIB_DEFLATE
        help
@@ -287,7 +405,7 @@ config CRYPTO_DEFLATE
 
 config CRYPTO_MICHAEL_MIC
        tristate "Michael MIC keyed digest algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Michael MIC is used for message integrity protection in TKIP
          (IEEE 802.11i). This algorithm is required for TKIP, but it
@@ -296,7 +414,7 @@ config CRYPTO_MICHAEL_MIC
 
 config CRYPTO_CRC32C
        tristate "CRC32c CRC algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        select LIBCRC32C
        help
          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
@@ -306,10 +424,13 @@ config CRYPTO_CRC32C
 
 config CRYPTO_TEST
        tristate "Testing module"
-       depends on CRYPTO
+       depends on m
+       select CRYPTO_ALGAPI
        help
          Quick & dirty crypto test module.
 
 source "drivers/crypto/Kconfig"
-endmenu
 
+endif  # if CRYPTO
+
+endmenu