blob: 14c032de276e6bf71b745ea25bb820f5c28a5580 [file] [log] [blame]
Ard Biesheuvel746b2e02019-11-08 13:22:07 +01001# SPDX-License-Identifier: GPL-2.0
2
3comment "Crypto library routines"
4
5config CRYPTO_LIB_AES
6 tristate
7
8config CRYPTO_LIB_ARC4
9 tristate
10
Jason A. Donenfeld66d7fb92019-11-08 13:22:28 +010011config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
12 tristate
13 help
14 Declares whether the architecture provides an arch-specific
15 accelerated implementation of the Blake2s library interface,
16 either builtin or as a module.
17
18config CRYPTO_LIB_BLAKE2S_GENERIC
19 tristate
20 help
21 This symbol can be depended upon by arch implementations of the
22 Blake2s library interface that require the generic code as a
23 fallback, e.g., for SIMD implementations. If no arch specific
24 implementation is enabled, this implementation serves the users
25 of CRYPTO_LIB_BLAKE2S.
26
27config CRYPTO_LIB_BLAKE2S
28 tristate "BLAKE2s hash function library"
29 depends on CRYPTO_ARCH_HAVE_LIB_BLAKE2S || !CRYPTO_ARCH_HAVE_LIB_BLAKE2S
30 select CRYPTO_LIB_BLAKE2S_GENERIC if CRYPTO_ARCH_HAVE_LIB_BLAKE2S=n
31 help
32 Enable the Blake2s library interface. This interface may be fulfilled
33 by either the generic implementation or an arch-specific one, if one
34 is available and enabled.
35
Ard Biesheuvel5fb8ef22019-11-08 13:22:08 +010036config CRYPTO_ARCH_HAVE_LIB_CHACHA
37 tristate
38 help
39 Declares whether the architecture provides an arch-specific
40 accelerated implementation of the ChaCha library interface,
41 either builtin or as a module.
42
43config CRYPTO_LIB_CHACHA_GENERIC
44 tristate
45 select CRYPTO_ALGAPI
46 help
47 This symbol can be depended upon by arch implementations of the
48 ChaCha library interface that require the generic code as a
49 fallback, e.g., for SIMD implementations. If no arch specific
50 implementation is enabled, this implementation serves the users
51 of CRYPTO_LIB_CHACHA.
52
53config CRYPTO_LIB_CHACHA
54 tristate "ChaCha library interface"
55 depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
56 select CRYPTO_LIB_CHACHA_GENERIC if CRYPTO_ARCH_HAVE_LIB_CHACHA=n
57 help
58 Enable the ChaCha library interface. This interface may be fulfilled
59 by either the generic implementation or an arch-specific one, if one
60 is available and enabled.
61
Jason A. Donenfeld0ed42a6f2019-11-08 13:22:32 +010062config CRYPTO_ARCH_HAVE_LIB_CURVE25519
63 tristate
64 help
65 Declares whether the architecture provides an arch-specific
66 accelerated implementation of the Curve25519 library interface,
67 either builtin or as a module.
68
69config CRYPTO_LIB_CURVE25519_GENERIC
70 tristate
71 help
72 This symbol can be depended upon by arch implementations of the
73 Curve25519 library interface that require the generic code as a
74 fallback, e.g., for SIMD implementations. If no arch specific
75 implementation is enabled, this implementation serves the users
76 of CRYPTO_LIB_CURVE25519.
77
78config CRYPTO_LIB_CURVE25519
79 tristate "Curve25519 scalar multiplication library"
80 depends on CRYPTO_ARCH_HAVE_LIB_CURVE25519 || !CRYPTO_ARCH_HAVE_LIB_CURVE25519
81 select CRYPTO_LIB_CURVE25519_GENERIC if CRYPTO_ARCH_HAVE_LIB_CURVE25519=n
82 help
83 Enable the Curve25519 library interface. This interface may be
84 fulfilled by either the generic implementation or an arch-specific
85 one, if one is available and enabled.
86
Ard Biesheuvel746b2e02019-11-08 13:22:07 +010087config CRYPTO_LIB_DES
88 tristate
89
Ard Biesheuvela1d93062019-11-08 13:22:21 +010090config CRYPTO_LIB_POLY1305_RSIZE
91 int
Ard Biesheuvela11d0552019-11-08 13:22:26 +010092 default 2 if MIPS
Jason A. Donenfeldd7d7b852020-01-05 22:40:48 -050093 default 11 if X86_64
Ard Biesheuvela6b803b2019-11-08 13:22:25 +010094 default 9 if ARM || ARM64
Ard Biesheuvela1d93062019-11-08 13:22:21 +010095 default 1
96
97config CRYPTO_ARCH_HAVE_LIB_POLY1305
98 tristate
99 help
100 Declares whether the architecture provides an arch-specific
101 accelerated implementation of the Poly1305 library interface,
102 either builtin or as a module.
103
Ard Biesheuvel48ea8c62019-11-08 13:22:19 +0100104config CRYPTO_LIB_POLY1305_GENERIC
105 tristate
Ard Biesheuvela1d93062019-11-08 13:22:21 +0100106 help
107 This symbol can be depended upon by arch implementations of the
108 Poly1305 library interface that require the generic code as a
109 fallback, e.g., for SIMD implementations. If no arch specific
110 implementation is enabled, this implementation serves the users
111 of CRYPTO_LIB_POLY1305.
112
113config CRYPTO_LIB_POLY1305
114 tristate "Poly1305 library interface"
115 depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
116 select CRYPTO_LIB_POLY1305_GENERIC if CRYPTO_ARCH_HAVE_LIB_POLY1305=n
117 help
118 Enable the Poly1305 library interface. This interface may be fulfilled
119 by either the generic implementation or an arch-specific one, if one
120 is available and enabled.
Ard Biesheuvel48ea8c62019-11-08 13:22:19 +0100121
Ard Biesheuveled200782019-11-08 13:22:39 +0100122config CRYPTO_LIB_CHACHA20POLY1305
123 tristate "ChaCha20-Poly1305 AEAD support (8-byte nonce library version)"
124 depends on CRYPTO_ARCH_HAVE_LIB_CHACHA || !CRYPTO_ARCH_HAVE_LIB_CHACHA
125 depends on CRYPTO_ARCH_HAVE_LIB_POLY1305 || !CRYPTO_ARCH_HAVE_LIB_POLY1305
126 select CRYPTO_LIB_CHACHA
127 select CRYPTO_LIB_POLY1305
128
Ard Biesheuvel746b2e02019-11-08 13:22:07 +0100129config CRYPTO_LIB_SHA256
130 tristate