~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/crypto/Kconfig

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /crypto/Kconfig (Version linux-6.12-rc7) and /crypto/Kconfig (Version linux-6.1.116)


  1 # SPDX-License-Identifier: GPL-2.0                  1 # SPDX-License-Identifier: GPL-2.0
  2 #                                                   2 #
  3 # Generic algorithms support                        3 # Generic algorithms support
  4 #                                                   4 #
  5 config XOR_BLOCKS                                   5 config XOR_BLOCKS
  6         tristate                                    6         tristate
  7                                                     7 
  8 #                                                   8 #
  9 # async_tx api: hardware offloaded memory tran      9 # async_tx api: hardware offloaded memory transfer/transform support
 10 #                                                  10 #
 11 source "crypto/async_tx/Kconfig"                   11 source "crypto/async_tx/Kconfig"
 12                                                    12 
 13 #                                                  13 #
 14 # Cryptographic API Configuration                  14 # Cryptographic API Configuration
 15 #                                                  15 #
 16 menuconfig CRYPTO                                  16 menuconfig CRYPTO
 17         tristate "Cryptographic API"               17         tristate "Cryptographic API"
 18         select CRYPTO_LIB_UTILS                    18         select CRYPTO_LIB_UTILS
 19         help                                       19         help
 20           This option provides the core Crypto     20           This option provides the core Cryptographic API.
 21                                                    21 
 22 if CRYPTO                                          22 if CRYPTO
 23                                                    23 
 24 menu "Crypto core or helper"                       24 menu "Crypto core or helper"
 25                                                    25 
 26 config CRYPTO_FIPS                                 26 config CRYPTO_FIPS
 27         bool "FIPS 200 compliance"                 27         bool "FIPS 200 compliance"
 28         depends on (CRYPTO_ANSI_CPRNG || CRYPT     28         depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS
 29         depends on (MODULE_SIG || !MODULES)        29         depends on (MODULE_SIG || !MODULES)
 30         help                                       30         help
 31           This option enables the fips boot op     31           This option enables the fips boot option which is
 32           required if you want the system to o     32           required if you want the system to operate in a FIPS 200
 33           certification.  You should say no un     33           certification.  You should say no unless you know what
 34           this is.                                 34           this is.
 35                                                    35 
 36 config CRYPTO_FIPS_NAME                            36 config CRYPTO_FIPS_NAME
 37         string "FIPS Module Name"                  37         string "FIPS Module Name"
 38         default "Linux Kernel Cryptographic AP     38         default "Linux Kernel Cryptographic API"
 39         depends on CRYPTO_FIPS                     39         depends on CRYPTO_FIPS
 40         help                                       40         help
 41           This option sets the FIPS Module nam     41           This option sets the FIPS Module name reported by the Crypto API via
 42           the /proc/sys/crypto/fips_name file.     42           the /proc/sys/crypto/fips_name file.
 43                                                    43 
 44 config CRYPTO_FIPS_CUSTOM_VERSION                  44 config CRYPTO_FIPS_CUSTOM_VERSION
 45         bool "Use Custom FIPS Module Version"      45         bool "Use Custom FIPS Module Version"
 46         depends on CRYPTO_FIPS                     46         depends on CRYPTO_FIPS
 47         default n                                  47         default n
 48                                                    48 
 49 config CRYPTO_FIPS_VERSION                         49 config CRYPTO_FIPS_VERSION
 50         string "FIPS Module Version"               50         string "FIPS Module Version"
 51         default "(none)"                           51         default "(none)"
 52         depends on CRYPTO_FIPS_CUSTOM_VERSION      52         depends on CRYPTO_FIPS_CUSTOM_VERSION
 53         help                                       53         help
 54           This option provides the ability to      54           This option provides the ability to override the FIPS Module Version.
 55           By default the KERNELRELEASE value i     55           By default the KERNELRELEASE value is used.
 56                                                    56 
 57 config CRYPTO_ALGAPI                               57 config CRYPTO_ALGAPI
 58         tristate                                   58         tristate
 59         select CRYPTO_ALGAPI2                      59         select CRYPTO_ALGAPI2
 60         help                                       60         help
 61           This option provides the API for cry     61           This option provides the API for cryptographic algorithms.
 62                                                    62 
 63 config CRYPTO_ALGAPI2                              63 config CRYPTO_ALGAPI2
 64         tristate                                   64         tristate
 65                                                    65 
 66 config CRYPTO_AEAD                                 66 config CRYPTO_AEAD
 67         tristate                                   67         tristate
 68         select CRYPTO_AEAD2                        68         select CRYPTO_AEAD2
 69         select CRYPTO_ALGAPI                       69         select CRYPTO_ALGAPI
 70                                                    70 
 71 config CRYPTO_AEAD2                                71 config CRYPTO_AEAD2
 72         tristate                                   72         tristate
 73         select CRYPTO_ALGAPI2                      73         select CRYPTO_ALGAPI2
 74                                                !!  74         select CRYPTO_NULL2
 75 config CRYPTO_SIG                              !!  75         select CRYPTO_RNG2
 76         tristate                               << 
 77         select CRYPTO_SIG2                     << 
 78         select CRYPTO_ALGAPI                   << 
 79                                                << 
 80 config CRYPTO_SIG2                             << 
 81         tristate                               << 
 82         select CRYPTO_ALGAPI2                  << 
 83                                                    76 
 84 config CRYPTO_SKCIPHER                             77 config CRYPTO_SKCIPHER
 85         tristate                                   78         tristate
 86         select CRYPTO_SKCIPHER2                    79         select CRYPTO_SKCIPHER2
 87         select CRYPTO_ALGAPI                       80         select CRYPTO_ALGAPI
 88         select CRYPTO_ECB                      << 
 89                                                    81 
 90 config CRYPTO_SKCIPHER2                            82 config CRYPTO_SKCIPHER2
 91         tristate                                   83         tristate
 92         select CRYPTO_ALGAPI2                      84         select CRYPTO_ALGAPI2
                                                   >>  85         select CRYPTO_RNG2
 93                                                    86 
 94 config CRYPTO_HASH                                 87 config CRYPTO_HASH
 95         tristate                                   88         tristate
 96         select CRYPTO_HASH2                        89         select CRYPTO_HASH2
 97         select CRYPTO_ALGAPI                       90         select CRYPTO_ALGAPI
 98                                                    91 
 99 config CRYPTO_HASH2                                92 config CRYPTO_HASH2
100         tristate                                   93         tristate
101         select CRYPTO_ALGAPI2                      94         select CRYPTO_ALGAPI2
102                                                    95 
103 config CRYPTO_RNG                                  96 config CRYPTO_RNG
104         tristate                                   97         tristate
105         select CRYPTO_RNG2                         98         select CRYPTO_RNG2
106         select CRYPTO_ALGAPI                       99         select CRYPTO_ALGAPI
107                                                   100 
108 config CRYPTO_RNG2                                101 config CRYPTO_RNG2
109         tristate                                  102         tristate
110         select CRYPTO_ALGAPI2                     103         select CRYPTO_ALGAPI2
111                                                   104 
112 config CRYPTO_RNG_DEFAULT                         105 config CRYPTO_RNG_DEFAULT
113         tristate                                  106         tristate
114         select CRYPTO_DRBG_MENU                   107         select CRYPTO_DRBG_MENU
115                                                   108 
116 config CRYPTO_AKCIPHER2                           109 config CRYPTO_AKCIPHER2
117         tristate                                  110         tristate
118         select CRYPTO_ALGAPI2                     111         select CRYPTO_ALGAPI2
119                                                   112 
120 config CRYPTO_AKCIPHER                            113 config CRYPTO_AKCIPHER
121         tristate                                  114         tristate
122         select CRYPTO_AKCIPHER2                   115         select CRYPTO_AKCIPHER2
123         select CRYPTO_ALGAPI                      116         select CRYPTO_ALGAPI
124                                                   117 
125 config CRYPTO_KPP2                                118 config CRYPTO_KPP2
126         tristate                                  119         tristate
127         select CRYPTO_ALGAPI2                     120         select CRYPTO_ALGAPI2
128                                                   121 
129 config CRYPTO_KPP                                 122 config CRYPTO_KPP
130         tristate                                  123         tristate
131         select CRYPTO_ALGAPI                      124         select CRYPTO_ALGAPI
132         select CRYPTO_KPP2                        125         select CRYPTO_KPP2
133                                                   126 
134 config CRYPTO_ACOMP2                              127 config CRYPTO_ACOMP2
135         tristate                                  128         tristate
136         select CRYPTO_ALGAPI2                     129         select CRYPTO_ALGAPI2
137         select SGL_ALLOC                          130         select SGL_ALLOC
138                                                   131 
139 config CRYPTO_ACOMP                               132 config CRYPTO_ACOMP
140         tristate                                  133         tristate
141         select CRYPTO_ALGAPI                      134         select CRYPTO_ALGAPI
142         select CRYPTO_ACOMP2                      135         select CRYPTO_ACOMP2
143                                                   136 
144 config CRYPTO_MANAGER                             137 config CRYPTO_MANAGER
145         tristate "Cryptographic algorithm mana    138         tristate "Cryptographic algorithm manager"
146         select CRYPTO_MANAGER2                    139         select CRYPTO_MANAGER2
147         help                                      140         help
148           Create default cryptographic templat    141           Create default cryptographic template instantiations such as
149           cbc(aes).                               142           cbc(aes).
150                                                   143 
151 config CRYPTO_MANAGER2                            144 config CRYPTO_MANAGER2
152         def_tristate CRYPTO_MANAGER || (CRYPTO    145         def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y)
153         select CRYPTO_ACOMP2                   << 
154         select CRYPTO_AEAD2                       146         select CRYPTO_AEAD2
155         select CRYPTO_AKCIPHER2                << 
156         select CRYPTO_SIG2                     << 
157         select CRYPTO_HASH2                       147         select CRYPTO_HASH2
158         select CRYPTO_KPP2                     << 
159         select CRYPTO_RNG2                     << 
160         select CRYPTO_SKCIPHER2                   148         select CRYPTO_SKCIPHER2
                                                   >> 149         select CRYPTO_AKCIPHER2
                                                   >> 150         select CRYPTO_KPP2
                                                   >> 151         select CRYPTO_ACOMP2
161                                                   152 
162 config CRYPTO_USER                                153 config CRYPTO_USER
163         tristate "Userspace cryptographic algo    154         tristate "Userspace cryptographic algorithm configuration"
164         depends on NET                            155         depends on NET
165         select CRYPTO_MANAGER                     156         select CRYPTO_MANAGER
166         help                                      157         help
167           Userspace configuration for cryptogr    158           Userspace configuration for cryptographic instantiations such as
168           cbc(aes).                               159           cbc(aes).
169                                                   160 
170 config CRYPTO_MANAGER_DISABLE_TESTS               161 config CRYPTO_MANAGER_DISABLE_TESTS
171         bool "Disable run-time self tests"        162         bool "Disable run-time self tests"
172         default y                                 163         default y
173         help                                      164         help
174           Disable run-time self tests that nor    165           Disable run-time self tests that normally take place at
175           algorithm registration.                 166           algorithm registration.
176                                                   167 
177 config CRYPTO_MANAGER_EXTRA_TESTS                 168 config CRYPTO_MANAGER_EXTRA_TESTS
178         bool "Enable extra run-time crypto sel    169         bool "Enable extra run-time crypto self tests"
179         depends on DEBUG_KERNEL && !CRYPTO_MAN    170         depends on DEBUG_KERNEL && !CRYPTO_MANAGER_DISABLE_TESTS && CRYPTO_MANAGER
180         help                                      171         help
181           Enable extra run-time self tests of     172           Enable extra run-time self tests of registered crypto algorithms,
182           including randomized fuzz tests.        173           including randomized fuzz tests.
183                                                   174 
184           This is intended for developer use o    175           This is intended for developer use only, as these tests take much
185           longer to run than the normal self t    176           longer to run than the normal self tests.
186                                                   177 
                                                   >> 178 config CRYPTO_GF128MUL
                                                   >> 179         tristate
                                                   >> 180 
187 config CRYPTO_NULL                                181 config CRYPTO_NULL
188         tristate "Null algorithms"                182         tristate "Null algorithms"
189         select CRYPTO_NULL2                       183         select CRYPTO_NULL2
190         help                                      184         help
191           These are 'Null' algorithms, used by    185           These are 'Null' algorithms, used by IPsec, which do nothing.
192                                                   186 
193 config CRYPTO_NULL2                               187 config CRYPTO_NULL2
194         tristate                                  188         tristate
195         select CRYPTO_ALGAPI2                     189         select CRYPTO_ALGAPI2
196         select CRYPTO_SKCIPHER2                   190         select CRYPTO_SKCIPHER2
197         select CRYPTO_HASH2                       191         select CRYPTO_HASH2
198                                                   192 
199 config CRYPTO_PCRYPT                              193 config CRYPTO_PCRYPT
200         tristate "Parallel crypto engine"         194         tristate "Parallel crypto engine"
201         depends on SMP                            195         depends on SMP
202         select PADATA                             196         select PADATA
203         select CRYPTO_MANAGER                     197         select CRYPTO_MANAGER
204         select CRYPTO_AEAD                        198         select CRYPTO_AEAD
205         help                                      199         help
206           This converts an arbitrary crypto al    200           This converts an arbitrary crypto algorithm into a parallel
207           algorithm that executes in kernel th    201           algorithm that executes in kernel threads.
208                                                   202 
209 config CRYPTO_CRYPTD                              203 config CRYPTO_CRYPTD
210         tristate "Software async crypto daemon    204         tristate "Software async crypto daemon"
211         select CRYPTO_SKCIPHER                    205         select CRYPTO_SKCIPHER
212         select CRYPTO_HASH                        206         select CRYPTO_HASH
213         select CRYPTO_MANAGER                     207         select CRYPTO_MANAGER
214         help                                      208         help
215           This is a generic software asynchron    209           This is a generic software asynchronous crypto daemon that
216           converts an arbitrary synchronous so    210           converts an arbitrary synchronous software crypto algorithm
217           into an asynchronous algorithm that     211           into an asynchronous algorithm that executes in a kernel thread.
218                                                   212 
219 config CRYPTO_AUTHENC                             213 config CRYPTO_AUTHENC
220         tristate "Authenc support"                214         tristate "Authenc support"
221         select CRYPTO_AEAD                        215         select CRYPTO_AEAD
222         select CRYPTO_SKCIPHER                    216         select CRYPTO_SKCIPHER
223         select CRYPTO_MANAGER                     217         select CRYPTO_MANAGER
224         select CRYPTO_HASH                        218         select CRYPTO_HASH
225         select CRYPTO_NULL                        219         select CRYPTO_NULL
226         help                                      220         help
227           Authenc: Combined mode wrapper for I    221           Authenc: Combined mode wrapper for IPsec.
228                                                   222 
229           This is required for IPSec ESP (XFRM    223           This is required for IPSec ESP (XFRM_ESP).
230                                                   224 
231 config CRYPTO_TEST                                225 config CRYPTO_TEST
232         tristate "Testing module"                 226         tristate "Testing module"
233         depends on m || EXPERT                    227         depends on m || EXPERT
234         select CRYPTO_MANAGER                     228         select CRYPTO_MANAGER
235         help                                      229         help
236           Quick & dirty crypto test module.       230           Quick & dirty crypto test module.
237                                                   231 
238 config CRYPTO_SIMD                                232 config CRYPTO_SIMD
239         tristate                                  233         tristate
240         select CRYPTO_CRYPTD                      234         select CRYPTO_CRYPTD
241                                                   235 
242 config CRYPTO_ENGINE                              236 config CRYPTO_ENGINE
243         tristate                                  237         tristate
244                                                   238 
245 endmenu                                           239 endmenu
246                                                   240 
247 menu "Public-key cryptography"                    241 menu "Public-key cryptography"
248                                                   242 
249 config CRYPTO_RSA                                 243 config CRYPTO_RSA
250         tristate "RSA (Rivest-Shamir-Adleman)"    244         tristate "RSA (Rivest-Shamir-Adleman)"
251         select CRYPTO_AKCIPHER                    245         select CRYPTO_AKCIPHER
252         select CRYPTO_MANAGER                     246         select CRYPTO_MANAGER
253         select MPILIB                             247         select MPILIB
254         select ASN1                               248         select ASN1
255         help                                      249         help
256           RSA (Rivest-Shamir-Adleman) public k    250           RSA (Rivest-Shamir-Adleman) public key algorithm (RFC8017)
257                                                   251 
258 config CRYPTO_DH                                  252 config CRYPTO_DH
259         tristate "DH (Diffie-Hellman)"            253         tristate "DH (Diffie-Hellman)"
260         select CRYPTO_KPP                         254         select CRYPTO_KPP
261         select MPILIB                             255         select MPILIB
262         help                                      256         help
263           DH (Diffie-Hellman) key exchange alg    257           DH (Diffie-Hellman) key exchange algorithm
264                                                   258 
265 config CRYPTO_DH_RFC7919_GROUPS                   259 config CRYPTO_DH_RFC7919_GROUPS
266         bool "RFC 7919 FFDHE groups"              260         bool "RFC 7919 FFDHE groups"
267         depends on CRYPTO_DH                      261         depends on CRYPTO_DH
268         select CRYPTO_RNG_DEFAULT                 262         select CRYPTO_RNG_DEFAULT
269         help                                      263         help
270           FFDHE (Finite-Field-based Diffie-Hel    264           FFDHE (Finite-Field-based Diffie-Hellman Ephemeral) groups
271           defined in RFC7919.                     265           defined in RFC7919.
272                                                   266 
273           Support these finite-field groups in    267           Support these finite-field groups in DH key exchanges:
274           - ffdhe2048, ffdhe3072, ffdhe4096, f    268           - ffdhe2048, ffdhe3072, ffdhe4096, ffdhe6144, ffdhe8192
275                                                   269 
276           If unsure, say N.                       270           If unsure, say N.
277                                                   271 
278 config CRYPTO_ECC                                 272 config CRYPTO_ECC
279         tristate                                  273         tristate
280         select CRYPTO_RNG_DEFAULT                 274         select CRYPTO_RNG_DEFAULT
281                                                   275 
282 config CRYPTO_ECDH                                276 config CRYPTO_ECDH
283         tristate "ECDH (Elliptic Curve Diffie-    277         tristate "ECDH (Elliptic Curve Diffie-Hellman)"
284         select CRYPTO_ECC                         278         select CRYPTO_ECC
285         select CRYPTO_KPP                         279         select CRYPTO_KPP
286         help                                      280         help
287           ECDH (Elliptic Curve Diffie-Hellman)    281           ECDH (Elliptic Curve Diffie-Hellman) key exchange algorithm
288           using curves P-192, P-256, and P-384    282           using curves P-192, P-256, and P-384 (FIPS 186)
289                                                   283 
290 config CRYPTO_ECDSA                               284 config CRYPTO_ECDSA
291         tristate "ECDSA (Elliptic Curve Digita    285         tristate "ECDSA (Elliptic Curve Digital Signature Algorithm)"
292         select CRYPTO_ECC                         286         select CRYPTO_ECC
293         select CRYPTO_AKCIPHER                    287         select CRYPTO_AKCIPHER
294         select ASN1                               288         select ASN1
295         help                                      289         help
296           ECDSA (Elliptic Curve Digital Signat    290           ECDSA (Elliptic Curve Digital Signature Algorithm) (FIPS 186,
297           ISO/IEC 14888-3)                        291           ISO/IEC 14888-3)
298           using curves P-192, P-256, and P-384    292           using curves P-192, P-256, and P-384
299                                                   293 
300           Only signature verification is imple    294           Only signature verification is implemented.
301                                                   295 
302 config CRYPTO_ECRDSA                              296 config CRYPTO_ECRDSA
303         tristate "EC-RDSA (Elliptic Curve Russ    297         tristate "EC-RDSA (Elliptic Curve Russian Digital Signature Algorithm)"
304         select CRYPTO_ECC                         298         select CRYPTO_ECC
305         select CRYPTO_AKCIPHER                    299         select CRYPTO_AKCIPHER
306         select CRYPTO_STREEBOG                    300         select CRYPTO_STREEBOG
307         select OID_REGISTRY                       301         select OID_REGISTRY
308         select ASN1                               302         select ASN1
309         help                                      303         help
310           Elliptic Curve Russian Digital Signa    304           Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012,
311           RFC 7091, ISO/IEC 14888-3)              305           RFC 7091, ISO/IEC 14888-3)
312                                                   306 
313           One of the Russian cryptographic sta    307           One of the Russian cryptographic standard algorithms (called GOST
314           algorithms). Only signature verifica    308           algorithms). Only signature verification is implemented.
315                                                   309 
                                                   >> 310 config CRYPTO_SM2
                                                   >> 311         tristate "SM2 (ShangMi 2)"
                                                   >> 312         select CRYPTO_SM3
                                                   >> 313         select CRYPTO_AKCIPHER
                                                   >> 314         select CRYPTO_MANAGER
                                                   >> 315         select MPILIB
                                                   >> 316         select ASN1
                                                   >> 317         help
                                                   >> 318           SM2 (ShangMi 2) public key algorithm
                                                   >> 319 
                                                   >> 320           Published by State Encryption Management Bureau, China,
                                                   >> 321           as specified by OSCCA GM/T 0003.1-2012 -- 0003.5-2012.
                                                   >> 322 
                                                   >> 323           References:
                                                   >> 324           https://datatracker.ietf.org/doc/draft-shen-sm2-ecdsa/
                                                   >> 325           http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml
                                                   >> 326           http://www.gmbz.org.cn/main/bzlb.html
                                                   >> 327 
316 config CRYPTO_CURVE25519                          328 config CRYPTO_CURVE25519
317         tristate "Curve25519"                     329         tristate "Curve25519"
318         select CRYPTO_KPP                         330         select CRYPTO_KPP
319         select CRYPTO_LIB_CURVE25519_GENERIC      331         select CRYPTO_LIB_CURVE25519_GENERIC
320         help                                      332         help
321           Curve25519 elliptic curve (RFC7748)     333           Curve25519 elliptic curve (RFC7748)
322                                                   334 
323 endmenu                                           335 endmenu
324                                                   336 
325 menu "Block ciphers"                              337 menu "Block ciphers"
326                                                   338 
327 config CRYPTO_AES                                 339 config CRYPTO_AES
328         tristate "AES (Advanced Encryption Sta    340         tristate "AES (Advanced Encryption Standard)"
329         select CRYPTO_ALGAPI                      341         select CRYPTO_ALGAPI
330         select CRYPTO_LIB_AES                     342         select CRYPTO_LIB_AES
331         help                                      343         help
332           AES cipher algorithms (Rijndael)(FIP    344           AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
333                                                   345 
334           Rijndael appears to be consistently     346           Rijndael appears to be consistently a very good performer in
335           both hardware and software across a     347           both hardware and software across a wide range of computing
336           environments regardless of its use i    348           environments regardless of its use in feedback or non-feedback
337           modes. Its key setup time is excelle    349           modes. Its key setup time is excellent, and its key agility is
338           good. Rijndael's very low memory req    350           good. Rijndael's very low memory requirements make it very well
339           suited for restricted-space environm    351           suited for restricted-space environments, in which it also
340           demonstrates excellent performance.     352           demonstrates excellent performance. Rijndael's operations are
341           among the easiest to defend against     353           among the easiest to defend against power and timing attacks.
342                                                   354 
343           The AES specifies three key sizes: 1    355           The AES specifies three key sizes: 128, 192 and 256 bits
344                                                   356 
345 config CRYPTO_AES_TI                              357 config CRYPTO_AES_TI
346         tristate "AES (Advanced Encryption Sta    358         tristate "AES (Advanced Encryption Standard) (fixed time)"
347         select CRYPTO_ALGAPI                      359         select CRYPTO_ALGAPI
348         select CRYPTO_LIB_AES                     360         select CRYPTO_LIB_AES
349         help                                      361         help
350           AES cipher algorithms (Rijndael)(FIP    362           AES cipher algorithms (Rijndael)(FIPS-197, ISO/IEC 18033-3)
351                                                   363 
352           This is a generic implementation of     364           This is a generic implementation of AES that attempts to eliminate
353           data dependent latencies as much as     365           data dependent latencies as much as possible without affecting
354           performance too much. It is intended    366           performance too much. It is intended for use by the generic CCM
355           and GCM drivers, and other CTR or CM    367           and GCM drivers, and other CTR or CMAC/XCBC based modes that rely
356           solely on encryption (although decry    368           solely on encryption (although decryption is supported as well, but
357           with a more dramatic performance hit    369           with a more dramatic performance hit)
358                                                   370 
359           Instead of using 16 lookup tables of    371           Instead of using 16 lookup tables of 1 KB each, (8 for encryption and
360           8 for decryption), this implementati    372           8 for decryption), this implementation only uses just two S-boxes of
361           256 bytes each, and attempts to elim    373           256 bytes each, and attempts to eliminate data dependent latencies by
362           prefetching the entire table into th    374           prefetching the entire table into the cache at the start of each
363           block. Interrupts are also disabled     375           block. Interrupts are also disabled to avoid races where cachelines
364           are evicted when the CPU is interrup    376           are evicted when the CPU is interrupted to do something else.
365                                                   377 
366 config CRYPTO_ANUBIS                              378 config CRYPTO_ANUBIS
367         tristate "Anubis"                         379         tristate "Anubis"
368         depends on CRYPTO_USER_API_ENABLE_OBSO    380         depends on CRYPTO_USER_API_ENABLE_OBSOLETE
369         select CRYPTO_ALGAPI                      381         select CRYPTO_ALGAPI
370         help                                      382         help
371           Anubis cipher algorithm                 383           Anubis cipher algorithm
372                                                   384 
373           Anubis is a variable key length ciph    385           Anubis is a variable key length cipher which can use keys from
374           128 bits to 320 bits in length.  It     386           128 bits to 320 bits in length.  It was evaluated as a entrant
375           in the NESSIE competition.              387           in the NESSIE competition.
376                                                   388 
377           See https://web.archive.org/web/2016    389           See https://web.archive.org/web/20160606112246/http://www.larc.usp.br/~pbarreto/AnubisPage.html
378           for further information.                390           for further information.
379                                                   391 
380 config CRYPTO_ARIA                                392 config CRYPTO_ARIA
381         tristate "ARIA"                           393         tristate "ARIA"
382         select CRYPTO_ALGAPI                      394         select CRYPTO_ALGAPI
383         help                                      395         help
384           ARIA cipher algorithm (RFC5794)         396           ARIA cipher algorithm (RFC5794)
385                                                   397 
386           ARIA is a standard encryption algori    398           ARIA is a standard encryption algorithm of the Republic of Korea.
387           The ARIA specifies three key sizes a    399           The ARIA specifies three key sizes and rounds.
388           128-bit: 12 rounds.                     400           128-bit: 12 rounds.
389           192-bit: 14 rounds.                     401           192-bit: 14 rounds.
390           256-bit: 16 rounds.                     402           256-bit: 16 rounds.
391                                                   403 
392           See:                                    404           See:
393           https://seed.kisa.or.kr/kisa/algorit    405           https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do
394                                                   406 
395 config CRYPTO_BLOWFISH                            407 config CRYPTO_BLOWFISH
396         tristate "Blowfish"                       408         tristate "Blowfish"
397         select CRYPTO_ALGAPI                      409         select CRYPTO_ALGAPI
398         select CRYPTO_BLOWFISH_COMMON             410         select CRYPTO_BLOWFISH_COMMON
399         help                                      411         help
400           Blowfish cipher algorithm, by Bruce     412           Blowfish cipher algorithm, by Bruce Schneier
401                                                   413 
402           This is a variable key length cipher    414           This is a variable key length cipher which can use keys from 32
403           bits to 448 bits in length.  It's fa    415           bits to 448 bits in length.  It's fast, simple and specifically
404           designed for use on "large microproc    416           designed for use on "large microprocessors".
405                                                   417 
406           See https://www.schneier.com/blowfis    418           See https://www.schneier.com/blowfish.html for further information.
407                                                   419 
408 config CRYPTO_BLOWFISH_COMMON                     420 config CRYPTO_BLOWFISH_COMMON
409         tristate                                  421         tristate
410         help                                      422         help
411           Common parts of the Blowfish cipher     423           Common parts of the Blowfish cipher algorithm shared by the
412           generic c and the assembler implemen    424           generic c and the assembler implementations.
413                                                   425 
414 config CRYPTO_CAMELLIA                            426 config CRYPTO_CAMELLIA
415         tristate "Camellia"                       427         tristate "Camellia"
416         select CRYPTO_ALGAPI                      428         select CRYPTO_ALGAPI
417         help                                      429         help
418           Camellia cipher algorithms (ISO/IEC     430           Camellia cipher algorithms (ISO/IEC 18033-3)
419                                                   431 
420           Camellia is a symmetric key block ci    432           Camellia is a symmetric key block cipher developed jointly
421           at NTT and Mitsubishi Electric Corpo    433           at NTT and Mitsubishi Electric Corporation.
422                                                   434 
423           The Camellia specifies three key siz    435           The Camellia specifies three key sizes: 128, 192 and 256 bits.
424                                                   436 
425           See https://info.isl.ntt.co.jp/crypt    437           See https://info.isl.ntt.co.jp/crypt/eng/camellia/ for further information.
426                                                   438 
427 config CRYPTO_CAST_COMMON                         439 config CRYPTO_CAST_COMMON
428         tristate                                  440         tristate
429         help                                      441         help
430           Common parts of the CAST cipher algo    442           Common parts of the CAST cipher algorithms shared by the
431           generic c and the assembler implemen    443           generic c and the assembler implementations.
432                                                   444 
433 config CRYPTO_CAST5                               445 config CRYPTO_CAST5
434         tristate "CAST5 (CAST-128)"               446         tristate "CAST5 (CAST-128)"
435         select CRYPTO_ALGAPI                      447         select CRYPTO_ALGAPI
436         select CRYPTO_CAST_COMMON                 448         select CRYPTO_CAST_COMMON
437         help                                      449         help
438           CAST5 (CAST-128) cipher algorithm (R    450           CAST5 (CAST-128) cipher algorithm (RFC2144, ISO/IEC 18033-3)
439                                                   451 
440 config CRYPTO_CAST6                               452 config CRYPTO_CAST6
441         tristate "CAST6 (CAST-256)"               453         tristate "CAST6 (CAST-256)"
442         select CRYPTO_ALGAPI                      454         select CRYPTO_ALGAPI
443         select CRYPTO_CAST_COMMON                 455         select CRYPTO_CAST_COMMON
444         help                                      456         help
445           CAST6 (CAST-256) encryption algorith    457           CAST6 (CAST-256) encryption algorithm (RFC2612)
446                                                   458 
447 config CRYPTO_DES                                 459 config CRYPTO_DES
448         tristate "DES and Triple DES EDE"         460         tristate "DES and Triple DES EDE"
449         select CRYPTO_ALGAPI                      461         select CRYPTO_ALGAPI
450         select CRYPTO_LIB_DES                     462         select CRYPTO_LIB_DES
451         help                                      463         help
452           DES (Data Encryption Standard)(FIPS     464           DES (Data Encryption Standard)(FIPS 46-2, ISO/IEC 18033-3) and
453           Triple DES EDE (Encrypt/Decrypt/Encr    465           Triple DES EDE (Encrypt/Decrypt/Encrypt) (FIPS 46-3, ISO/IEC 18033-3)
454           cipher algorithms                       466           cipher algorithms
455                                                   467 
456 config CRYPTO_FCRYPT                              468 config CRYPTO_FCRYPT
457         tristate "FCrypt"                         469         tristate "FCrypt"
458         select CRYPTO_ALGAPI                      470         select CRYPTO_ALGAPI
459         select CRYPTO_SKCIPHER                    471         select CRYPTO_SKCIPHER
460         help                                      472         help
461           FCrypt algorithm used by RxRPC          473           FCrypt algorithm used by RxRPC
462                                                   474 
463           See https://ota.polyonymo.us/fcrypt-    475           See https://ota.polyonymo.us/fcrypt-paper.txt
464                                                   476 
465 config CRYPTO_KHAZAD                              477 config CRYPTO_KHAZAD
466         tristate "Khazad"                         478         tristate "Khazad"
467         depends on CRYPTO_USER_API_ENABLE_OBSO    479         depends on CRYPTO_USER_API_ENABLE_OBSOLETE
468         select CRYPTO_ALGAPI                      480         select CRYPTO_ALGAPI
469         help                                      481         help
470           Khazad cipher algorithm                 482           Khazad cipher algorithm
471                                                   483 
472           Khazad was a finalist in the initial    484           Khazad was a finalist in the initial NESSIE competition.  It is
473           an algorithm optimized for 64-bit pr    485           an algorithm optimized for 64-bit processors with good performance
474           on 32-bit processors.  Khazad uses a    486           on 32-bit processors.  Khazad uses an 128 bit key size.
475                                                   487 
476           See https://web.archive.org/web/2017    488           See https://web.archive.org/web/20171011071731/http://www.larc.usp.br/~pbarreto/KhazadPage.html
477           for further information.                489           for further information.
478                                                   490 
479 config CRYPTO_SEED                                491 config CRYPTO_SEED
480         tristate "SEED"                           492         tristate "SEED"
481         depends on CRYPTO_USER_API_ENABLE_OBSO    493         depends on CRYPTO_USER_API_ENABLE_OBSOLETE
482         select CRYPTO_ALGAPI                      494         select CRYPTO_ALGAPI
483         help                                      495         help
484           SEED cipher algorithm (RFC4269, ISO/    496           SEED cipher algorithm (RFC4269, ISO/IEC 18033-3)
485                                                   497 
486           SEED is a 128-bit symmetric key bloc    498           SEED is a 128-bit symmetric key block cipher that has been
487           developed by KISA (Korea Information    499           developed by KISA (Korea Information Security Agency) as a
488           national standard encryption algorit    500           national standard encryption algorithm of the Republic of Korea.
489           It is a 16 round block cipher with t    501           It is a 16 round block cipher with the key size of 128 bit.
490                                                   502 
491           See https://seed.kisa.or.kr/kisa/alg    503           See https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
492           for further information.                504           for further information.
493                                                   505 
494 config CRYPTO_SERPENT                             506 config CRYPTO_SERPENT
495         tristate "Serpent"                        507         tristate "Serpent"
496         select CRYPTO_ALGAPI                      508         select CRYPTO_ALGAPI
497         help                                      509         help
498           Serpent cipher algorithm, by Anderso    510           Serpent cipher algorithm, by Anderson, Biham & Knudsen
499                                                   511 
500           Keys are allowed to be from 0 to 256    512           Keys are allowed to be from 0 to 256 bits in length, in steps
501           of 8 bits.                              513           of 8 bits.
502                                                   514 
503           See https://www.cl.cam.ac.uk/~rja14/    515           See https://www.cl.cam.ac.uk/~rja14/serpent.html for further information.
504                                                   516 
505 config CRYPTO_SM4                                 517 config CRYPTO_SM4
506         tristate                                  518         tristate
507                                                   519 
508 config CRYPTO_SM4_GENERIC                         520 config CRYPTO_SM4_GENERIC
509         tristate "SM4 (ShangMi 4)"                521         tristate "SM4 (ShangMi 4)"
510         select CRYPTO_ALGAPI                      522         select CRYPTO_ALGAPI
511         select CRYPTO_SM4                         523         select CRYPTO_SM4
512         help                                      524         help
513           SM4 cipher algorithms (OSCCA GB/T 32    525           SM4 cipher algorithms (OSCCA GB/T 32907-2016,
514           ISO/IEC 18033-3:2010/Amd 1:2021)        526           ISO/IEC 18033-3:2010/Amd 1:2021)
515                                                   527 
516           SM4 (GBT.32907-2016) is a cryptograp    528           SM4 (GBT.32907-2016) is a cryptographic standard issued by the
517           Organization of State Commercial Adm    529           Organization of State Commercial Administration of China (OSCCA)
518           as an authorized cryptographic algor    530           as an authorized cryptographic algorithms for the use within China.
519                                                   531 
520           SMS4 was originally created for use     532           SMS4 was originally created for use in protecting wireless
521           networks, and is mandated in the Chi    533           networks, and is mandated in the Chinese National Standard for
522           Wireless LAN WAPI (Wired Authenticat    534           Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
523           (GB.15629.11-2003).                     535           (GB.15629.11-2003).
524                                                   536 
525           The latest SM4 standard (GBT.32907-2    537           The latest SM4 standard (GBT.32907-2016) was proposed by OSCCA and
526           standardized through TC 260 of the S    538           standardized through TC 260 of the Standardization Administration
527           of the People's Republic of China (S    539           of the People's Republic of China (SAC).
528                                                   540 
529           The input, output, and key of SMS4 a    541           The input, output, and key of SMS4 are each 128 bits.
530                                                   542 
531           See https://eprint.iacr.org/2008/329    543           See https://eprint.iacr.org/2008/329.pdf for further information.
532                                                   544 
533           If unsure, say N.                       545           If unsure, say N.
534                                                   546 
535 config CRYPTO_TEA                                 547 config CRYPTO_TEA
536         tristate "TEA, XTEA and XETA"             548         tristate "TEA, XTEA and XETA"
537         depends on CRYPTO_USER_API_ENABLE_OBSO    549         depends on CRYPTO_USER_API_ENABLE_OBSOLETE
538         select CRYPTO_ALGAPI                      550         select CRYPTO_ALGAPI
539         help                                      551         help
540           TEA (Tiny Encryption Algorithm) ciph    552           TEA (Tiny Encryption Algorithm) cipher algorithms
541                                                   553 
542           Tiny Encryption Algorithm is a simpl    554           Tiny Encryption Algorithm is a simple cipher that uses
543           many rounds for security.  It is ver    555           many rounds for security.  It is very fast and uses
544           little memory.                          556           little memory.
545                                                   557 
546           Xtendend Tiny Encryption Algorithm i    558           Xtendend Tiny Encryption Algorithm is a modification to
547           the TEA algorithm to address a poten    559           the TEA algorithm to address a potential key weakness
548           in the TEA algorithm.                   560           in the TEA algorithm.
549                                                   561 
550           Xtendend Encryption Tiny Algorithm i    562           Xtendend Encryption Tiny Algorithm is a mis-implementation
551           of the XTEA algorithm for compatibil    563           of the XTEA algorithm for compatibility purposes.
552                                                   564 
553 config CRYPTO_TWOFISH                             565 config CRYPTO_TWOFISH
554         tristate "Twofish"                        566         tristate "Twofish"
555         select CRYPTO_ALGAPI                      567         select CRYPTO_ALGAPI
556         select CRYPTO_TWOFISH_COMMON              568         select CRYPTO_TWOFISH_COMMON
557         help                                      569         help
558           Twofish cipher algorithm                570           Twofish cipher algorithm
559                                                   571 
560           Twofish was submitted as an AES (Adv    572           Twofish was submitted as an AES (Advanced Encryption Standard)
561           candidate cipher by researchers at C    573           candidate cipher by researchers at CounterPane Systems.  It is a
562           16 round block cipher supporting key    574           16 round block cipher supporting key sizes of 128, 192, and 256
563           bits.                                   575           bits.
564                                                   576 
565           See https://www.schneier.com/twofish    577           See https://www.schneier.com/twofish.html for further information.
566                                                   578 
567 config CRYPTO_TWOFISH_COMMON                      579 config CRYPTO_TWOFISH_COMMON
568         tristate                                  580         tristate
569         help                                      581         help
570           Common parts of the Twofish cipher a    582           Common parts of the Twofish cipher algorithm shared by the
571           generic c and the assembler implemen    583           generic c and the assembler implementations.
572                                                   584 
573 endmenu                                           585 endmenu
574                                                   586 
575 menu "Length-preserving ciphers and modes"        587 menu "Length-preserving ciphers and modes"
576                                                   588 
577 config CRYPTO_ADIANTUM                            589 config CRYPTO_ADIANTUM
578         tristate "Adiantum"                       590         tristate "Adiantum"
579         select CRYPTO_CHACHA20                    591         select CRYPTO_CHACHA20
580         select CRYPTO_LIB_POLY1305_GENERIC        592         select CRYPTO_LIB_POLY1305_GENERIC
581         select CRYPTO_NHPOLY1305                  593         select CRYPTO_NHPOLY1305
582         select CRYPTO_MANAGER                     594         select CRYPTO_MANAGER
583         help                                      595         help
584           Adiantum tweakable, length-preservin    596           Adiantum tweakable, length-preserving encryption mode
585                                                   597 
586           Designed for fast and secure disk en    598           Designed for fast and secure disk encryption, especially on
587           CPUs without dedicated crypto instru    599           CPUs without dedicated crypto instructions.  It encrypts
588           each sector using the XChaCha12 stre    600           each sector using the XChaCha12 stream cipher, two passes of
589           an ε-almost-∆-universal hash func    601           an ε-almost-∆-universal hash function, and an invocation of
590           the AES-256 block cipher on a single    602           the AES-256 block cipher on a single 16-byte block.  On CPUs
591           without AES instructions, Adiantum i    603           without AES instructions, Adiantum is much faster than
592           AES-XTS.                                604           AES-XTS.
593                                                   605 
594           Adiantum's security is provably redu    606           Adiantum's security is provably reducible to that of its
595           underlying stream and block ciphers,    607           underlying stream and block ciphers, subject to a security
596           bound.  Unlike XTS, Adiantum is a tr    608           bound.  Unlike XTS, Adiantum is a true wide-block encryption
597           mode, so it actually provides an eve    609           mode, so it actually provides an even stronger notion of
598           security than XTS, subject to the se    610           security than XTS, subject to the security bound.
599                                                   611 
600           If unsure, say N.                       612           If unsure, say N.
601                                                   613 
602 config CRYPTO_ARC4                                614 config CRYPTO_ARC4
603         tristate "ARC4 (Alleged Rivest Cipher     615         tristate "ARC4 (Alleged Rivest Cipher 4)"
604         depends on CRYPTO_USER_API_ENABLE_OBSO    616         depends on CRYPTO_USER_API_ENABLE_OBSOLETE
605         select CRYPTO_SKCIPHER                    617         select CRYPTO_SKCIPHER
606         select CRYPTO_LIB_ARC4                    618         select CRYPTO_LIB_ARC4
607         help                                      619         help
608           ARC4 cipher algorithm                   620           ARC4 cipher algorithm
609                                                   621 
610           ARC4 is a stream cipher using keys r    622           ARC4 is a stream cipher using keys ranging from 8 bits to 2048
611           bits in length.  This algorithm is r    623           bits in length.  This algorithm is required for driver-based
612           WEP, but it should not be for other     624           WEP, but it should not be for other purposes because of the
613           weakness of the algorithm.              625           weakness of the algorithm.
614                                                   626 
615 config CRYPTO_CHACHA20                            627 config CRYPTO_CHACHA20
616         tristate "ChaCha"                         628         tristate "ChaCha"
617         select CRYPTO_LIB_CHACHA_GENERIC          629         select CRYPTO_LIB_CHACHA_GENERIC
618         select CRYPTO_SKCIPHER                    630         select CRYPTO_SKCIPHER
619         help                                      631         help
620           The ChaCha20, XChaCha20, and XChaCha    632           The ChaCha20, XChaCha20, and XChaCha12 stream cipher algorithms
621                                                   633 
622           ChaCha20 is a 256-bit high-speed str    634           ChaCha20 is a 256-bit high-speed stream cipher designed by Daniel J.
623           Bernstein and further specified in R    635           Bernstein and further specified in RFC7539 for use in IETF protocols.
624           This is the portable C implementatio    636           This is the portable C implementation of ChaCha20.  See
625           https://cr.yp.to/chacha/chacha-20080    637           https://cr.yp.to/chacha/chacha-20080128.pdf for further information.
626                                                   638 
627           XChaCha20 is the application of the     639           XChaCha20 is the application of the XSalsa20 construction to ChaCha20
628           rather than to Salsa20.  XChaCha20 e    640           rather than to Salsa20.  XChaCha20 extends ChaCha20's nonce length
629           from 64 bits (or 96 bits using the R    641           from 64 bits (or 96 bits using the RFC7539 convention) to 192 bits,
630           while provably retaining ChaCha20's     642           while provably retaining ChaCha20's security.  See
631           https://cr.yp.to/snuffle/xsalsa-2008    643           https://cr.yp.to/snuffle/xsalsa-20081128.pdf for further information.
632                                                   644 
633           XChaCha12 is XChaCha20 reduced to 12    645           XChaCha12 is XChaCha20 reduced to 12 rounds, with correspondingly
634           reduced security margin but increase    646           reduced security margin but increased performance.  It can be needed
635           in some performance-sensitive scenar    647           in some performance-sensitive scenarios.
636                                                   648 
637 config CRYPTO_CBC                                 649 config CRYPTO_CBC
638         tristate "CBC (Cipher Block Chaining)"    650         tristate "CBC (Cipher Block Chaining)"
639         select CRYPTO_SKCIPHER                    651         select CRYPTO_SKCIPHER
640         select CRYPTO_MANAGER                     652         select CRYPTO_MANAGER
641         help                                      653         help
642           CBC (Cipher Block Chaining) mode (NI    654           CBC (Cipher Block Chaining) mode (NIST SP800-38A)
643                                                   655 
644           This block cipher mode is required f    656           This block cipher mode is required for IPSec ESP (XFRM_ESP).
645                                                   657 
                                                   >> 658 config CRYPTO_CFB
                                                   >> 659         tristate "CFB (Cipher Feedback)"
                                                   >> 660         select CRYPTO_SKCIPHER
                                                   >> 661         select CRYPTO_MANAGER
                                                   >> 662         help
                                                   >> 663           CFB (Cipher Feedback) mode (NIST SP800-38A)
                                                   >> 664 
                                                   >> 665           This block cipher mode is required for TPM2 Cryptography.
                                                   >> 666 
646 config CRYPTO_CTR                                 667 config CRYPTO_CTR
647         tristate "CTR (Counter)"                  668         tristate "CTR (Counter)"
648         select CRYPTO_SKCIPHER                    669         select CRYPTO_SKCIPHER
649         select CRYPTO_MANAGER                     670         select CRYPTO_MANAGER
650         help                                      671         help
651           CTR (Counter) mode (NIST SP800-38A)     672           CTR (Counter) mode (NIST SP800-38A)
652                                                   673 
653 config CRYPTO_CTS                                 674 config CRYPTO_CTS
654         tristate "CTS (Cipher Text Stealing)"     675         tristate "CTS (Cipher Text Stealing)"
655         select CRYPTO_SKCIPHER                    676         select CRYPTO_SKCIPHER
656         select CRYPTO_MANAGER                     677         select CRYPTO_MANAGER
657         help                                      678         help
658           CBC-CS3 variant of CTS (Cipher Text     679           CBC-CS3 variant of CTS (Cipher Text Stealing) (NIST
659           Addendum to SP800-38A (October 2010)    680           Addendum to SP800-38A (October 2010))
660                                                   681 
661           This mode is required for Kerberos g    682           This mode is required for Kerberos gss mechanism support
662           for AES encryption.                     683           for AES encryption.
663                                                   684 
664 config CRYPTO_ECB                                 685 config CRYPTO_ECB
665         tristate "ECB (Electronic Codebook)"      686         tristate "ECB (Electronic Codebook)"
666         select CRYPTO_SKCIPHER2                !! 687         select CRYPTO_SKCIPHER
667         select CRYPTO_MANAGER                     688         select CRYPTO_MANAGER
668         help                                      689         help
669           ECB (Electronic Codebook) mode (NIST    690           ECB (Electronic Codebook) mode (NIST SP800-38A)
670                                                   691 
671 config CRYPTO_HCTR2                               692 config CRYPTO_HCTR2
672         tristate "HCTR2"                          693         tristate "HCTR2"
673         select CRYPTO_XCTR                        694         select CRYPTO_XCTR
674         select CRYPTO_POLYVAL                     695         select CRYPTO_POLYVAL
675         select CRYPTO_MANAGER                     696         select CRYPTO_MANAGER
676         help                                      697         help
677           HCTR2 length-preserving encryption m    698           HCTR2 length-preserving encryption mode
678                                                   699 
679           A mode for storage encryption that i    700           A mode for storage encryption that is efficient on processors with
680           instructions to accelerate AES and c    701           instructions to accelerate AES and carryless multiplication, e.g.
681           x86 processors with AES-NI and CLMUL    702           x86 processors with AES-NI and CLMUL, and ARM processors with the
682           ARMv8 crypto extensions.                703           ARMv8 crypto extensions.
683                                                   704 
684           See https://eprint.iacr.org/2021/144    705           See https://eprint.iacr.org/2021/1441
685                                                   706 
686 config CRYPTO_KEYWRAP                             707 config CRYPTO_KEYWRAP
687         tristate "KW (AES Key Wrap)"              708         tristate "KW (AES Key Wrap)"
688         select CRYPTO_SKCIPHER                    709         select CRYPTO_SKCIPHER
689         select CRYPTO_MANAGER                     710         select CRYPTO_MANAGER
690         help                                      711         help
691           KW (AES Key Wrap) authenticated encr    712           KW (AES Key Wrap) authenticated encryption mode (NIST SP800-38F
692           and RFC3394) without padding.           713           and RFC3394) without padding.
693                                                   714 
694 config CRYPTO_LRW                                 715 config CRYPTO_LRW
695         tristate "LRW (Liskov Rivest Wagner)"     716         tristate "LRW (Liskov Rivest Wagner)"
696         select CRYPTO_LIB_GF128MUL             << 
697         select CRYPTO_SKCIPHER                    717         select CRYPTO_SKCIPHER
698         select CRYPTO_MANAGER                     718         select CRYPTO_MANAGER
                                                   >> 719         select CRYPTO_GF128MUL
699         select CRYPTO_ECB                         720         select CRYPTO_ECB
700         help                                      721         help
701           LRW (Liskov Rivest Wagner) mode         722           LRW (Liskov Rivest Wagner) mode
702                                                   723 
703           A tweakable, non malleable, non mova    724           A tweakable, non malleable, non movable
704           narrow block cipher mode for dm-cryp    725           narrow block cipher mode for dm-crypt.  Use it with cipher
705           specification string aes-lrw-benbi,     726           specification string aes-lrw-benbi, the key must be 256, 320 or 384.
706           The first 128, 192 or 256 bits in th    727           The first 128, 192 or 256 bits in the key are used for AES and the
707           rest is used to tie each cipher bloc    728           rest is used to tie each cipher block to its logical position.
708                                                   729 
709           See https://people.csail.mit.edu/riv    730           See https://people.csail.mit.edu/rivest/pubs/LRW02.pdf
710                                                   731 
                                                   >> 732 config CRYPTO_OFB
                                                   >> 733         tristate "OFB (Output Feedback)"
                                                   >> 734         select CRYPTO_SKCIPHER
                                                   >> 735         select CRYPTO_MANAGER
                                                   >> 736         help
                                                   >> 737           OFB (Output Feedback) mode (NIST SP800-38A)
                                                   >> 738 
                                                   >> 739           This mode makes a block cipher into a synchronous
                                                   >> 740           stream cipher. It generates keystream blocks, which are then XORed
                                                   >> 741           with the plaintext blocks to get the ciphertext. Flipping a bit in the
                                                   >> 742           ciphertext produces a flipped bit in the plaintext at the same
                                                   >> 743           location. This property allows many error correcting codes to function
                                                   >> 744           normally even when applied before encryption.
                                                   >> 745 
711 config CRYPTO_PCBC                                746 config CRYPTO_PCBC
712         tristate "PCBC (Propagating Cipher Blo    747         tristate "PCBC (Propagating Cipher Block Chaining)"
713         select CRYPTO_SKCIPHER                    748         select CRYPTO_SKCIPHER
714         select CRYPTO_MANAGER                     749         select CRYPTO_MANAGER
715         help                                      750         help
716           PCBC (Propagating Cipher Block Chain    751           PCBC (Propagating Cipher Block Chaining) mode
717                                                   752 
718           This block cipher mode is required f    753           This block cipher mode is required for RxRPC.
719                                                   754 
720 config CRYPTO_XCTR                                755 config CRYPTO_XCTR
721         tristate                                  756         tristate
722         select CRYPTO_SKCIPHER                    757         select CRYPTO_SKCIPHER
723         select CRYPTO_MANAGER                     758         select CRYPTO_MANAGER
724         help                                      759         help
725           XCTR (XOR Counter) mode for HCTR2       760           XCTR (XOR Counter) mode for HCTR2
726                                                   761 
727           This blockcipher mode is a variant o    762           This blockcipher mode is a variant of CTR mode using XORs and little-endian
728           addition rather than big-endian arit    763           addition rather than big-endian arithmetic.
729                                                   764 
730           XCTR mode is used to implement HCTR2    765           XCTR mode is used to implement HCTR2.
731                                                   766 
732 config CRYPTO_XTS                                 767 config CRYPTO_XTS
733         tristate "XTS (XOR Encrypt XOR with ci    768         tristate "XTS (XOR Encrypt XOR with ciphertext stealing)"
734         select CRYPTO_SKCIPHER                    769         select CRYPTO_SKCIPHER
735         select CRYPTO_MANAGER                     770         select CRYPTO_MANAGER
736         select CRYPTO_ECB                         771         select CRYPTO_ECB
737         help                                      772         help
738           XTS (XOR Encrypt XOR with ciphertext    773           XTS (XOR Encrypt XOR with ciphertext stealing) mode (NIST SP800-38E
739           and IEEE 1619)                          774           and IEEE 1619)
740                                                   775 
741           Use with aes-xts-plain, key size 256    776           Use with aes-xts-plain, key size 256, 384 or 512 bits. This
742           implementation currently can't handl    777           implementation currently can't handle a sectorsize which is not a
743           multiple of 16 bytes.                   778           multiple of 16 bytes.
744                                                   779 
745 config CRYPTO_NHPOLY1305                          780 config CRYPTO_NHPOLY1305
746         tristate                                  781         tristate
747         select CRYPTO_HASH                        782         select CRYPTO_HASH
748         select CRYPTO_LIB_POLY1305_GENERIC        783         select CRYPTO_LIB_POLY1305_GENERIC
749                                                   784 
750 endmenu                                           785 endmenu
751                                                   786 
752 menu "AEAD (authenticated encryption with asso    787 menu "AEAD (authenticated encryption with associated data) ciphers"
753                                                   788 
754 config CRYPTO_AEGIS128                            789 config CRYPTO_AEGIS128
755         tristate "AEGIS-128"                      790         tristate "AEGIS-128"
756         select CRYPTO_AEAD                        791         select CRYPTO_AEAD
757         select CRYPTO_AES  # for AES S-box tab    792         select CRYPTO_AES  # for AES S-box tables
758         help                                      793         help
759           AEGIS-128 AEAD algorithm                794           AEGIS-128 AEAD algorithm
760                                                   795 
761 config CRYPTO_AEGIS128_SIMD                       796 config CRYPTO_AEGIS128_SIMD
762         bool "AEGIS-128 (arm NEON, arm64 NEON)    797         bool "AEGIS-128 (arm NEON, arm64 NEON)"
763         depends on CRYPTO_AEGIS128 && ((ARM ||    798         depends on CRYPTO_AEGIS128 && ((ARM || ARM64) && KERNEL_MODE_NEON)
764         default y                                 799         default y
765         help                                      800         help
766           AEGIS-128 AEAD algorithm                801           AEGIS-128 AEAD algorithm
767                                                   802 
768           Architecture: arm or arm64 using:       803           Architecture: arm or arm64 using:
769           - NEON (Advanced SIMD) extension        804           - NEON (Advanced SIMD) extension
770                                                   805 
771 config CRYPTO_CHACHA20POLY1305                    806 config CRYPTO_CHACHA20POLY1305
772         tristate "ChaCha20-Poly1305"              807         tristate "ChaCha20-Poly1305"
773         select CRYPTO_CHACHA20                    808         select CRYPTO_CHACHA20
774         select CRYPTO_POLY1305                    809         select CRYPTO_POLY1305
775         select CRYPTO_AEAD                        810         select CRYPTO_AEAD
776         select CRYPTO_MANAGER                     811         select CRYPTO_MANAGER
777         help                                      812         help
778           ChaCha20 stream cipher and Poly1305     813           ChaCha20 stream cipher and Poly1305 authenticator combined
779           mode (RFC8439)                          814           mode (RFC8439)
780                                                   815 
781 config CRYPTO_CCM                                 816 config CRYPTO_CCM
782         tristate "CCM (Counter with Cipher Blo    817         tristate "CCM (Counter with Cipher Block Chaining-MAC)"
783         select CRYPTO_CTR                         818         select CRYPTO_CTR
784         select CRYPTO_HASH                        819         select CRYPTO_HASH
785         select CRYPTO_AEAD                        820         select CRYPTO_AEAD
786         select CRYPTO_MANAGER                     821         select CRYPTO_MANAGER
787         help                                      822         help
788           CCM (Counter with Cipher Block Chain    823           CCM (Counter with Cipher Block Chaining-Message Authentication Code)
789           authenticated encryption mode (NIST     824           authenticated encryption mode (NIST SP800-38C)
790                                                   825 
791 config CRYPTO_GCM                                 826 config CRYPTO_GCM
792         tristate "GCM (Galois/Counter Mode) an    827         tristate "GCM (Galois/Counter Mode) and GMAC (GCM MAC)"
793         select CRYPTO_CTR                         828         select CRYPTO_CTR
794         select CRYPTO_AEAD                        829         select CRYPTO_AEAD
795         select CRYPTO_GHASH                       830         select CRYPTO_GHASH
796         select CRYPTO_NULL                        831         select CRYPTO_NULL
797         select CRYPTO_MANAGER                     832         select CRYPTO_MANAGER
798         help                                      833         help
799           GCM (Galois/Counter Mode) authentica    834           GCM (Galois/Counter Mode) authenticated encryption mode and GMAC
800           (GCM Message Authentication Code) (N    835           (GCM Message Authentication Code) (NIST SP800-38D)
801                                                   836 
802           This is required for IPSec ESP (XFRM    837           This is required for IPSec ESP (XFRM_ESP).
803                                                   838 
804 config CRYPTO_GENIV                            !! 839 config CRYPTO_SEQIV
805         tristate                               !! 840         tristate "Sequence Number IV Generator"
806         select CRYPTO_AEAD                        841         select CRYPTO_AEAD
                                                   >> 842         select CRYPTO_SKCIPHER
807         select CRYPTO_NULL                        843         select CRYPTO_NULL
808         select CRYPTO_MANAGER                  << 
809         select CRYPTO_RNG_DEFAULT                 844         select CRYPTO_RNG_DEFAULT
810                                                !! 845         select CRYPTO_MANAGER
811 config CRYPTO_SEQIV                            << 
812         tristate "Sequence Number IV Generator << 
813         select CRYPTO_GENIV                    << 
814         help                                      846         help
815           Sequence Number IV generator            847           Sequence Number IV generator
816                                                   848 
817           This IV generator generates an IV ba    849           This IV generator generates an IV based on a sequence number by
818           xoring it with a salt.  This algorit    850           xoring it with a salt.  This algorithm is mainly useful for CTR.
819                                                   851 
820           This is required for IPsec ESP (XFRM    852           This is required for IPsec ESP (XFRM_ESP).
821                                                   853 
822 config CRYPTO_ECHAINIV                            854 config CRYPTO_ECHAINIV
823         tristate "Encrypted Chain IV Generator    855         tristate "Encrypted Chain IV Generator"
824         select CRYPTO_GENIV                    !! 856         select CRYPTO_AEAD
                                                   >> 857         select CRYPTO_NULL
                                                   >> 858         select CRYPTO_RNG_DEFAULT
                                                   >> 859         select CRYPTO_MANAGER
825         help                                      860         help
826           Encrypted Chain IV generator            861           Encrypted Chain IV generator
827                                                   862 
828           This IV generator generates an IV ba    863           This IV generator generates an IV based on the encryption of
829           a sequence number xored with a salt.    864           a sequence number xored with a salt.  This is the default
830           algorithm for CBC.                      865           algorithm for CBC.
831                                                   866 
832 config CRYPTO_ESSIV                               867 config CRYPTO_ESSIV
833         tristate "Encrypted Salt-Sector IV Gen    868         tristate "Encrypted Salt-Sector IV Generator"
834         select CRYPTO_AUTHENC                     869         select CRYPTO_AUTHENC
835         help                                      870         help
836           Encrypted Salt-Sector IV generator      871           Encrypted Salt-Sector IV generator
837                                                   872 
838           This IV generator is used in some ca    873           This IV generator is used in some cases by fscrypt and/or
839           dm-crypt. It uses the hash of the bl    874           dm-crypt. It uses the hash of the block encryption key as the
840           symmetric key for a block encryption    875           symmetric key for a block encryption pass applied to the input
841           IV, making low entropy IV sources mo    876           IV, making low entropy IV sources more suitable for block
842           encryption.                             877           encryption.
843                                                   878 
844           This driver implements a crypto API     879           This driver implements a crypto API template that can be
845           instantiated either as an skcipher o    880           instantiated either as an skcipher or as an AEAD (depending on the
846           type of the first template argument)    881           type of the first template argument), and which defers encryption
847           and decryption requests to the encap    882           and decryption requests to the encapsulated cipher after applying
848           ESSIV to the input IV. Note that in     883           ESSIV to the input IV. Note that in the AEAD case, it is assumed
849           that the keys are presented in the s    884           that the keys are presented in the same format used by the authenc
850           template, and that the IV appears at    885           template, and that the IV appears at the end of the authenticated
851           associated data (AAD) region (which     886           associated data (AAD) region (which is how dm-crypt uses it.)
852                                                   887 
853           Note that the use of ESSIV is not re    888           Note that the use of ESSIV is not recommended for new deployments,
854           and so this only needs to be enabled    889           and so this only needs to be enabled when interoperability with
855           existing encrypted volumes of filesy    890           existing encrypted volumes of filesystems is required, or when
856           building for a particular system tha    891           building for a particular system that requires it (e.g., when
857           the SoC in question has accelerated     892           the SoC in question has accelerated CBC but not XTS, making CBC
858           combined with ESSIV the only feasibl    893           combined with ESSIV the only feasible mode for h/w accelerated
859           block encryption)                       894           block encryption)
860                                                   895 
861 endmenu                                           896 endmenu
862                                                   897 
863 menu "Hashes, digests, and MACs"                  898 menu "Hashes, digests, and MACs"
864                                                   899 
865 config CRYPTO_BLAKE2B                             900 config CRYPTO_BLAKE2B
866         tristate "BLAKE2b"                        901         tristate "BLAKE2b"
867         select CRYPTO_HASH                        902         select CRYPTO_HASH
868         help                                      903         help
869           BLAKE2b cryptographic hash function     904           BLAKE2b cryptographic hash function (RFC 7693)
870                                                   905 
871           BLAKE2b is optimized for 64-bit plat    906           BLAKE2b is optimized for 64-bit platforms and can produce digests
872           of any size between 1 and 64 bytes.     907           of any size between 1 and 64 bytes. The keyed hash is also implemented.
873                                                   908 
874           This module provides the following a    909           This module provides the following algorithms:
875           - blake2b-160                           910           - blake2b-160
876           - blake2b-256                           911           - blake2b-256
877           - blake2b-384                           912           - blake2b-384
878           - blake2b-512                           913           - blake2b-512
879                                                   914 
880           Used by the btrfs filesystem.           915           Used by the btrfs filesystem.
881                                                   916 
882           See https://blake2.net for further i    917           See https://blake2.net for further information.
883                                                   918 
884 config CRYPTO_CMAC                                919 config CRYPTO_CMAC
885         tristate "CMAC (Cipher-based MAC)"        920         tristate "CMAC (Cipher-based MAC)"
886         select CRYPTO_HASH                        921         select CRYPTO_HASH
887         select CRYPTO_MANAGER                     922         select CRYPTO_MANAGER
888         help                                      923         help
889           CMAC (Cipher-based Message Authentic    924           CMAC (Cipher-based Message Authentication Code) authentication
890           mode (NIST SP800-38B and IETF RFC449    925           mode (NIST SP800-38B and IETF RFC4493)
891                                                   926 
892 config CRYPTO_GHASH                               927 config CRYPTO_GHASH
893         tristate "GHASH"                          928         tristate "GHASH"
                                                   >> 929         select CRYPTO_GF128MUL
894         select CRYPTO_HASH                        930         select CRYPTO_HASH
895         select CRYPTO_LIB_GF128MUL             << 
896         help                                      931         help
897           GCM GHASH function (NIST SP800-38D)     932           GCM GHASH function (NIST SP800-38D)
898                                                   933 
899 config CRYPTO_HMAC                                934 config CRYPTO_HMAC
900         tristate "HMAC (Keyed-Hash MAC)"          935         tristate "HMAC (Keyed-Hash MAC)"
901         select CRYPTO_HASH                        936         select CRYPTO_HASH
902         select CRYPTO_MANAGER                     937         select CRYPTO_MANAGER
903         help                                      938         help
904           HMAC (Keyed-Hash Message Authenticat    939           HMAC (Keyed-Hash Message Authentication Code) (FIPS 198 and
905           RFC2104)                                940           RFC2104)
906                                                   941 
907           This is required for IPsec AH (XFRM_    942           This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
908                                                   943 
909 config CRYPTO_MD4                                 944 config CRYPTO_MD4
910         tristate "MD4"                            945         tristate "MD4"
911         select CRYPTO_HASH                        946         select CRYPTO_HASH
912         help                                      947         help
913           MD4 message digest algorithm (RFC132    948           MD4 message digest algorithm (RFC1320)
914                                                   949 
915 config CRYPTO_MD5                                 950 config CRYPTO_MD5
916         tristate "MD5"                            951         tristate "MD5"
917         select CRYPTO_HASH                        952         select CRYPTO_HASH
918         help                                      953         help
919           MD5 message digest algorithm (RFC132    954           MD5 message digest algorithm (RFC1321)
920                                                   955 
921 config CRYPTO_MICHAEL_MIC                         956 config CRYPTO_MICHAEL_MIC
922         tristate "Michael MIC"                    957         tristate "Michael MIC"
923         select CRYPTO_HASH                        958         select CRYPTO_HASH
924         help                                      959         help
925           Michael MIC (Message Integrity Code)    960           Michael MIC (Message Integrity Code) (IEEE 802.11i)
926                                                   961 
927           Defined by the IEEE 802.11i TKIP (Te    962           Defined by the IEEE 802.11i TKIP (Temporal Key Integrity Protocol),
928           known as WPA (Wif-Fi Protected Acces    963           known as WPA (Wif-Fi Protected Access).
929                                                   964 
930           This algorithm is required for TKIP,    965           This algorithm is required for TKIP, but it should not be used for
931           other purposes because of the weakne    966           other purposes because of the weakness of the algorithm.
932                                                   967 
933 config CRYPTO_POLYVAL                             968 config CRYPTO_POLYVAL
934         tristate                                  969         tristate
                                                   >> 970         select CRYPTO_GF128MUL
935         select CRYPTO_HASH                        971         select CRYPTO_HASH
936         select CRYPTO_LIB_GF128MUL             << 
937         help                                      972         help
938           POLYVAL hash function for HCTR2         973           POLYVAL hash function for HCTR2
939                                                   974 
940           This is used in HCTR2.  It is not a     975           This is used in HCTR2.  It is not a general-purpose
941           cryptographic hash function.            976           cryptographic hash function.
942                                                   977 
943 config CRYPTO_POLY1305                            978 config CRYPTO_POLY1305
944         tristate "Poly1305"                       979         tristate "Poly1305"
945         select CRYPTO_HASH                        980         select CRYPTO_HASH
946         select CRYPTO_LIB_POLY1305_GENERIC        981         select CRYPTO_LIB_POLY1305_GENERIC
947         help                                      982         help
948           Poly1305 authenticator algorithm (RF    983           Poly1305 authenticator algorithm (RFC7539)
949                                                   984 
950           Poly1305 is an authenticator algorit    985           Poly1305 is an authenticator algorithm designed by Daniel J. Bernstein.
951           It is used for the ChaCha20-Poly1305    986           It is used for the ChaCha20-Poly1305 AEAD, specified in RFC7539 for use
952           in IETF protocols. This is the porta    987           in IETF protocols. This is the portable C implementation of Poly1305.
953                                                   988 
954 config CRYPTO_RMD160                              989 config CRYPTO_RMD160
955         tristate "RIPEMD-160"                     990         tristate "RIPEMD-160"
956         select CRYPTO_HASH                        991         select CRYPTO_HASH
957         help                                      992         help
958           RIPEMD-160 hash function (ISO/IEC 10    993           RIPEMD-160 hash function (ISO/IEC 10118-3)
959                                                   994 
960           RIPEMD-160 is a 160-bit cryptographi    995           RIPEMD-160 is a 160-bit cryptographic hash function. It is intended
961           to be used as a secure replacement f    996           to be used as a secure replacement for the 128-bit hash functions
962           MD4, MD5 and its predecessor RIPEMD     997           MD4, MD5 and its predecessor RIPEMD
963           (not to be confused with RIPEMD-128)    998           (not to be confused with RIPEMD-128).
964                                                   999 
965           Its speed is comparable to SHA-1 and    1000           Its speed is comparable to SHA-1 and there are no known attacks
966           against RIPEMD-160.                     1001           against RIPEMD-160.
967                                                   1002 
968           Developed by Hans Dobbertin, Antoon     1003           Developed by Hans Dobbertin, Antoon Bosselaers and Bart Preneel.
969           See https://homes.esat.kuleuven.be/~    1004           See https://homes.esat.kuleuven.be/~bosselae/ripemd160.html
970           for further information.                1005           for further information.
971                                                   1006 
972 config CRYPTO_SHA1                                1007 config CRYPTO_SHA1
973         tristate "SHA-1"                          1008         tristate "SHA-1"
974         select CRYPTO_HASH                        1009         select CRYPTO_HASH
975         select CRYPTO_LIB_SHA1                    1010         select CRYPTO_LIB_SHA1
976         help                                      1011         help
977           SHA-1 secure hash algorithm (FIPS 18    1012           SHA-1 secure hash algorithm (FIPS 180, ISO/IEC 10118-3)
978                                                   1013 
979 config CRYPTO_SHA256                              1014 config CRYPTO_SHA256
980         tristate "SHA-224 and SHA-256"            1015         tristate "SHA-224 and SHA-256"
981         select CRYPTO_HASH                        1016         select CRYPTO_HASH
982         select CRYPTO_LIB_SHA256                  1017         select CRYPTO_LIB_SHA256
983         help                                      1018         help
984           SHA-224 and SHA-256 secure hash algo    1019           SHA-224 and SHA-256 secure hash algorithms (FIPS 180, ISO/IEC 10118-3)
985                                                   1020 
986           This is required for IPsec AH (XFRM_    1021           This is required for IPsec AH (XFRM_AH) and IPsec ESP (XFRM_ESP).
987           Used by the btrfs filesystem, Ceph,     1022           Used by the btrfs filesystem, Ceph, NFS, and SMB.
988                                                   1023 
989 config CRYPTO_SHA512                              1024 config CRYPTO_SHA512
990         tristate "SHA-384 and SHA-512"            1025         tristate "SHA-384 and SHA-512"
991         select CRYPTO_HASH                        1026         select CRYPTO_HASH
992         help                                      1027         help
993           SHA-384 and SHA-512 secure hash algo    1028           SHA-384 and SHA-512 secure hash algorithms (FIPS 180, ISO/IEC 10118-3)
994                                                   1029 
995 config CRYPTO_SHA3                                1030 config CRYPTO_SHA3
996         tristate "SHA-3"                          1031         tristate "SHA-3"
997         select CRYPTO_HASH                        1032         select CRYPTO_HASH
998         help                                      1033         help
999           SHA-3 secure hash algorithms (FIPS 2    1034           SHA-3 secure hash algorithms (FIPS 202, ISO/IEC 10118-3)
1000                                                  1035 
1001 config CRYPTO_SM3                                1036 config CRYPTO_SM3
1002         tristate                                 1037         tristate
1003                                                  1038 
1004 config CRYPTO_SM3_GENERIC                        1039 config CRYPTO_SM3_GENERIC
1005         tristate "SM3 (ShangMi 3)"               1040         tristate "SM3 (ShangMi 3)"
1006         select CRYPTO_HASH                       1041         select CRYPTO_HASH
1007         select CRYPTO_SM3                        1042         select CRYPTO_SM3
1008         help                                     1043         help
1009           SM3 (ShangMi 3) secure hash functio    1044           SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012, ISO/IEC 10118-3)
1010                                                  1045 
1011           This is part of the Chinese Commerc    1046           This is part of the Chinese Commercial Cryptography suite.
1012                                                  1047 
1013           References:                            1048           References:
1014           http://www.oscca.gov.cn/UpFile/2010    1049           http://www.oscca.gov.cn/UpFile/20101222141857786.pdf
1015           https://datatracker.ietf.org/doc/ht    1050           https://datatracker.ietf.org/doc/html/draft-shen-sm3-hash
1016                                                  1051 
1017 config CRYPTO_STREEBOG                           1052 config CRYPTO_STREEBOG
1018         tristate "Streebog"                      1053         tristate "Streebog"
1019         select CRYPTO_HASH                       1054         select CRYPTO_HASH
1020         help                                     1055         help
1021           Streebog Hash Function (GOST R 34.1    1056           Streebog Hash Function (GOST R 34.11-2012, RFC 6986, ISO/IEC 10118-3)
1022                                                  1057 
1023           This is one of the Russian cryptogr    1058           This is one of the Russian cryptographic standard algorithms (called
1024           GOST algorithms). This setting enab    1059           GOST algorithms). This setting enables two hash algorithms with
1025           256 and 512 bits output.               1060           256 and 512 bits output.
1026                                                  1061 
1027           References:                            1062           References:
1028           https://tc26.ru/upload/iblock/fed/f    1063           https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf
1029           https://tools.ietf.org/html/rfc6986    1064           https://tools.ietf.org/html/rfc6986
1030                                                  1065 
1031 config CRYPTO_VMAC                               1066 config CRYPTO_VMAC
1032         tristate "VMAC"                          1067         tristate "VMAC"
1033         select CRYPTO_HASH                       1068         select CRYPTO_HASH
1034         select CRYPTO_MANAGER                    1069         select CRYPTO_MANAGER
1035         help                                     1070         help
1036           VMAC is a message authentication al    1071           VMAC is a message authentication algorithm designed for
1037           very high speed on 64-bit architect    1072           very high speed on 64-bit architectures.
1038                                                  1073 
1039           See https://fastcrypto.org/vmac for    1074           See https://fastcrypto.org/vmac for further information.
1040                                                  1075 
1041 config CRYPTO_WP512                              1076 config CRYPTO_WP512
1042         tristate "Whirlpool"                     1077         tristate "Whirlpool"
1043         select CRYPTO_HASH                       1078         select CRYPTO_HASH
1044         help                                     1079         help
1045           Whirlpool hash function (ISO/IEC 10    1080           Whirlpool hash function (ISO/IEC 10118-3)
1046                                                  1081 
1047           512, 384 and 256-bit hashes.           1082           512, 384 and 256-bit hashes.
1048                                                  1083 
1049           Whirlpool-512 is part of the NESSIE    1084           Whirlpool-512 is part of the NESSIE cryptographic primitives.
1050                                                  1085 
1051           See https://web.archive.org/web/201    1086           See https://web.archive.org/web/20171129084214/http://www.larc.usp.br/~pbarreto/WhirlpoolPage.html
1052           for further information.               1087           for further information.
1053                                                  1088 
1054 config CRYPTO_XCBC                               1089 config CRYPTO_XCBC
1055         tristate "XCBC-MAC (Extended Cipher B    1090         tristate "XCBC-MAC (Extended Cipher Block Chaining MAC)"
1056         select CRYPTO_HASH                       1091         select CRYPTO_HASH
1057         select CRYPTO_MANAGER                    1092         select CRYPTO_MANAGER
1058         help                                     1093         help
1059           XCBC-MAC (Extended Cipher Block Cha    1094           XCBC-MAC (Extended Cipher Block Chaining Message Authentication
1060           Code) (RFC3566)                        1095           Code) (RFC3566)
1061                                                  1096 
1062 config CRYPTO_XXHASH                             1097 config CRYPTO_XXHASH
1063         tristate "xxHash"                        1098         tristate "xxHash"
1064         select CRYPTO_HASH                       1099         select CRYPTO_HASH
1065         select XXHASH                            1100         select XXHASH
1066         help                                     1101         help
1067           xxHash non-cryptographic hash algor    1102           xxHash non-cryptographic hash algorithm
1068                                                  1103 
1069           Extremely fast, working at speeds c    1104           Extremely fast, working at speeds close to RAM limits.
1070                                                  1105 
1071           Used by the btrfs filesystem.          1106           Used by the btrfs filesystem.
1072                                                  1107 
1073 endmenu                                          1108 endmenu
1074                                                  1109 
1075 menu "CRCs (cyclic redundancy checks)"           1110 menu "CRCs (cyclic redundancy checks)"
1076                                                  1111 
1077 config CRYPTO_CRC32C                             1112 config CRYPTO_CRC32C
1078         tristate "CRC32c"                        1113         tristate "CRC32c"
1079         select CRYPTO_HASH                       1114         select CRYPTO_HASH
1080         select CRC32                             1115         select CRC32
1081         help                                     1116         help
1082           CRC32c CRC algorithm with the iSCSI    1117           CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)
1083                                                  1118 
1084           A 32-bit CRC (cyclic redundancy che    1119           A 32-bit CRC (cyclic redundancy check) with a polynomial defined
1085           by G. Castagnoli, S. Braeuer and M.    1120           by G. Castagnoli, S. Braeuer and M. Herrman in "Optimization of Cyclic
1086           Redundancy-Check Codes with 24 and     1121           Redundancy-Check Codes with 24 and 32 Parity Bits", IEEE Transactions
1087           on Communications, Vol. 41, No. 6,     1122           on Communications, Vol. 41, No. 6, June 1993, selected for use with
1088           iSCSI.                                 1123           iSCSI.
1089                                                  1124 
1090           Used by btrfs, ext4, jbd2, NVMeoF/T    1125           Used by btrfs, ext4, jbd2, NVMeoF/TCP, and iSCSI.
1091                                                  1126 
1092 config CRYPTO_CRC32                              1127 config CRYPTO_CRC32
1093         tristate "CRC32"                         1128         tristate "CRC32"
1094         select CRYPTO_HASH                       1129         select CRYPTO_HASH
1095         select CRC32                             1130         select CRC32
1096         help                                     1131         help
1097           CRC32 CRC algorithm (IEEE 802.3)       1132           CRC32 CRC algorithm (IEEE 802.3)
1098                                                  1133 
1099           Used by RoCEv2 and f2fs.               1134           Used by RoCEv2 and f2fs.
1100                                                  1135 
1101 config CRYPTO_CRCT10DIF                          1136 config CRYPTO_CRCT10DIF
1102         tristate "CRCT10DIF"                     1137         tristate "CRCT10DIF"
1103         select CRYPTO_HASH                       1138         select CRYPTO_HASH
1104         help                                     1139         help
1105           CRC16 CRC algorithm used for the T1    1140           CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)
1106                                                  1141 
1107           CRC algorithm used by the SCSI Bloc    1142           CRC algorithm used by the SCSI Block Commands standard.
1108                                                  1143 
1109 config CRYPTO_CRC64_ROCKSOFT                     1144 config CRYPTO_CRC64_ROCKSOFT
1110         tristate "CRC64 based on Rocksoft Mod    1145         tristate "CRC64 based on Rocksoft Model algorithm"
1111         depends on CRC64                         1146         depends on CRC64
1112         select CRYPTO_HASH                       1147         select CRYPTO_HASH
1113         help                                     1148         help
1114           CRC64 CRC algorithm based on the Ro    1149           CRC64 CRC algorithm based on the Rocksoft Model CRC Algorithm
1115                                                  1150 
1116           Used by the NVMe implementation of     1151           Used by the NVMe implementation of T10 DIF (BLK_DEV_INTEGRITY)
1117                                                  1152 
1118           See https://zlib.net/crc_v3.txt        1153           See https://zlib.net/crc_v3.txt
1119                                                  1154 
1120 endmenu                                          1155 endmenu
1121                                                  1156 
1122 menu "Compression"                               1157 menu "Compression"
1123                                                  1158 
1124 config CRYPTO_DEFLATE                            1159 config CRYPTO_DEFLATE
1125         tristate "Deflate"                       1160         tristate "Deflate"
1126         select CRYPTO_ALGAPI                     1161         select CRYPTO_ALGAPI
1127         select CRYPTO_ACOMP2                     1162         select CRYPTO_ACOMP2
1128         select ZLIB_INFLATE                      1163         select ZLIB_INFLATE
1129         select ZLIB_DEFLATE                      1164         select ZLIB_DEFLATE
1130         help                                     1165         help
1131           Deflate compression algorithm (RFC1    1166           Deflate compression algorithm (RFC1951)
1132                                                  1167 
1133           Used by IPSec with the IPCOMP proto    1168           Used by IPSec with the IPCOMP protocol (RFC3173, RFC2394)
1134                                                  1169 
1135 config CRYPTO_LZO                                1170 config CRYPTO_LZO
1136         tristate "LZO"                           1171         tristate "LZO"
1137         select CRYPTO_ALGAPI                     1172         select CRYPTO_ALGAPI
1138         select CRYPTO_ACOMP2                     1173         select CRYPTO_ACOMP2
1139         select LZO_COMPRESS                      1174         select LZO_COMPRESS
1140         select LZO_DECOMPRESS                    1175         select LZO_DECOMPRESS
1141         help                                     1176         help
1142           LZO compression algorithm              1177           LZO compression algorithm
1143                                                  1178 
1144           See https://www.oberhumer.com/opens    1179           See https://www.oberhumer.com/opensource/lzo/ for further information.
1145                                                  1180 
1146 config CRYPTO_842                                1181 config CRYPTO_842
1147         tristate "842"                           1182         tristate "842"
1148         select CRYPTO_ALGAPI                     1183         select CRYPTO_ALGAPI
1149         select CRYPTO_ACOMP2                     1184         select CRYPTO_ACOMP2
1150         select 842_COMPRESS                      1185         select 842_COMPRESS
1151         select 842_DECOMPRESS                    1186         select 842_DECOMPRESS
1152         help                                     1187         help
1153           842 compression algorithm by IBM       1188           842 compression algorithm by IBM
1154                                                  1189 
1155           See https://github.com/plauth/lib84    1190           See https://github.com/plauth/lib842 for further information.
1156                                                  1191 
1157 config CRYPTO_LZ4                                1192 config CRYPTO_LZ4
1158         tristate "LZ4"                           1193         tristate "LZ4"
1159         select CRYPTO_ALGAPI                     1194         select CRYPTO_ALGAPI
1160         select CRYPTO_ACOMP2                     1195         select CRYPTO_ACOMP2
1161         select LZ4_COMPRESS                      1196         select LZ4_COMPRESS
1162         select LZ4_DECOMPRESS                    1197         select LZ4_DECOMPRESS
1163         help                                     1198         help
1164           LZ4 compression algorithm              1199           LZ4 compression algorithm
1165                                                  1200 
1166           See https://github.com/lz4/lz4 for     1201           See https://github.com/lz4/lz4 for further information.
1167                                                  1202 
1168 config CRYPTO_LZ4HC                              1203 config CRYPTO_LZ4HC
1169         tristate "LZ4HC"                         1204         tristate "LZ4HC"
1170         select CRYPTO_ALGAPI                     1205         select CRYPTO_ALGAPI
1171         select CRYPTO_ACOMP2                     1206         select CRYPTO_ACOMP2
1172         select LZ4HC_COMPRESS                    1207         select LZ4HC_COMPRESS
1173         select LZ4_DECOMPRESS                    1208         select LZ4_DECOMPRESS
1174         help                                     1209         help
1175           LZ4 high compression mode algorithm    1210           LZ4 high compression mode algorithm
1176                                                  1211 
1177           See https://github.com/lz4/lz4 for     1212           See https://github.com/lz4/lz4 for further information.
1178                                                  1213 
1179 config CRYPTO_ZSTD                               1214 config CRYPTO_ZSTD
1180         tristate "Zstd"                          1215         tristate "Zstd"
1181         select CRYPTO_ALGAPI                     1216         select CRYPTO_ALGAPI
1182         select CRYPTO_ACOMP2                     1217         select CRYPTO_ACOMP2
1183         select ZSTD_COMPRESS                     1218         select ZSTD_COMPRESS
1184         select ZSTD_DECOMPRESS                   1219         select ZSTD_DECOMPRESS
1185         help                                     1220         help
1186           zstd compression algorithm             1221           zstd compression algorithm
1187                                                  1222 
1188           See https://github.com/facebook/zst    1223           See https://github.com/facebook/zstd for further information.
1189                                                  1224 
1190 endmenu                                          1225 endmenu
1191                                                  1226 
1192 menu "Random number generation"                  1227 menu "Random number generation"
1193                                                  1228 
1194 config CRYPTO_ANSI_CPRNG                         1229 config CRYPTO_ANSI_CPRNG
1195         tristate "ANSI PRNG (Pseudo Random Nu    1230         tristate "ANSI PRNG (Pseudo Random Number Generator)"
1196         select CRYPTO_AES                        1231         select CRYPTO_AES
1197         select CRYPTO_RNG                        1232         select CRYPTO_RNG
1198         help                                     1233         help
1199           Pseudo RNG (random number generator    1234           Pseudo RNG (random number generator) (ANSI X9.31 Appendix A.2.4)
1200                                                  1235 
1201           This uses the AES cipher algorithm.    1236           This uses the AES cipher algorithm.
1202                                                  1237 
1203           Note that this option must be enabl    1238           Note that this option must be enabled if CRYPTO_FIPS is selected
1204                                                  1239 
1205 menuconfig CRYPTO_DRBG_MENU                      1240 menuconfig CRYPTO_DRBG_MENU
1206         tristate "NIST SP800-90A DRBG (Determ    1241         tristate "NIST SP800-90A DRBG (Deterministic Random Bit Generator)"
1207         help                                     1242         help
1208           DRBG (Deterministic Random Bit Gene    1243           DRBG (Deterministic Random Bit Generator) (NIST SP800-90A)
1209                                                  1244 
1210           In the following submenu, one or mo    1245           In the following submenu, one or more of the DRBG types must be selected.
1211                                                  1246 
1212 if CRYPTO_DRBG_MENU                              1247 if CRYPTO_DRBG_MENU
1213                                                  1248 
1214 config CRYPTO_DRBG_HMAC                          1249 config CRYPTO_DRBG_HMAC
1215         bool                                     1250         bool
1216         default y                                1251         default y
1217         select CRYPTO_HMAC                       1252         select CRYPTO_HMAC
1218         select CRYPTO_SHA512                     1253         select CRYPTO_SHA512
1219                                                  1254 
1220 config CRYPTO_DRBG_HASH                          1255 config CRYPTO_DRBG_HASH
1221         bool "Hash_DRBG"                         1256         bool "Hash_DRBG"
1222         select CRYPTO_SHA256                     1257         select CRYPTO_SHA256
1223         help                                     1258         help
1224           Hash_DRBG variant as defined in NIS    1259           Hash_DRBG variant as defined in NIST SP800-90A.
1225                                                  1260 
1226           This uses the SHA-1, SHA-256, SHA-3    1261           This uses the SHA-1, SHA-256, SHA-384, or SHA-512 hash algorithms.
1227                                                  1262 
1228 config CRYPTO_DRBG_CTR                           1263 config CRYPTO_DRBG_CTR
1229         bool "CTR_DRBG"                          1264         bool "CTR_DRBG"
1230         select CRYPTO_AES                        1265         select CRYPTO_AES
1231         select CRYPTO_CTR                        1266         select CRYPTO_CTR
1232         help                                     1267         help
1233           CTR_DRBG variant as defined in NIST    1268           CTR_DRBG variant as defined in NIST SP800-90A.
1234                                                  1269 
1235           This uses the AES cipher algorithm     1270           This uses the AES cipher algorithm with the counter block mode.
1236                                                  1271 
1237 config CRYPTO_DRBG                               1272 config CRYPTO_DRBG
1238         tristate                                 1273         tristate
1239         default CRYPTO_DRBG_MENU                 1274         default CRYPTO_DRBG_MENU
1240         select CRYPTO_RNG                        1275         select CRYPTO_RNG
1241         select CRYPTO_JITTERENTROPY              1276         select CRYPTO_JITTERENTROPY
1242                                                  1277 
1243 endif   # if CRYPTO_DRBG_MENU                    1278 endif   # if CRYPTO_DRBG_MENU
1244                                                  1279 
1245 config CRYPTO_JITTERENTROPY                      1280 config CRYPTO_JITTERENTROPY
1246         tristate "CPU Jitter Non-Deterministi    1281         tristate "CPU Jitter Non-Deterministic RNG (Random Number Generator)"
1247         select CRYPTO_RNG                        1282         select CRYPTO_RNG
1248         select CRYPTO_SHA3                    << 
1249         help                                     1283         help
1250           CPU Jitter RNG (Random Number Gener    1284           CPU Jitter RNG (Random Number Generator) from the Jitterentropy library
1251                                                  1285 
1252           A non-physical non-deterministic ("    1286           A non-physical non-deterministic ("true") RNG (e.g., an entropy source
1253           compliant with NIST SP800-90B) inte    1287           compliant with NIST SP800-90B) intended to provide a seed to a
1254           deterministic RNG (e.g., per NIST S    1288           deterministic RNG (e.g., per NIST SP800-90C).
1255           This RNG does not perform any crypt    1289           This RNG does not perform any cryptographic whitening of the generated
1256           random numbers.                        1290           random numbers.
1257                                                  1291 
1258           See https://www.chronox.de/jent/       1292           See https://www.chronox.de/jent/
1259                                                  1293 
1260 if CRYPTO_JITTERENTROPY                       << 
1261 if CRYPTO_FIPS && EXPERT                      << 
1262                                               << 
1263 choice                                        << 
1264         prompt "CPU Jitter RNG Memory Size"   << 
1265         default CRYPTO_JITTERENTROPY_MEMSIZE_ << 
1266         help                                  << 
1267           The Jitter RNG measures the executi << 
1268           Multiple consecutive memory accesse << 
1269           size fits into a cache (e.g. L1), o << 
1270           to that cache is measured. The clos << 
1271           the less variations are measured an << 
1272           obtained. Thus, if the memory size  << 
1273           obtained entropy is less than if th << 
1274           L1 + L2, which in turn is less if t << 
1275           L1 + L2 + L3. Thus, by selecting a  << 
1276           the entropy rate produced by the Ji << 
1277                                               << 
1278         config CRYPTO_JITTERENTROPY_MEMSIZE_2 << 
1279                 bool "2048 Bytes (default)"   << 
1280                                               << 
1281         config CRYPTO_JITTERENTROPY_MEMSIZE_1 << 
1282                 bool "128 kBytes"             << 
1283                                               << 
1284         config CRYPTO_JITTERENTROPY_MEMSIZE_1 << 
1285                 bool "1024 kBytes"            << 
1286                                               << 
1287         config CRYPTO_JITTERENTROPY_MEMSIZE_8 << 
1288                 bool "8192 kBytes"            << 
1289 endchoice                                     << 
1290                                               << 
1291 config CRYPTO_JITTERENTROPY_MEMORY_BLOCKS     << 
1292         int                                   << 
1293         default 64 if CRYPTO_JITTERENTROPY_ME << 
1294         default 512 if CRYPTO_JITTERENTROPY_M << 
1295         default 1024 if CRYPTO_JITTERENTROPY_ << 
1296         default 4096 if CRYPTO_JITTERENTROPY_ << 
1297                                               << 
1298 config CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE  << 
1299         int                                   << 
1300         default 32 if CRYPTO_JITTERENTROPY_ME << 
1301         default 256 if CRYPTO_JITTERENTROPY_M << 
1302         default 1024 if CRYPTO_JITTERENTROPY_ << 
1303         default 2048 if CRYPTO_JITTERENTROPY_ << 
1304                                               << 
1305 config CRYPTO_JITTERENTROPY_OSR               << 
1306         int "CPU Jitter RNG Oversampling Rate << 
1307         range 1 15                            << 
1308         default 3                             << 
1309         help                                  << 
1310           The Jitter RNG allows the specifica << 
1311           The Jitter RNG operation requires a << 
1312           measurements to produce one output  << 
1313           OSR value is multiplied with the am << 
1314           generate one output block. Thus, th << 
1315           by the OSR factor. The oversampling << 
1316           on hardware whose timers deliver li << 
1317           the timer is coarse) by setting the << 
1318           trade-off, however, is that the Jit << 
1319           to generate random numbers.         << 
1320                                               << 
1321 config CRYPTO_JITTERENTROPY_TESTINTERFACE     << 
1322         bool "CPU Jitter RNG Test Interface"  << 
1323         help                                  << 
1324           The test interface allows a privile << 
1325           the raw unconditioned high resoluti << 
1326           is collected by the Jitter RNG for  << 
1327           this data is used at the same time  << 
1328           the Jitter RNG operates in an insec << 
1329           recording is enabled. This interfac << 
1330           intended for testing purposes and i << 
1331           production systems.                 << 
1332                                               << 
1333           The raw noise data can be obtained  << 
1334           debugfs file. Using the option      << 
1335           jitterentropy_testing.boot_raw_hire << 
1336           the first 1000 entropy events since << 
1337                                               << 
1338           If unsure, select N.                << 
1339                                               << 
1340 endif   # if CRYPTO_FIPS && EXPERT            << 
1341                                               << 
1342 if !(CRYPTO_FIPS && EXPERT)                   << 
1343                                               << 
1344 config CRYPTO_JITTERENTROPY_MEMORY_BLOCKS     << 
1345         int                                   << 
1346         default 64                            << 
1347                                               << 
1348 config CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE  << 
1349         int                                   << 
1350         default 32                            << 
1351                                               << 
1352 config CRYPTO_JITTERENTROPY_OSR               << 
1353         int                                   << 
1354         default 1                             << 
1355                                               << 
1356 config CRYPTO_JITTERENTROPY_TESTINTERFACE     << 
1357         bool                                  << 
1358                                               << 
1359 endif   # if !(CRYPTO_FIPS && EXPERT)         << 
1360 endif   # if CRYPTO_JITTERENTROPY             << 
1361                                               << 
1362 config CRYPTO_KDF800108_CTR                      1294 config CRYPTO_KDF800108_CTR
1363         tristate                                 1295         tristate
1364         select CRYPTO_HMAC                       1296         select CRYPTO_HMAC
1365         select CRYPTO_SHA256                     1297         select CRYPTO_SHA256
1366                                                  1298 
1367 endmenu                                          1299 endmenu
1368 menu "Userspace interface"                       1300 menu "Userspace interface"
1369                                                  1301 
1370 config CRYPTO_USER_API                           1302 config CRYPTO_USER_API
1371         tristate                                 1303         tristate
1372                                                  1304 
1373 config CRYPTO_USER_API_HASH                      1305 config CRYPTO_USER_API_HASH
1374         tristate "Hash algorithms"               1306         tristate "Hash algorithms"
1375         depends on NET                           1307         depends on NET
1376         select CRYPTO_HASH                       1308         select CRYPTO_HASH
1377         select CRYPTO_USER_API                   1309         select CRYPTO_USER_API
1378         help                                     1310         help
1379           Enable the userspace interface for     1311           Enable the userspace interface for hash algorithms.
1380                                                  1312 
1381           See Documentation/crypto/userspace-    1313           See Documentation/crypto/userspace-if.rst and
1382           https://www.chronox.de/libkcapi/htm    1314           https://www.chronox.de/libkcapi/html/index.html
1383                                                  1315 
1384 config CRYPTO_USER_API_SKCIPHER                  1316 config CRYPTO_USER_API_SKCIPHER
1385         tristate "Symmetric key cipher algori    1317         tristate "Symmetric key cipher algorithms"
1386         depends on NET                           1318         depends on NET
1387         select CRYPTO_SKCIPHER                   1319         select CRYPTO_SKCIPHER
1388         select CRYPTO_USER_API                   1320         select CRYPTO_USER_API
1389         help                                     1321         help
1390           Enable the userspace interface for     1322           Enable the userspace interface for symmetric key cipher algorithms.
1391                                                  1323 
1392           See Documentation/crypto/userspace-    1324           See Documentation/crypto/userspace-if.rst and
1393           https://www.chronox.de/libkcapi/htm    1325           https://www.chronox.de/libkcapi/html/index.html
1394                                                  1326 
1395 config CRYPTO_USER_API_RNG                       1327 config CRYPTO_USER_API_RNG
1396         tristate "RNG (random number generato    1328         tristate "RNG (random number generator) algorithms"
1397         depends on NET                           1329         depends on NET
1398         select CRYPTO_RNG                        1330         select CRYPTO_RNG
1399         select CRYPTO_USER_API                   1331         select CRYPTO_USER_API
1400         help                                     1332         help
1401           Enable the userspace interface for     1333           Enable the userspace interface for RNG (random number generator)
1402           algorithms.                            1334           algorithms.
1403                                                  1335 
1404           See Documentation/crypto/userspace-    1336           See Documentation/crypto/userspace-if.rst and
1405           https://www.chronox.de/libkcapi/htm    1337           https://www.chronox.de/libkcapi/html/index.html
1406                                                  1338 
1407 config CRYPTO_USER_API_RNG_CAVP                  1339 config CRYPTO_USER_API_RNG_CAVP
1408         bool "Enable CAVP testing of DRBG"       1340         bool "Enable CAVP testing of DRBG"
1409         depends on CRYPTO_USER_API_RNG && CRY    1341         depends on CRYPTO_USER_API_RNG && CRYPTO_DRBG
1410         help                                     1342         help
1411           Enable extra APIs in the userspace     1343           Enable extra APIs in the userspace interface for NIST CAVP
1412           (Cryptographic Algorithm Validation    1344           (Cryptographic Algorithm Validation Program) testing:
1413           - resetting DRBG entropy               1345           - resetting DRBG entropy
1414           - providing Additional Data            1346           - providing Additional Data
1415                                                  1347 
1416           This should only be enabled for CAV    1348           This should only be enabled for CAVP testing. You should say
1417           no unless you know what this is.       1349           no unless you know what this is.
1418                                                  1350 
1419 config CRYPTO_USER_API_AEAD                      1351 config CRYPTO_USER_API_AEAD
1420         tristate "AEAD cipher algorithms"        1352         tristate "AEAD cipher algorithms"
1421         depends on NET                           1353         depends on NET
1422         select CRYPTO_AEAD                       1354         select CRYPTO_AEAD
1423         select CRYPTO_SKCIPHER                   1355         select CRYPTO_SKCIPHER
1424         select CRYPTO_NULL                       1356         select CRYPTO_NULL
1425         select CRYPTO_USER_API                   1357         select CRYPTO_USER_API
1426         help                                     1358         help
1427           Enable the userspace interface for     1359           Enable the userspace interface for AEAD cipher algorithms.
1428                                                  1360 
1429           See Documentation/crypto/userspace-    1361           See Documentation/crypto/userspace-if.rst and
1430           https://www.chronox.de/libkcapi/htm    1362           https://www.chronox.de/libkcapi/html/index.html
1431                                                  1363 
1432 config CRYPTO_USER_API_ENABLE_OBSOLETE           1364 config CRYPTO_USER_API_ENABLE_OBSOLETE
1433         bool "Obsolete cryptographic algorith    1365         bool "Obsolete cryptographic algorithms"
1434         depends on CRYPTO_USER_API               1366         depends on CRYPTO_USER_API
1435         default y                                1367         default y
1436         help                                     1368         help
1437           Allow obsolete cryptographic algori    1369           Allow obsolete cryptographic algorithms to be selected that have
1438           already been phased out from intern    1370           already been phased out from internal use by the kernel, and are
1439           only useful for userspace clients t    1371           only useful for userspace clients that still rely on them.
1440                                                  1372 
                                                   >> 1373 config CRYPTO_STATS
                                                   >> 1374         bool "Crypto usage statistics"
                                                   >> 1375         depends on CRYPTO_USER
                                                   >> 1376         help
                                                   >> 1377           Enable the gathering of crypto stats.
                                                   >> 1378 
                                                   >> 1379           This collects data sizes, numbers of requests, and numbers
                                                   >> 1380           of errors processed by:
                                                   >> 1381           - AEAD ciphers (encrypt, decrypt)
                                                   >> 1382           - asymmetric key ciphers (encrypt, decrypt, verify, sign)
                                                   >> 1383           - symmetric key ciphers (encrypt, decrypt)
                                                   >> 1384           - compression algorithms (compress, decompress)
                                                   >> 1385           - hash algorithms (hash)
                                                   >> 1386           - key-agreement protocol primitives (setsecret, generate
                                                   >> 1387             public key, compute shared secret)
                                                   >> 1388           - RNG (generate, seed)
                                                   >> 1389 
1441 endmenu                                          1390 endmenu
1442                                                  1391 
1443 config CRYPTO_HASH_INFO                          1392 config CRYPTO_HASH_INFO
1444         bool                                     1393         bool
1445                                                  1394 
1446 if !KMSAN # avoid false positives from assemb    1395 if !KMSAN # avoid false positives from assembly
1447 if ARM                                           1396 if ARM
1448 source "arch/arm/crypto/Kconfig"                 1397 source "arch/arm/crypto/Kconfig"
1449 endif                                            1398 endif
1450 if ARM64                                         1399 if ARM64
1451 source "arch/arm64/crypto/Kconfig"               1400 source "arch/arm64/crypto/Kconfig"
1452 endif                                            1401 endif
1453 if LOONGARCH                                  << 
1454 source "arch/loongarch/crypto/Kconfig"        << 
1455 endif                                         << 
1456 if MIPS                                          1402 if MIPS
1457 source "arch/mips/crypto/Kconfig"                1403 source "arch/mips/crypto/Kconfig"
1458 endif                                            1404 endif
1459 if PPC                                           1405 if PPC
1460 source "arch/powerpc/crypto/Kconfig"             1406 source "arch/powerpc/crypto/Kconfig"
1461 endif                                         << 
1462 if RISCV                                      << 
1463 source "arch/riscv/crypto/Kconfig"            << 
1464 endif                                            1407 endif
1465 if S390                                          1408 if S390
1466 source "arch/s390/crypto/Kconfig"                1409 source "arch/s390/crypto/Kconfig"
1467 endif                                            1410 endif
1468 if SPARC                                         1411 if SPARC
1469 source "arch/sparc/crypto/Kconfig"               1412 source "arch/sparc/crypto/Kconfig"
1470 endif                                            1413 endif
1471 if X86                                           1414 if X86
1472 source "arch/x86/crypto/Kconfig"                 1415 source "arch/x86/crypto/Kconfig"
1473 endif                                            1416 endif
1474 endif                                            1417 endif
1475                                                  1418 
1476 source "drivers/crypto/Kconfig"                  1419 source "drivers/crypto/Kconfig"
1477 source "crypto/asymmetric_keys/Kconfig"          1420 source "crypto/asymmetric_keys/Kconfig"
1478 source "certs/Kconfig"                           1421 source "certs/Kconfig"
1479                                                  1422 
1480 endif   # if CRYPTO                              1423 endif   # if CRYPTO
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php