fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / crypto / Kconfig
index c442f2e..205cbdf 100644 (file)
@@ -9,47 +9,82 @@ config CRYPTO
        help
          This option provides the core Cryptographic API.
 
        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
+       help
+         Create default cryptographic template instantiations such as
+         cbc(aes).
+
 config CRYPTO_HMAC
 config CRYPTO_HMAC
-       bool "HMAC support"
-       depends on CRYPTO
+       tristate "HMAC support"
+       select CRYPTO_HASH
+       select CRYPTO_MANAGER
        help
          HMAC: Keyed-Hashing for Message Authentication (RFC2104).
          This is required for IPSec.
 
        help
          HMAC: Keyed-Hashing for Message Authentication (RFC2104).
          This is required for IPSec.
 
+config CRYPTO_XCBC
+       tristate "XCBC support"
+       depends on EXPERIMENTAL
+       select CRYPTO_HASH
+       select CRYPTO_MANAGER
+       help
+         XCBC: Keyed-Hashing with encryption algorithm
+               http://www.ietf.org/rfc/rfc3566.txt
+               http://csrc.nist.gov/encryption/modes/proposedmodes/
+                xcbc-mac/xcbc-mac-spec.pdf
+
 config CRYPTO_NULL
        tristate "Null algorithms"
 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"
        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"
        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"
        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_S390
        tristate "SHA1 digest algorithm (s390)"
        help
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
 config CRYPTO_SHA1_S390
        tristate "SHA1 digest algorithm (s390)"
-       depends on CRYPTO && 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"
        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).
          
        help
          SHA256 secure hash standard (DFIPS 180-2).
          
@@ -58,7 +93,8 @@ config CRYPTO_SHA256
 
 config CRYPTO_SHA256_S390
        tristate "SHA256 digest algorithm (s390)"
 
 config CRYPTO_SHA256_S390
        tristate "SHA256 digest algorithm (s390)"
-       depends on CRYPTO && S390
+       depends on S390
+       select CRYPTO_ALGAPI
        help
          This is the s390 hardware accelerated implementation of the
          SHA256 secure hash standard (DFIPS 180-2).
        help
          This is the s390 hardware accelerated implementation of the
          SHA256 secure hash standard (DFIPS 180-2).
@@ -68,7 +104,7 @@ config CRYPTO_SHA256_S390
 
 config CRYPTO_SHA512
        tristate "SHA384 and SHA512 digest algorithms"
 
 config CRYPTO_SHA512
        tristate "SHA384 and SHA512 digest algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          SHA512 secure hash standard (DFIPS 180-2).
          
        help
          SHA512 secure hash standard (DFIPS 180-2).
          
@@ -80,7 +116,7 @@ config CRYPTO_SHA512
 
 config CRYPTO_WP512
        tristate "Whirlpool digest algorithms"
 
 config CRYPTO_WP512
        tristate "Whirlpool digest algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 
        help
          Whirlpool hash algorithm 512, 384 and 256-bit hashes
 
@@ -92,7 +128,7 @@ config CRYPTO_WP512
 
 config CRYPTO_TGR192
        tristate "Tiger digest algorithms"
 
 config CRYPTO_TGR192
        tristate "Tiger digest algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Tiger hash algorithm 192, 160 and 128-bit hashes
 
        help
          Tiger hash algorithm 192, 160 and 128-bit hashes
 
@@ -103,21 +139,65 @@ config CRYPTO_TGR192
          See also:
          <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
 
          See also:
          <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
 
+config CRYPTO_GF128MUL
+       tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       help
+         Efficient table driven implementation of multiplications in the
+         field GF(2^128).  This is needed by some cypher modes. This
+         option will be selected automatically if you select such a
+         cipher mode.  Only select this option by hand if you expect to load
+         an external module that requires these functions.
+
+config CRYPTO_ECB
+       tristate "ECB support"
+       select CRYPTO_BLKCIPHER
+       select CRYPTO_MANAGER
+       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
+       select CRYPTO_MANAGER
+       default m
+       help
+         CBC: Cipher Block Chaining mode
+         This block cipher algorithm is required for IPSec.
+
+config CRYPTO_LRW
+       tristate "LRW support (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       select CRYPTO_BLKCIPHER
+       select CRYPTO_MANAGER
+       select CRYPTO_GF128MUL
+       help
+         LRW: Liskov Rivest Wagner, a tweakable, non malleable, non movable
+         narrow block cipher mode for dm-crypt.  Use it with cipher
+         specification string aes-lrw-benbi, the key must be 256, 320 or 384.
+         The first 128, 192 or 256 bits in the key are used for AES and the
+         rest is used to tie each cipher block to its logical position.
+
 config CRYPTO_DES
        tristate "DES and Triple DES EDE cipher algorithms"
 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_S390
        tristate "DES and Triple DES cipher algorithms (s390)"
        help
          DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
 
 config CRYPTO_DES_S390
        tristate "DES and Triple DES cipher algorithms (s390)"
-       depends on CRYPTO && 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"
        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.
          
        help
          Blowfish cipher algorithm, by Bruce Schneier.
          
@@ -130,7 +210,8 @@ config CRYPTO_BLOWFISH
 
 config CRYPTO_TWOFISH
        tristate "Twofish cipher algorithm"
 
 config CRYPTO_TWOFISH
        tristate "Twofish cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
+       select CRYPTO_TWOFISH_COMMON
        help
          Twofish cipher algorithm.
          
        help
          Twofish cipher algorithm.
          
@@ -142,9 +223,47 @@ config CRYPTO_TWOFISH
          See also:
          <http://www.schneier.com/twofish.html>
 
          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"
 config CRYPTO_SERPENT
        tristate "Serpent cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
 
        help
          Serpent cipher algorithm, by Anderson, Biham & Knudsen.
 
@@ -157,7 +276,7 @@ config CRYPTO_SERPENT
 
 config CRYPTO_AES
        tristate "AES cipher algorithms"
 
 config CRYPTO_AES
        tristate "AES cipher algorithms"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
@@ -177,7 +296,8 @@ config CRYPTO_AES
 
 config CRYPTO_AES_586
        tristate "AES cipher algorithms (i586)"
 
 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.
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
@@ -197,7 +317,8 @@ config CRYPTO_AES_586
 
 config CRYPTO_AES_X86_64
        tristate "AES cipher algorithms (x86_64)"
 
 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.
        help
          AES cipher algorithms (FIPS-197). AES uses the Rijndael 
          algorithm.
@@ -217,7 +338,9 @@ config CRYPTO_AES_X86_64
 
 config CRYPTO_AES_S390
        tristate "AES cipher algorithms (s390)"
 
 config CRYPTO_AES_S390
        tristate "AES cipher algorithms (s390)"
-       depends on CRYPTO && 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
        help
          This is the s390 hardware accelerated implementation of the
          AES cipher algorithms (FIPS-197). AES uses the Rijndael
@@ -237,21 +360,21 @@ config CRYPTO_AES_S390
 
 config CRYPTO_CAST5
        tristate "CAST5 (CAST-128) cipher algorithm"
 
 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"
        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"
        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.
 
        help
          TEA cipher algorithm.
 
@@ -268,7 +391,7 @@ config CRYPTO_TEA
 
 config CRYPTO_ARC4
        tristate "ARC4 cipher algorithm"
 
 config CRYPTO_ARC4
        tristate "ARC4 cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          ARC4 cipher algorithm.
 
        help
          ARC4 cipher algorithm.
 
@@ -279,7 +402,7 @@ config CRYPTO_ARC4
 
 config CRYPTO_KHAZAD
        tristate "Khazad cipher algorithm"
 
 config CRYPTO_KHAZAD
        tristate "Khazad cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Khazad cipher algorithm.
 
        help
          Khazad cipher algorithm.
 
@@ -292,7 +415,7 @@ config CRYPTO_KHAZAD
 
 config CRYPTO_ANUBIS
        tristate "Anubis cipher algorithm"
 
 config CRYPTO_ANUBIS
        tristate "Anubis cipher algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        help
          Anubis cipher algorithm.
 
        help
          Anubis cipher algorithm.
 
@@ -307,7 +430,7 @@ config CRYPTO_ANUBIS
 
 config CRYPTO_DEFLATE
        tristate "Deflate compression algorithm"
 
 config CRYPTO_DEFLATE
        tristate "Deflate compression algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        select ZLIB_INFLATE
        select ZLIB_DEFLATE
        help
        select ZLIB_INFLATE
        select ZLIB_DEFLATE
        help
@@ -318,7 +441,7 @@ config CRYPTO_DEFLATE
 
 config CRYPTO_MICHAEL_MIC
        tristate "Michael MIC keyed digest algorithm"
 
 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
        help
          Michael MIC is used for message integrity protection in TKIP
          (IEEE 802.11i). This algorithm is required for TKIP, but it
@@ -327,7 +450,7 @@ config CRYPTO_MICHAEL_MIC
 
 config CRYPTO_CRC32C
        tristate "CRC32c CRC algorithm"
 
 config CRYPTO_CRC32C
        tristate "CRC32c CRC algorithm"
-       depends on CRYPTO
+       select CRYPTO_ALGAPI
        select LIBCRC32C
        help
          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
        select LIBCRC32C
        help
          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
@@ -337,10 +460,32 @@ config CRYPTO_CRC32C
 
 config CRYPTO_TEST
        tristate "Testing module"
 
 config CRYPTO_TEST
        tristate "Testing module"
-       depends on CRYPTO
+       depends on m
+       select CRYPTO_ALGAPI
        help
          Quick & dirty crypto test module.
 
        help
          Quick & dirty crypto test module.
 
+config CRYPTO_MPILIB
+       bool "Multiprecision maths library (EXPERIMENTAL)"
+       depends on CRYPTO
+       help
+         Multiprecision maths library from GnuPG
+
+config CRYPTO_SIGNATURE
+       bool "In-kernel signature checker (EXPERIMENTAL)"
+       depends on CRYPTO
+       help
+         Signature checker (used for module sig checking).
+
+config CRYPTO_SIGNATURE_DSA
+       bool "Handle DSA signatures (EXPERIMENTAL)"
+       depends on CRYPTO_SIGNATURE
+       select CRYPTO_MPILIB
+       help
+         DSA Signature checker.
+
 source "drivers/crypto/Kconfig"
 source "drivers/crypto/Kconfig"
-endmenu
 
 
+endif  # if CRYPTO
+
+endmenu