Merge tag '6.9-rc5-cifs-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6
[sfrench/cifs-2.6.git] / lib / crypto / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "Crypto library routines"
4
5 config CRYPTO_LIB_UTILS
6         tristate
7
8 config CRYPTO_LIB_AES
9         tristate
10
11 config CRYPTO_LIB_AESGCM
12         tristate
13         select CRYPTO_LIB_AES
14         select CRYPTO_LIB_GF128MUL
15         select CRYPTO_LIB_UTILS
16
17 config CRYPTO_LIB_ARC4
18         tristate
19
20 config CRYPTO_LIB_GF128MUL
21         tristate
22
23 config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
24         bool
25         help
26           Declares whether the architecture provides an arch-specific
27           accelerated implementation of the Blake2s library interface,
28           either builtin or as a module.
29
30 config CRYPTO_LIB_BLAKE2S_GENERIC
31         def_bool !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
32         help
33           This symbol can be depended upon by arch implementations of the
34           Blake2s library interface that require the generic code as a
35           fallback, e.g., for SIMD implementations. If no arch specific
36           implementation is enabled, this implementation serves the users
37           of CRYPTO_LIB_BLAKE2S.
38
39 config CRYPTO_ARCH_HAVE_LIB_CHACHA
40         tristate
41         help
42           Declares whether the architecture provides an arch-specific
43           accelerated implementation of the ChaCha library interface,
44           either builtin or as a module.
45
46 config CRYPTO_LIB_CHACHA_GENERIC
47         tristate
48         select CRYPTO_LIB_UTILS
49         help
50           This symbol can be depended upon by arch implementations of the
51           ChaCha library interface that require the generic code as a
52           fallback, e.g., for SIMD implementations. If no arch specific
53           implementation is enabled, this implementation serves the users
54           of CRYPTO_LIB_CHACHA.
55
56 config CRYPTO_LIB_CHACHA
57         tristate "ChaCha library interface"
58         depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
59         select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
60         help
61           Enable the ChaCha library interface. This interface may be fulfilled
62           by either the generic implementation or an arch-specific one, if one
63           is available and enabled.
64
65 config CRYPTO_ARCH_HAVE_LIB_CURVE25519
66         tristate
67         help
68           Declares whether the architecture provides an arch-specific
69           accelerated implementation of the Curve25519 library interface,
70           either builtin or as a module.
71
72 config CRYPTO_LIB_CURVE25519_GENERIC
73         tristate
74         help
75           This symbol can be depended upon by arch implementations of the
76           Curve25519 library interface that require the generic code as a
77           fallback, e.g., for SIMD implementations. If no arch specific
78           implementation is enabled, this implementation serves the users
79           of CRYPTO_LIB_CURVE25519.
80
81 config CRYPTO_LIB_CURVE25519
82         tristate "Curve25519 scalar multiplication library"
83         depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
84         select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
85         select CRYPTO_LIB_UTILS
86         help
87           Enable the Curve25519 library interface. This interface may be
88           fulfilled by either the generic implementation or an arch-specific
89           one, if one is available and enabled.
90
91 config CRYPTO_LIB_DES
92         tristate
93
94 config CRYPTO_LIB_POLY1305_RSIZE
95         int
96         default 2 if MIPS
97         default 11 if X86_64
98         default 9 if ARM || ARM64
99         default 1
100
101 config CRYPTO_ARCH_HAVE_LIB_POLY1305
102         tristate
103         help
104           Declares whether the architecture provides an arch-specific
105           accelerated implementation of the Poly1305 library interface,
106           either builtin or as a module.
107
108 config CRYPTO_LIB_POLY1305_GENERIC
109         tristate
110         help
111           This symbol can be depended upon by arch implementations of the
112           Poly1305 library interface that require the generic code as a
113           fallback, e.g., for SIMD implementations. If no arch specific
114           implementation is enabled, this implementation serves the users
115           of CRYPTO_LIB_POLY1305.
116
117 config CRYPTO_LIB_POLY1305
118         tristate "Poly1305 library interface"
119         depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
120         select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
121         help
122           Enable the Poly1305 library interface. This interface may be fulfilled
123           by either the generic implementation or an arch-specific one, if one
124           is available and enabled.
125
126 config CRYPTO_LIB_CHACHA20POLY1305
127         tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
128         depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
129         depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
130         depends on CRYPTO
131         select CRYPTO_LIB_CHACHA
132         select CRYPTO_LIB_POLY1305
133         select CRYPTO_ALGAPI
134
135 config CRYPTO_LIB_SHA1
136         tristate
137
138 config CRYPTO_LIB_SHA256
139         tristate
140
141 endmenu