summaryrefslogtreecommitdiff
path: root/arch/powerpc/crypto/Kconfig
blob: 46a4c85e85e2452cc3e481b1c998cdd7443c42d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# SPDX-License-Identifier: GPL-2.0

menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"

config CRYPTO_CURVE25519_PPC64
	tristate "Public key crypto: Curve25519 (PowerPC64)"
	depends on PPC64 && CPU_LITTLE_ENDIAN
	select CRYPTO_LIB_CURVE25519_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
	help
	  Curve25519 algorithm

	  Architecture: PowerPC64
	  - Little-endian

config CRYPTO_CRC32C_VPMSUM
	tristate "CRC32c"
	depends on PPC64 && ALTIVEC
	select CRYPTO_HASH
	select CRC32
	help
	  CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720)

	  Architecture: powerpc64 using
	  - AltiVec extensions

	  Enable on POWER8 and newer processors for improved performance.

config CRYPTO_CRCT10DIF_VPMSUM
	tristate "CRC32T10DIF"
	depends on PPC64 && ALTIVEC && CRC_T10DIF
	select CRYPTO_HASH
	help
	  CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF)

	  Architecture: powerpc64 using
	  - AltiVec extensions

	  Enable on POWER8 and newer processors for improved performance.

config CRYPTO_VPMSUM_TESTER
	tristate "CRC32c and CRC32T10DIF hardware acceleration tester"
	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
	help
	  Stress test for CRC32c and CRCT10DIF algorithms implemented with
	  powerpc64 AltiVec extensions (POWER8 vpmsum instructions).
	  Unless you are testing these algorithms, you don't need this.

config CRYPTO_MD5_PPC
	tristate "Digests: MD5"
	depends on PPC
	select CRYPTO_HASH
	help
	  MD5 message digest algorithm (RFC1321)

	  Architecture: powerpc

config CRYPTO_SHA1_PPC
	tristate "Hash functions: SHA-1"
	depends on PPC
	help
	  SHA-1 secure hash algorithm (FIPS 180)

	  Architecture: powerpc

config CRYPTO_SHA1_PPC_SPE
	tristate "Hash functions: SHA-1 (SPE)"
	depends on PPC && SPE
	help
	  SHA-1 secure hash algorithm (FIPS 180)

	  Architecture: powerpc using
	  - SPE (Signal Processing Engine) extensions

config CRYPTO_SHA256_PPC_SPE
	tristate "Hash functions: SHA-224 and SHA-256 (SPE)"
	depends on PPC && SPE
	select CRYPTO_SHA256
	select CRYPTO_HASH
	help
	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)

	  Architecture: powerpc using
	  - SPE (Signal Processing Engine) extensions

config CRYPTO_AES_PPC_SPE
	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)"
	depends on PPC && SPE
	select CRYPTO_SKCIPHER
	help
	  Block ciphers: AES cipher algorithms (FIPS-197)
	  Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes

	  Architecture: powerpc using:
	  - SPE (Signal Processing Engine) extensions

	  SPE is available for:
	  - Processor Type: Freescale 8500
	  - CPU selection: e500 (8540)

	  This module should only be used for low power (router) devices
	  without hardware AES acceleration (e.g. caam crypto). It reduces the
	  size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
	  timining attacks. Nevertheless it might be not as secure as other
	  architecture specific assembler implementations that work on 1KB
	  tables or 256 bytes S-boxes.

config CRYPTO_AES_GCM_P10
	tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)"
	depends on BROKEN
	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
	select CRYPTO_LIB_AES
	select CRYPTO_ALGAPI
	select CRYPTO_AEAD
	select CRYPTO_SKCIPHER
	help
	  AEAD cipher: AES cipher algorithms (FIPS-197)
	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
	  Architecture: powerpc64 using:
	    - little-endian
	    - Power10 or later features

	  Support for cryptographic acceleration instructions on Power10 or
	  later CPU. This module supports stitched acceleration for AES/GCM.

config CRYPTO_CHACHA20_P10
	tristate "Ciphers: ChaCha20, XChacha20, XChacha12 (P10 or later)"
	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
	select CRYPTO_SKCIPHER
	select CRYPTO_LIB_CHACHA_GENERIC
	select CRYPTO_ARCH_HAVE_LIB_CHACHA
	help
	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
	  stream cipher algorithms

	  Architecture: PowerPC64
	  - Power10 or later
	  - Little-endian

config CRYPTO_POLY1305_P10
	tristate "Hash functions: Poly1305 (P10 or later)"
	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
	select CRYPTO_HASH
	select CRYPTO_LIB_POLY1305_GENERIC
	help
	  Poly1305 authenticator algorithm (RFC7539)

	  Architecture: PowerPC64
	  - Power10 or later
	  - Little-endian

config CRYPTO_DEV_VMX
        bool "Support for VMX cryptographic acceleration instructions"
        depends on PPC64 && VSX
        help
          Support for VMX cryptographic acceleration instructions.

config CRYPTO_DEV_VMX_ENCRYPT
	tristate "Encryption acceleration support on P8 CPU"
	depends on CRYPTO_DEV_VMX
	select CRYPTO_AES
	select CRYPTO_CBC
	select CRYPTO_CTR
	select CRYPTO_GHASH
	select CRYPTO_XTS
	default m
	help
	  Support for VMX cryptographic acceleration instructions on Power8 CPU.
	  This module supports acceleration for AES and GHASH in hardware. If you
	  choose 'M' here, this module will be called vmx-crypto.

endmenu