crypto: sha1_generic - Add export/import support
[safe/jmp/linux-2.6] / crypto / Kconfig
index 2274293..f2002d8 100644 (file)
@@ -23,6 +23,7 @@ comment "Crypto core or helper"
 
 config CRYPTO_FIPS
        bool "FIPS 200 compliance"
 
 config CRYPTO_FIPS
        bool "FIPS 200 compliance"
+       select 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
        help
          This options enables the fips boot option which is
          required if you want to system to operate in a FIPS 200
@@ -31,34 +32,69 @@ config CRYPTO_FIPS
 
 config CRYPTO_ALGAPI
        tristate
 
 config CRYPTO_ALGAPI
        tristate
+       select CRYPTO_ALGAPI2
        help
          This option provides the API for cryptographic algorithms.
 
        help
          This option provides the API for cryptographic algorithms.
 
+config CRYPTO_ALGAPI2
+       tristate
+
 config CRYPTO_AEAD
        tristate
 config CRYPTO_AEAD
        tristate
+       select CRYPTO_AEAD2
        select CRYPTO_ALGAPI
 
        select CRYPTO_ALGAPI
 
+config CRYPTO_AEAD2
+       tristate
+       select CRYPTO_ALGAPI2
+
 config CRYPTO_BLKCIPHER
        tristate
 config CRYPTO_BLKCIPHER
        tristate
+       select CRYPTO_BLKCIPHER2
        select CRYPTO_ALGAPI
 
        select CRYPTO_ALGAPI
 
+config CRYPTO_BLKCIPHER2
+       tristate
+       select CRYPTO_ALGAPI2
+       select CRYPTO_RNG2
+       select CRYPTO_WORKQUEUE
+
 config CRYPTO_HASH
        tristate
 config CRYPTO_HASH
        tristate
+       select CRYPTO_HASH2
        select CRYPTO_ALGAPI
 
        select CRYPTO_ALGAPI
 
+config CRYPTO_HASH2
+       tristate
+       select CRYPTO_ALGAPI2
+
 config CRYPTO_RNG
        tristate
 config CRYPTO_RNG
        tristate
+       select CRYPTO_RNG2
        select CRYPTO_ALGAPI
 
        select CRYPTO_ALGAPI
 
+config CRYPTO_RNG2
+       tristate
+       select CRYPTO_ALGAPI2
+
+config CRYPTO_PCOMP
+       tristate
+       select CRYPTO_ALGAPI2
+
 config CRYPTO_MANAGER
        tristate "Cryptographic algorithm manager"
 config CRYPTO_MANAGER
        tristate "Cryptographic algorithm manager"
-       select CRYPTO_AEAD
-       select CRYPTO_HASH
-       select CRYPTO_BLKCIPHER
+       select CRYPTO_MANAGER2
        help
          Create default cryptographic template instantiations such as
          cbc(aes).
 
        help
          Create default cryptographic template instantiations such as
          cbc(aes).
 
+config CRYPTO_MANAGER2
+       def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
+       select CRYPTO_AEAD2
+       select CRYPTO_HASH2
+       select CRYPTO_BLKCIPHER2
+       select CRYPTO_PCOMP
+
 config CRYPTO_GF128MUL
        tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
        depends on EXPERIMENTAL
 config CRYPTO_GF128MUL
        tristate "GF(2^128) multiplication functions (EXPERIMENTAL)"
        depends on EXPERIMENTAL
@@ -73,14 +109,19 @@ config CRYPTO_NULL
        tristate "Null algorithms"
        select CRYPTO_ALGAPI
        select CRYPTO_BLKCIPHER
        tristate "Null algorithms"
        select CRYPTO_ALGAPI
        select CRYPTO_BLKCIPHER
+       select CRYPTO_HASH
        help
          These are 'Null' algorithms, used by IPsec, which do nothing.
 
        help
          These are 'Null' algorithms, used by IPsec, which do nothing.
 
+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
@@ -125,6 +166,7 @@ config CRYPTO_SEQIV
        tristate "Sequence Number IV Generator"
        select CRYPTO_AEAD
        select CRYPTO_BLKCIPHER
        tristate "Sequence Number IV Generator"
        select CRYPTO_AEAD
        select CRYPTO_BLKCIPHER
+       select CRYPTO_RNG
        help
          This IV generator generates an IV based on a sequence number by
          xoring it with a salt.  This algorithm is mainly useful for CTR
        help
          This IV generator generates an IV based on a sequence number by
          xoring it with a salt.  This algorithm is mainly useful for CTR
@@ -200,6 +242,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
@@ -226,12 +273,10 @@ comment "Digest"
 config CRYPTO_CRC32C
        tristate "CRC32c CRC algorithm"
        select CRYPTO_HASH
 config CRYPTO_CRC32C
        tristate "CRC32c CRC algorithm"
        select CRYPTO_HASH
-       select LIBCRC32C
        help
          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
          by iSCSI for header and data digests and by others.
        help
          Castagnoli, et al Cyclic Redundancy-Check Algorithm.  Used
          by iSCSI for header and data digests and by others.
-         See Castagnoli93.  This implementation uses lib/libcrc32c.
-         Module will be crc32c.
+         See Castagnoli93.  Module will be crc32c.
 
 config CRYPTO_CRC32C_INTEL
        tristate "CRC32c INTEL hardware acceleration"
 
 config CRYPTO_CRC32C_INTEL
        tristate "CRC32c INTEL hardware acceleration"
@@ -247,19 +292,19 @@ config CRYPTO_CRC32C_INTEL
 
 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
@@ -268,7 +313,7 @@ config CRYPTO_MICHAEL_MIC
 
 config CRYPTO_RMD128
        tristate "RIPEMD-128 digest algorithm"
 
 config CRYPTO_RMD128
        tristate "RIPEMD-128 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          RIPEMD-128 (ISO/IEC 10118-3:2004).
 
        help
          RIPEMD-128 (ISO/IEC 10118-3:2004).
 
@@ -281,7 +326,7 @@ config CRYPTO_RMD128
 
 config CRYPTO_RMD160
        tristate "RIPEMD-160 digest algorithm"
 
 config CRYPTO_RMD160
        tristate "RIPEMD-160 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          RIPEMD-160 (ISO/IEC 10118-3:2004).
 
        help
          RIPEMD-160 (ISO/IEC 10118-3:2004).
 
@@ -298,7 +343,7 @@ config CRYPTO_RMD160
 
 config CRYPTO_RMD256
        tristate "RIPEMD-256 digest algorithm"
 
 config CRYPTO_RMD256
        tristate "RIPEMD-256 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          RIPEMD-256 is an optional extension of RIPEMD-128 with a
          256 bit hash. It is intended for applications that require
        help
          RIPEMD-256 is an optional extension of RIPEMD-128 with a
          256 bit hash. It is intended for applications that require
@@ -310,7 +355,7 @@ config CRYPTO_RMD256
 
 config CRYPTO_RMD320
        tristate "RIPEMD-320 digest algorithm"
 
 config CRYPTO_RMD320
        tristate "RIPEMD-320 digest algorithm"
-       select CRYPTO_ALGAPI
+       select CRYPTO_HASH
        help
          RIPEMD-320 is an optional extension of RIPEMD-160 with a
          320 bit hash. It is intended for applications that require
        help
          RIPEMD-320 is an optional extension of RIPEMD-160 with a
          320 bit hash. It is intended for applications that require
@@ -322,13 +367,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).
 
@@ -340,7 +385,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).
 
@@ -352,7 +397,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
 
@@ -365,7 +410,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
 
@@ -441,6 +486,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
@@ -685,6 +760,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
@@ -699,7 +783,6 @@ config CRYPTO_ANSI_CPRNG
        tristate "Pseudo Random Number Generation for Cryptographic modules"
        select CRYPTO_AES
        select CRYPTO_RNG
        tristate "Pseudo Random Number Generation for Cryptographic modules"
        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