Merge tag 'v5.20-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[platform/kernel/linux-rpi.git] / crypto / Kconfig
index 7b81685..bb427a8 100644 (file)
@@ -33,6 +33,27 @@ config CRYPTO_FIPS
          certification.  You should say no unless you know what
          this is.
 
+config CRYPTO_FIPS_NAME
+       string "FIPS Module Name"
+       default "Linux Kernel Cryptographic API"
+       depends on CRYPTO_FIPS
+       help
+         This option sets the FIPS Module name reported by the Crypto API via
+         the /proc/sys/crypto/fips_name file.
+
+config CRYPTO_FIPS_CUSTOM_VERSION
+       bool "Use Custom FIPS Module Version"
+       depends on CRYPTO_FIPS
+       default n
+
+config CRYPTO_FIPS_VERSION
+       string "FIPS Module Version"
+       default "(none)"
+       depends on CRYPTO_FIPS_CUSTOM_VERSION
+       help
+         This option provides the ability to override the FIPS Module Version.
+         By default the KERNELRELEASE value is used.
+
 config CRYPTO_ALGAPI
        tristate
        select CRYPTO_ALGAPI2
@@ -461,6 +482,15 @@ config CRYPTO_PCBC
          PCBC: Propagating Cipher Block Chaining mode
          This block cipher algorithm is required for RxRPC.
 
+config CRYPTO_XCTR
+       tristate
+       select CRYPTO_SKCIPHER
+       select CRYPTO_MANAGER
+       help
+         XCTR: XOR Counter mode. This blockcipher mode is a variant of CTR mode
+         using XORs and little-endian addition rather than big-endian arithmetic.
+         XCTR mode is used to implement HCTR2.
+
 config CRYPTO_XTS
        tristate "XTS support"
        select CRYPTO_SKCIPHER
@@ -524,6 +554,17 @@ config CRYPTO_ADIANTUM
 
          If unsure, say N.
 
+config CRYPTO_HCTR2
+       tristate "HCTR2 support"
+       select CRYPTO_XCTR
+       select CRYPTO_POLYVAL
+       select CRYPTO_MANAGER
+       help
+         HCTR2 is a length-preserving encryption mode for storage encryption that
+         is efficient on processors with instructions to accelerate AES and
+         carryless multiplication, e.g. x86 processors with AES-NI and CLMUL, and
+         ARM processors with the ARMv8 crypto extensions.
+
 config CRYPTO_ESSIV
        tristate "ESSIV support for block encryption"
        select CRYPTO_AUTHENC
@@ -704,26 +745,8 @@ config CRYPTO_BLAKE2B
 
          See https://blake2.net for further information.
 
-config CRYPTO_BLAKE2S
-       tristate "BLAKE2s digest algorithm"
-       select CRYPTO_LIB_BLAKE2S_GENERIC
-       select CRYPTO_HASH
-       help
-         Implementation of cryptographic hash function BLAKE2s
-         optimized for 8-32bit platforms and can produce digests of any size
-         between 1 to 32.  The keyed hash is also implemented.
-
-         This module provides the following algorithms:
-
-         - blake2s-128
-         - blake2s-160
-         - blake2s-224
-         - blake2s-256
-
-         See https://blake2.net for further information.
-
 config CRYPTO_BLAKE2S_X86
-       tristate "BLAKE2s digest algorithm (x86 accelerated version)"
+       bool "BLAKE2s digest algorithm (x86 accelerated version)"
        depends on X86 && 64BIT
        select CRYPTO_LIB_BLAKE2S_GENERIC
        select CRYPTO_ARCH_HAVE_LIB_BLAKE2S
@@ -777,6 +800,23 @@ config CRYPTO_GHASH
          GHASH is the hash function used in GCM (Galois/Counter Mode).
          It is not a general-purpose cryptographic hash function.
 
+config CRYPTO_POLYVAL
+       tristate
+       select CRYPTO_GF128MUL
+       select CRYPTO_HASH
+       help
+         POLYVAL is the hash function used in HCTR2.  It is not a general-purpose
+         cryptographic hash function.
+
+config CRYPTO_POLYVAL_CLMUL_NI
+       tristate "POLYVAL hash function (CLMUL-NI accelerated)"
+       depends on X86 && 64BIT
+       select CRYPTO_POLYVAL
+       help
+         This is the x86_64 CLMUL-NI accelerated implementation of POLYVAL. It is
+         used to efficiently implement HCTR2 on x86-64 processors that support
+         carry-less multiplication instructions.
+
 config CRYPTO_POLY1305
        tristate "Poly1305 authenticator algorithm"
        select CRYPTO_HASH
@@ -861,7 +901,7 @@ config CRYPTO_RMD160
 
          RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
          to be used as a secure replacement for the 128-bit hash functions
-         MD4, MD5 and it's predecessor RIPEMD
+         MD4, MD5 and its predecessor RIPEMD
          (not to be confused with RIPEMD-128).
 
          It's speed is comparable to SHA1 and there are no known attacks
@@ -873,6 +913,7 @@ config CRYPTO_RMD160
 config CRYPTO_SHA1
        tristate "SHA1 digest algorithm"
        select CRYPTO_HASH
+       select CRYPTO_LIB_SHA1
        help
          SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
 
@@ -1214,7 +1255,7 @@ config CRYPTO_AES_NI_INTEL
          In addition to AES cipher algorithm support, the acceleration
          for some popular block cipher mode is supported too, including
          ECB, CBC, LRW, XTS. The 64 bit version has additional
-         acceleration for CTR.
+         acceleration for CTR and XCTR.
 
 config CRYPTO_AES_SPARC64
        tristate "AES cipher algorithms (SPARC64)"
@@ -1603,6 +1644,21 @@ config CRYPTO_SEED
          See also:
          <http://www.kisa.or.kr/kisa/seed/jsp/seed_eng.jsp>
 
+config CRYPTO_ARIA
+       tristate "ARIA cipher algorithm"
+       select CRYPTO_ALGAPI
+       help
+         ARIA cipher algorithm (RFC5794).
+
+         ARIA is a standard encryption algorithm of the Republic of Korea.
+         The ARIA specifies three key sizes and rounds.
+         128-bit: 12 rounds.
+         192-bit: 14 rounds.
+         256-bit: 16 rounds.
+
+         See also:
+         <https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do>
+
 config CRYPTO_SERPENT
        tristate "Serpent cipher algorithm"
        select CRYPTO_ALGAPI