diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-08-21 07:08:13 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2006-09-20 21:16:30 -0400 |
commit | cce9e06d100df19a327b19f23adad76e7bf63edd (patch) | |
tree | ce10f50679db9ed8db92912c104eef1f05efc3c5 /crypto/Kconfig | |
parent | 9409f38a0c8773c04bff8dda8c552d7ea013d956 (diff) |
[CRYPTO] api: Split out low-level API
The crypto API is made up of the part facing users such as IPsec and the
low-level part which is used by cryptographic entities such as algorithms.
This patch splits out the latter so that the two APIs are more clearly
delineated. As a bonus the low-level API can now be modularised if all
algorithms are built as modules.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/Kconfig')
-rw-r--r-- | crypto/Kconfig | 84 |
1 files changed, 50 insertions, 34 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig index fa927a287a1d..aabc63195222 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -9,47 +9,54 @@ config CRYPTO | |||
9 | help | 9 | help |
10 | This option provides the core Cryptographic API. | 10 | This option provides the core Cryptographic API. |
11 | 11 | ||
12 | if CRYPTO | ||
13 | |||
14 | config CRYPTO_ALGAPI | ||
15 | tristate | ||
16 | help | ||
17 | This option provides the API for cryptographic algorithms. | ||
18 | |||
12 | config CRYPTO_HMAC | 19 | config CRYPTO_HMAC |
13 | bool "HMAC support" | 20 | bool "HMAC support" |
14 | depends on CRYPTO | ||
15 | help | 21 | help |
16 | HMAC: Keyed-Hashing for Message Authentication (RFC2104). | 22 | HMAC: Keyed-Hashing for Message Authentication (RFC2104). |
17 | This is required for IPSec. | 23 | This is required for IPSec. |
18 | 24 | ||
19 | config CRYPTO_NULL | 25 | config CRYPTO_NULL |
20 | tristate "Null algorithms" | 26 | tristate "Null algorithms" |
21 | depends on CRYPTO | 27 | select CRYPTO_ALGAPI |
22 | help | 28 | help |
23 | These are 'Null' algorithms, used by IPsec, which do nothing. | 29 | These are 'Null' algorithms, used by IPsec, which do nothing. |
24 | 30 | ||
25 | config CRYPTO_MD4 | 31 | config CRYPTO_MD4 |
26 | tristate "MD4 digest algorithm" | 32 | tristate "MD4 digest algorithm" |
27 | depends on CRYPTO | 33 | select CRYPTO_ALGAPI |
28 | help | 34 | help |
29 | MD4 message digest algorithm (RFC1320). | 35 | MD4 message digest algorithm (RFC1320). |
30 | 36 | ||
31 | config CRYPTO_MD5 | 37 | config CRYPTO_MD5 |
32 | tristate "MD5 digest algorithm" | 38 | tristate "MD5 digest algorithm" |
33 | depends on CRYPTO | 39 | select CRYPTO_ALGAPI |
34 | help | 40 | help |
35 | MD5 message digest algorithm (RFC1321). | 41 | MD5 message digest algorithm (RFC1321). |
36 | 42 | ||
37 | config CRYPTO_SHA1 | 43 | config CRYPTO_SHA1 |
38 | tristate "SHA1 digest algorithm" | 44 | tristate "SHA1 digest algorithm" |
39 | depends on CRYPTO | 45 | select CRYPTO_ALGAPI |
40 | help | 46 | help |
41 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). | 47 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). |
42 | 48 | ||
43 | config CRYPTO_SHA1_S390 | 49 | config CRYPTO_SHA1_S390 |
44 | tristate "SHA1 digest algorithm (s390)" | 50 | tristate "SHA1 digest algorithm (s390)" |
45 | depends on CRYPTO && S390 | 51 | depends on S390 |
52 | select CRYPTO_ALGAPI | ||
46 | help | 53 | help |
47 | This is the s390 hardware accelerated implementation of the | 54 | This is the s390 hardware accelerated implementation of the |
48 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). | 55 | SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2). |
49 | 56 | ||
50 | config CRYPTO_SHA256 | 57 | config CRYPTO_SHA256 |
51 | tristate "SHA256 digest algorithm" | 58 | tristate "SHA256 digest algorithm" |
52 | depends on CRYPTO | 59 | select CRYPTO_ALGAPI |
53 | help | 60 | help |
54 | SHA256 secure hash standard (DFIPS 180-2). | 61 | SHA256 secure hash standard (DFIPS 180-2). |
55 | 62 | ||
@@ -58,7 +65,8 @@ config CRYPTO_SHA256 | |||
58 | 65 | ||
59 | config CRYPTO_SHA256_S390 | 66 | config CRYPTO_SHA256_S390 |
60 | tristate "SHA256 digest algorithm (s390)" | 67 | tristate "SHA256 digest algorithm (s390)" |
61 | depends on CRYPTO && S390 | 68 | depends on S390 |
69 | select CRYPTO_ALGAPI | ||
62 | help | 70 | help |
63 | This is the s390 hardware accelerated implementation of the | 71 | This is the s390 hardware accelerated implementation of the |
64 | SHA256 secure hash standard (DFIPS 180-2). | 72 | SHA256 secure hash standard (DFIPS 180-2). |
@@ -68,7 +76,7 @@ config CRYPTO_SHA256_S390 | |||
68 | 76 | ||
69 | config CRYPTO_SHA512 | 77 | config CRYPTO_SHA512 |
70 | tristate "SHA384 and SHA512 digest algorithms" | 78 | tristate "SHA384 and SHA512 digest algorithms" |
71 | depends on CRYPTO | 79 | select CRYPTO_ALGAPI |
72 | help | 80 | help |
73 | SHA512 secure hash standard (DFIPS 180-2). | 81 | SHA512 secure hash standard (DFIPS 180-2). |
74 | 82 | ||
@@ -80,7 +88,7 @@ config CRYPTO_SHA512 | |||
80 | 88 | ||
81 | config CRYPTO_WP512 | 89 | config CRYPTO_WP512 |
82 | tristate "Whirlpool digest algorithms" | 90 | tristate "Whirlpool digest algorithms" |
83 | depends on CRYPTO | 91 | select CRYPTO_ALGAPI |
84 | help | 92 | help |
85 | Whirlpool hash algorithm 512, 384 and 256-bit hashes | 93 | Whirlpool hash algorithm 512, 384 and 256-bit hashes |
86 | 94 | ||
@@ -92,7 +100,7 @@ config CRYPTO_WP512 | |||
92 | 100 | ||
93 | config CRYPTO_TGR192 | 101 | config CRYPTO_TGR192 |
94 | tristate "Tiger digest algorithms" | 102 | tristate "Tiger digest algorithms" |
95 | depends on CRYPTO | 103 | select CRYPTO_ALGAPI |
96 | help | 104 | help |
97 | Tiger hash algorithm 192, 160 and 128-bit hashes | 105 | Tiger hash algorithm 192, 160 and 128-bit hashes |
98 | 106 | ||
@@ -105,19 +113,20 @@ config CRYPTO_TGR192 | |||
105 | 113 | ||
106 | config CRYPTO_DES | 114 | config CRYPTO_DES |
107 | tristate "DES and Triple DES EDE cipher algorithms" | 115 | tristate "DES and Triple DES EDE cipher algorithms" |
108 | depends on CRYPTO | 116 | select CRYPTO_ALGAPI |
109 | help | 117 | help |
110 | DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). | 118 | DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). |
111 | 119 | ||
112 | config CRYPTO_DES_S390 | 120 | config CRYPTO_DES_S390 |
113 | tristate "DES and Triple DES cipher algorithms (s390)" | 121 | tristate "DES and Triple DES cipher algorithms (s390)" |
114 | depends on CRYPTO && S390 | 122 | depends on S390 |
123 | select CRYPTO_ALGAPI | ||
115 | help | 124 | help |
116 | DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). | 125 | DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3). |
117 | 126 | ||
118 | config CRYPTO_BLOWFISH | 127 | config CRYPTO_BLOWFISH |
119 | tristate "Blowfish cipher algorithm" | 128 | tristate "Blowfish cipher algorithm" |
120 | depends on CRYPTO | 129 | select CRYPTO_ALGAPI |
121 | help | 130 | help |
122 | Blowfish cipher algorithm, by Bruce Schneier. | 131 | Blowfish cipher algorithm, by Bruce Schneier. |
123 | 132 | ||
@@ -130,7 +139,7 @@ config CRYPTO_BLOWFISH | |||
130 | 139 | ||
131 | config CRYPTO_TWOFISH | 140 | config CRYPTO_TWOFISH |
132 | tristate "Twofish cipher algorithm" | 141 | tristate "Twofish cipher algorithm" |
133 | depends on CRYPTO | 142 | select CRYPTO_ALGAPI |
134 | select CRYPTO_TWOFISH_COMMON | 143 | select CRYPTO_TWOFISH_COMMON |
135 | help | 144 | help |
136 | Twofish cipher algorithm. | 145 | Twofish cipher algorithm. |
@@ -145,14 +154,14 @@ config CRYPTO_TWOFISH | |||
145 | 154 | ||
146 | config CRYPTO_TWOFISH_COMMON | 155 | config CRYPTO_TWOFISH_COMMON |
147 | tristate | 156 | tristate |
148 | depends on CRYPTO | ||
149 | help | 157 | help |
150 | Common parts of the Twofish cipher algorithm shared by the | 158 | Common parts of the Twofish cipher algorithm shared by the |
151 | generic c and the assembler implementations. | 159 | generic c and the assembler implementations. |
152 | 160 | ||
153 | config CRYPTO_TWOFISH_586 | 161 | config CRYPTO_TWOFISH_586 |
154 | tristate "Twofish cipher algorithms (i586)" | 162 | tristate "Twofish cipher algorithms (i586)" |
155 | depends on CRYPTO && ((X86 || UML_X86) && !64BIT) | 163 | depends on (X86 || UML_X86) && !64BIT |
164 | select CRYPTO_ALGAPI | ||
156 | select CRYPTO_TWOFISH_COMMON | 165 | select CRYPTO_TWOFISH_COMMON |
157 | help | 166 | help |
158 | Twofish cipher algorithm. | 167 | Twofish cipher algorithm. |
@@ -167,7 +176,8 @@ config CRYPTO_TWOFISH_586 | |||
167 | 176 | ||
168 | config CRYPTO_TWOFISH_X86_64 | 177 | config CRYPTO_TWOFISH_X86_64 |
169 | tristate "Twofish cipher algorithm (x86_64)" | 178 | tristate "Twofish cipher algorithm (x86_64)" |
170 | depends on CRYPTO && ((X86 || UML_X86) && 64BIT) | 179 | depends on (X86 || UML_X86) && 64BIT |
180 | select CRYPTO_ALGAPI | ||
171 | select CRYPTO_TWOFISH_COMMON | 181 | select CRYPTO_TWOFISH_COMMON |
172 | help | 182 | help |
173 | Twofish cipher algorithm (x86_64). | 183 | Twofish cipher algorithm (x86_64). |
@@ -182,7 +192,7 @@ config CRYPTO_TWOFISH_X86_64 | |||
182 | 192 | ||
183 | config CRYPTO_SERPENT | 193 | config CRYPTO_SERPENT |
184 | tristate "Serpent cipher algorithm" | 194 | tristate "Serpent cipher algorithm" |
185 | depends on CRYPTO | 195 | select CRYPTO_ALGAPI |
186 | help | 196 | help |
187 | Serpent cipher algorithm, by Anderson, Biham & Knudsen. | 197 | Serpent cipher algorithm, by Anderson, Biham & Knudsen. |
188 | 198 | ||
@@ -195,7 +205,7 @@ config CRYPTO_SERPENT | |||
195 | 205 | ||
196 | config CRYPTO_AES | 206 | config CRYPTO_AES |
197 | tristate "AES cipher algorithms" | 207 | tristate "AES cipher algorithms" |
198 | depends on CRYPTO | 208 | select CRYPTO_ALGAPI |
199 | help | 209 | help |
200 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | 210 | AES cipher algorithms (FIPS-197). AES uses the Rijndael |
201 | algorithm. | 211 | algorithm. |
@@ -215,7 +225,8 @@ config CRYPTO_AES | |||
215 | 225 | ||
216 | config CRYPTO_AES_586 | 226 | config CRYPTO_AES_586 |
217 | tristate "AES cipher algorithms (i586)" | 227 | tristate "AES cipher algorithms (i586)" |
218 | depends on CRYPTO && ((X86 || UML_X86) && !64BIT) | 228 | depends on (X86 || UML_X86) && !64BIT |
229 | select CRYPTO_ALGAPI | ||
219 | help | 230 | help |
220 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | 231 | AES cipher algorithms (FIPS-197). AES uses the Rijndael |
221 | algorithm. | 232 | algorithm. |
@@ -235,7 +246,8 @@ config CRYPTO_AES_586 | |||
235 | 246 | ||
236 | config CRYPTO_AES_X86_64 | 247 | config CRYPTO_AES_X86_64 |
237 | tristate "AES cipher algorithms (x86_64)" | 248 | tristate "AES cipher algorithms (x86_64)" |
238 | depends on CRYPTO && ((X86 || UML_X86) && 64BIT) | 249 | depends on (X86 || UML_X86) && 64BIT |
250 | select CRYPTO_ALGAPI | ||
239 | help | 251 | help |
240 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | 252 | AES cipher algorithms (FIPS-197). AES uses the Rijndael |
241 | algorithm. | 253 | algorithm. |
@@ -255,7 +267,8 @@ config CRYPTO_AES_X86_64 | |||
255 | 267 | ||
256 | config CRYPTO_AES_S390 | 268 | config CRYPTO_AES_S390 |
257 | tristate "AES cipher algorithms (s390)" | 269 | tristate "AES cipher algorithms (s390)" |
258 | depends on CRYPTO && S390 | 270 | depends on S390 |
271 | select CRYPTO_ALGAPI | ||
259 | help | 272 | help |
260 | This is the s390 hardware accelerated implementation of the | 273 | This is the s390 hardware accelerated implementation of the |
261 | AES cipher algorithms (FIPS-197). AES uses the Rijndael | 274 | AES cipher algorithms (FIPS-197). AES uses the Rijndael |
@@ -275,21 +288,21 @@ config CRYPTO_AES_S390 | |||
275 | 288 | ||
276 | config CRYPTO_CAST5 | 289 | config CRYPTO_CAST5 |
277 | tristate "CAST5 (CAST-128) cipher algorithm" | 290 | tristate "CAST5 (CAST-128) cipher algorithm" |
278 | depends on CRYPTO | 291 | select CRYPTO_ALGAPI |
279 | help | 292 | help |
280 | The CAST5 encryption algorithm (synonymous with CAST-128) is | 293 | The CAST5 encryption algorithm (synonymous with CAST-128) is |
281 | described in RFC2144. | 294 | described in RFC2144. |
282 | 295 | ||
283 | config CRYPTO_CAST6 | 296 | config CRYPTO_CAST6 |
284 | tristate "CAST6 (CAST-256) cipher algorithm" | 297 | tristate "CAST6 (CAST-256) cipher algorithm" |
285 | depends on CRYPTO | 298 | select CRYPTO_ALGAPI |
286 | help | 299 | help |
287 | The CAST6 encryption algorithm (synonymous with CAST-256) is | 300 | The CAST6 encryption algorithm (synonymous with CAST-256) is |
288 | described in RFC2612. | 301 | described in RFC2612. |
289 | 302 | ||
290 | config CRYPTO_TEA | 303 | config CRYPTO_TEA |
291 | tristate "TEA, XTEA and XETA cipher algorithms" | 304 | tristate "TEA, XTEA and XETA cipher algorithms" |
292 | depends on CRYPTO | 305 | select CRYPTO_ALGAPI |
293 | help | 306 | help |
294 | TEA cipher algorithm. | 307 | TEA cipher algorithm. |
295 | 308 | ||
@@ -306,7 +319,7 @@ config CRYPTO_TEA | |||
306 | 319 | ||
307 | config CRYPTO_ARC4 | 320 | config CRYPTO_ARC4 |
308 | tristate "ARC4 cipher algorithm" | 321 | tristate "ARC4 cipher algorithm" |
309 | depends on CRYPTO | 322 | select CRYPTO_ALGAPI |
310 | help | 323 | help |
311 | ARC4 cipher algorithm. | 324 | ARC4 cipher algorithm. |
312 | 325 | ||
@@ -317,7 +330,7 @@ config CRYPTO_ARC4 | |||
317 | 330 | ||
318 | config CRYPTO_KHAZAD | 331 | config CRYPTO_KHAZAD |
319 | tristate "Khazad cipher algorithm" | 332 | tristate "Khazad cipher algorithm" |
320 | depends on CRYPTO | 333 | select CRYPTO_ALGAPI |
321 | help | 334 | help |
322 | Khazad cipher algorithm. | 335 | Khazad cipher algorithm. |
323 | 336 | ||
@@ -330,7 +343,7 @@ config CRYPTO_KHAZAD | |||
330 | 343 | ||
331 | config CRYPTO_ANUBIS | 344 | config CRYPTO_ANUBIS |
332 | tristate "Anubis cipher algorithm" | 345 | tristate "Anubis cipher algorithm" |
333 | depends on CRYPTO | 346 | select CRYPTO_ALGAPI |
334 | help | 347 | help |
335 | Anubis cipher algorithm. | 348 | Anubis cipher algorithm. |
336 | 349 | ||
@@ -345,7 +358,7 @@ config CRYPTO_ANUBIS | |||
345 | 358 | ||
346 | config CRYPTO_DEFLATE | 359 | config CRYPTO_DEFLATE |
347 | tristate "Deflate compression algorithm" | 360 | tristate "Deflate compression algorithm" |
348 | depends on CRYPTO | 361 | select CRYPTO_ALGAPI |
349 | select ZLIB_INFLATE | 362 | select ZLIB_INFLATE |
350 | select ZLIB_DEFLATE | 363 | select ZLIB_DEFLATE |
351 | help | 364 | help |
@@ -356,7 +369,7 @@ config CRYPTO_DEFLATE | |||
356 | 369 | ||
357 | config CRYPTO_MICHAEL_MIC | 370 | config CRYPTO_MICHAEL_MIC |
358 | tristate "Michael MIC keyed digest algorithm" | 371 | tristate "Michael MIC keyed digest algorithm" |
359 | depends on CRYPTO | 372 | select CRYPTO_ALGAPI |
360 | help | 373 | help |
361 | Michael MIC is used for message integrity protection in TKIP | 374 | Michael MIC is used for message integrity protection in TKIP |
362 | (IEEE 802.11i). This algorithm is required for TKIP, but it | 375 | (IEEE 802.11i). This algorithm is required for TKIP, but it |
@@ -365,7 +378,7 @@ config CRYPTO_MICHAEL_MIC | |||
365 | 378 | ||
366 | config CRYPTO_CRC32C | 379 | config CRYPTO_CRC32C |
367 | tristate "CRC32c CRC algorithm" | 380 | tristate "CRC32c CRC algorithm" |
368 | depends on CRYPTO | 381 | select CRYPTO_ALGAPI |
369 | select LIBCRC32C | 382 | select LIBCRC32C |
370 | help | 383 | help |
371 | Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used | 384 | Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used |
@@ -375,10 +388,13 @@ config CRYPTO_CRC32C | |||
375 | 388 | ||
376 | config CRYPTO_TEST | 389 | config CRYPTO_TEST |
377 | tristate "Testing module" | 390 | tristate "Testing module" |
378 | depends on CRYPTO && m | 391 | depends on m |
392 | select CRYPTO_ALGAPI | ||
379 | help | 393 | help |
380 | Quick & dirty crypto test module. | 394 | Quick & dirty crypto test module. |
381 | 395 | ||
382 | source "drivers/crypto/Kconfig" | 396 | source "drivers/crypto/Kconfig" |
383 | endmenu | ||
384 | 397 | ||
398 | endif # if CRYPTO | ||
399 | |||
400 | endmenu | ||