xref: /openbmc/linux/arch/powerpc/crypto/Kconfig (revision 6a490a4e8b4c015113045d045dc1ae94735211bb)
1*6a490a4eSRobert Elliott# SPDX-License-Identifier: GPL-2.0
2*6a490a4eSRobert Elliott
3*6a490a4eSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
4*6a490a4eSRobert Elliott
5*6a490a4eSRobert Elliottconfig CRYPTO_CRC32C_VPMSUM
6*6a490a4eSRobert Elliott	tristate "CRC32c CRC algorithm (powerpc64)"
7*6a490a4eSRobert Elliott	depends on PPC64 && ALTIVEC
8*6a490a4eSRobert Elliott	select CRYPTO_HASH
9*6a490a4eSRobert Elliott	select CRC32
10*6a490a4eSRobert Elliott	help
11*6a490a4eSRobert Elliott	  CRC32c algorithm implemented using vector polynomial multiply-sum
12*6a490a4eSRobert Elliott	  (vpmsum) instructions, introduced in POWER8. Enable on POWER8
13*6a490a4eSRobert Elliott	  and newer processors for improved performance.
14*6a490a4eSRobert Elliott
15*6a490a4eSRobert Elliottconfig CRYPTO_CRCT10DIF_VPMSUM
16*6a490a4eSRobert Elliott	tristate "CRC32T10DIF powerpc64 hardware acceleration"
17*6a490a4eSRobert Elliott	depends on PPC64 && ALTIVEC && CRC_T10DIF
18*6a490a4eSRobert Elliott	select CRYPTO_HASH
19*6a490a4eSRobert Elliott	help
20*6a490a4eSRobert Elliott	  CRC10T10DIF algorithm implemented using vector polynomial
21*6a490a4eSRobert Elliott	  multiply-sum (vpmsum) instructions, introduced in POWER8. Enable on
22*6a490a4eSRobert Elliott	  POWER8 and newer processors for improved performance.
23*6a490a4eSRobert Elliott
24*6a490a4eSRobert Elliottconfig CRYPTO_VPMSUM_TESTER
25*6a490a4eSRobert Elliott	tristate "Powerpc64 vpmsum hardware acceleration tester"
26*6a490a4eSRobert Elliott	depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM
27*6a490a4eSRobert Elliott	help
28*6a490a4eSRobert Elliott	  Stress test for CRC32c and CRC-T10DIF algorithms implemented with
29*6a490a4eSRobert Elliott	  POWER8 vpmsum instructions.
30*6a490a4eSRobert Elliott	  Unless you are testing these algorithms, you don't need this.
31*6a490a4eSRobert Elliott
32*6a490a4eSRobert Elliottconfig CRYPTO_MD5_PPC
33*6a490a4eSRobert Elliott	tristate "MD5 digest algorithm (PPC)"
34*6a490a4eSRobert Elliott	depends on PPC
35*6a490a4eSRobert Elliott	select CRYPTO_HASH
36*6a490a4eSRobert Elliott	help
37*6a490a4eSRobert Elliott	  MD5 message digest algorithm (RFC1321) implemented
38*6a490a4eSRobert Elliott	  in PPC assembler.
39*6a490a4eSRobert Elliott
40*6a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC
41*6a490a4eSRobert Elliott	tristate "SHA1 digest algorithm (powerpc)"
42*6a490a4eSRobert Elliott	depends on PPC
43*6a490a4eSRobert Elliott	help
44*6a490a4eSRobert Elliott	  This is the powerpc hardware accelerated implementation of the
45*6a490a4eSRobert Elliott	  SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
46*6a490a4eSRobert Elliott
47*6a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC_SPE
48*6a490a4eSRobert Elliott	tristate "SHA1 digest algorithm (PPC SPE)"
49*6a490a4eSRobert Elliott	depends on PPC && SPE
50*6a490a4eSRobert Elliott	help
51*6a490a4eSRobert Elliott	  SHA-1 secure hash standard (DFIPS 180-4) implemented
52*6a490a4eSRobert Elliott	  using powerpc SPE SIMD instruction set.
53*6a490a4eSRobert Elliott
54*6a490a4eSRobert Elliottconfig CRYPTO_SHA256_PPC_SPE
55*6a490a4eSRobert Elliott	tristate "SHA224 and SHA256 digest algorithm (PPC SPE)"
56*6a490a4eSRobert Elliott	depends on PPC && SPE
57*6a490a4eSRobert Elliott	select CRYPTO_SHA256
58*6a490a4eSRobert Elliott	select CRYPTO_HASH
59*6a490a4eSRobert Elliott	help
60*6a490a4eSRobert Elliott	  SHA224 and SHA256 secure hash standard (DFIPS 180-2)
61*6a490a4eSRobert Elliott	  implemented using powerpc SPE SIMD instruction set.
62*6a490a4eSRobert Elliott
63*6a490a4eSRobert Elliottconfig CRYPTO_AES_PPC_SPE
64*6a490a4eSRobert Elliott	tristate "AES cipher algorithms (PPC SPE)"
65*6a490a4eSRobert Elliott	depends on PPC && SPE
66*6a490a4eSRobert Elliott	select CRYPTO_SKCIPHER
67*6a490a4eSRobert Elliott	help
68*6a490a4eSRobert Elliott	  AES cipher algorithms (FIPS-197). Additionally the acceleration
69*6a490a4eSRobert Elliott	  for popular block cipher modes ECB, CBC, CTR and XTS is supported.
70*6a490a4eSRobert Elliott	  This module should only be used for low power (router) devices
71*6a490a4eSRobert Elliott	  without hardware AES acceleration (e.g. caam crypto). It reduces the
72*6a490a4eSRobert Elliott	  size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
73*6a490a4eSRobert Elliott	  timining attacks. Nevertheless it might be not as secure as other
74*6a490a4eSRobert Elliott	  architecture specific assembler implementations that work on 1KB
75*6a490a4eSRobert Elliott	  tables or 256 bytes S-boxes.
76*6a490a4eSRobert Elliott
77*6a490a4eSRobert Elliottendmenu
78