xref: /linux/arch/powerpc/crypto/Kconfig (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
16a490a4eSRobert Elliott# SPDX-License-Identifier: GPL-2.0
26a490a4eSRobert Elliott
36a490a4eSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
46a490a4eSRobert Elliott
5b42519dbSDanny Tsenconfig CRYPTO_CURVE25519_PPC64
6*17ec3e71SHerbert Xu	tristate
7b42519dbSDanny Tsen	depends on PPC64 && CPU_LITTLE_ENDIAN
8*17ec3e71SHerbert Xu	select CRYPTO_KPP
9b42519dbSDanny Tsen	select CRYPTO_LIB_CURVE25519_GENERIC
10*17ec3e71SHerbert Xu	select CRYPTO_ARCH_HAVE_LIB_CURVE25519
11*17ec3e71SHerbert Xu	default CRYPTO_LIB_CURVE25519_INTERNAL
12b42519dbSDanny Tsen	help
13b42519dbSDanny Tsen	  Curve25519 algorithm
14b42519dbSDanny Tsen
15b42519dbSDanny Tsen	  Architecture: PowerPC64
16b42519dbSDanny Tsen	  - Little-endian
17b42519dbSDanny Tsen
186a490a4eSRobert Elliottconfig CRYPTO_MD5_PPC
193f342a23SRobert Elliott	tristate "Digests: MD5"
206a490a4eSRobert Elliott	depends on PPC
216a490a4eSRobert Elliott	select CRYPTO_HASH
226a490a4eSRobert Elliott	help
233f342a23SRobert Elliott	  MD5 message digest algorithm (RFC1321)
243f342a23SRobert Elliott
253f342a23SRobert Elliott	  Architecture: powerpc
266a490a4eSRobert Elliott
276a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC
283f342a23SRobert Elliott	tristate "Hash functions: SHA-1"
296a490a4eSRobert Elliott	depends on PPC
306a490a4eSRobert Elliott	help
313f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
323f342a23SRobert Elliott
333f342a23SRobert Elliott	  Architecture: powerpc
346a490a4eSRobert Elliott
356a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC_SPE
363f342a23SRobert Elliott	tristate "Hash functions: SHA-1 (SPE)"
376a490a4eSRobert Elliott	depends on PPC && SPE
386a490a4eSRobert Elliott	help
393f342a23SRobert Elliott	  SHA-1 secure hash algorithm (FIPS 180)
403f342a23SRobert Elliott
413f342a23SRobert Elliott	  Architecture: powerpc using
423f342a23SRobert Elliott	  - SPE (Signal Processing Engine) extensions
436a490a4eSRobert Elliott
446a490a4eSRobert Elliottconfig CRYPTO_SHA256_PPC_SPE
453f342a23SRobert Elliott	tristate "Hash functions: SHA-224 and SHA-256 (SPE)"
466a490a4eSRobert Elliott	depends on PPC && SPE
476a490a4eSRobert Elliott	select CRYPTO_SHA256
486a490a4eSRobert Elliott	select CRYPTO_HASH
496a490a4eSRobert Elliott	help
503f342a23SRobert Elliott	  SHA-224 and SHA-256 secure hash algorithms (FIPS 180)
513f342a23SRobert Elliott
523f342a23SRobert Elliott	  Architecture: powerpc using
533f342a23SRobert Elliott	  - SPE (Signal Processing Engine) extensions
546a490a4eSRobert Elliott
556a490a4eSRobert Elliottconfig CRYPTO_AES_PPC_SPE
56cf514b2aSRobert Elliott	tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)"
576a490a4eSRobert Elliott	depends on PPC && SPE
586a490a4eSRobert Elliott	select CRYPTO_SKCIPHER
596a490a4eSRobert Elliott	help
60cf514b2aSRobert Elliott	  Block ciphers: AES cipher algorithms (FIPS-197)
61cf514b2aSRobert Elliott	  Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes
62cf514b2aSRobert Elliott
63cf514b2aSRobert Elliott	  Architecture: powerpc using:
64cf514b2aSRobert Elliott	  - SPE (Signal Processing Engine) extensions
65cf514b2aSRobert Elliott
66cf514b2aSRobert Elliott	  SPE is available for:
67cf514b2aSRobert Elliott	  - Processor Type: Freescale 8500
68cf514b2aSRobert Elliott	  - CPU selection: e500 (8540)
69cf514b2aSRobert Elliott
706a490a4eSRobert Elliott	  This module should only be used for low power (router) devices
716a490a4eSRobert Elliott	  without hardware AES acceleration (e.g. caam crypto). It reduces the
726a490a4eSRobert Elliott	  size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
736a490a4eSRobert Elliott	  timining attacks. Nevertheless it might be not as secure as other
746a490a4eSRobert Elliott	  architecture specific assembler implementations that work on 1KB
756a490a4eSRobert Elliott	  tables or 256 bytes S-boxes.
766a490a4eSRobert Elliott
7745a4672bSDanny Tsenconfig CRYPTO_AES_GCM_P10
7845a4672bSDanny Tsen	tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)"
798133a3f0SMichael Ellerman	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
8045a4672bSDanny Tsen	select CRYPTO_LIB_AES
8145a4672bSDanny Tsen	select CRYPTO_ALGAPI
8245a4672bSDanny Tsen	select CRYPTO_AEAD
839d6e1c21SOmar Sandoval	select CRYPTO_SKCIPHER
848b6c1e46SDanny Tsen	select CRYPTO_SIMD
8545a4672bSDanny Tsen	help
8645a4672bSDanny Tsen	  AEAD cipher: AES cipher algorithms (FIPS-197)
8745a4672bSDanny Tsen	  GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
8845a4672bSDanny Tsen	  Architecture: powerpc64 using:
8945a4672bSDanny Tsen	    - little-endian
9045a4672bSDanny Tsen	    - Power10 or later features
9145a4672bSDanny Tsen
9245a4672bSDanny Tsen	  Support for cryptographic acceleration instructions on Power10 or
9345a4672bSDanny Tsen	  later CPU. This module supports stitched acceleration for AES/GCM.
9445a4672bSDanny Tsen
95161fca7eSDanny Tsenconfig CRYPTO_CHACHA20_P10
96*17ec3e71SHerbert Xu	tristate
97ba22e818SHerbert Xu	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
98161fca7eSDanny Tsen	select CRYPTO_SKCIPHER
99161fca7eSDanny Tsen	select CRYPTO_LIB_CHACHA_GENERIC
100*17ec3e71SHerbert Xu	select CRYPTO_ARCH_HAVE_LIB_CHACHA
101*17ec3e71SHerbert Xu	default CRYPTO_LIB_CHACHA_INTERNAL
102161fca7eSDanny Tsen	help
103161fca7eSDanny Tsen	  Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12
104161fca7eSDanny Tsen	  stream cipher algorithms
105161fca7eSDanny Tsen
106161fca7eSDanny Tsen	  Architecture: PowerPC64
107161fca7eSDanny Tsen	  - Power10 or later
108161fca7eSDanny Tsen	  - Little-endian
109161fca7eSDanny Tsen
110161fca7eSDanny Tsenconfig CRYPTO_POLY1305_P10
111161fca7eSDanny Tsen	tristate "Hash functions: Poly1305 (P10 or later)"
112ba22e818SHerbert Xu	depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
113161fca7eSDanny Tsen	select CRYPTO_HASH
114161fca7eSDanny Tsen	select CRYPTO_LIB_POLY1305_GENERIC
115161fca7eSDanny Tsen	help
116161fca7eSDanny Tsen	  Poly1305 authenticator algorithm (RFC7539)
117161fca7eSDanny Tsen
118161fca7eSDanny Tsen	  Architecture: PowerPC64
119161fca7eSDanny Tsen	  - Power10 or later
120161fca7eSDanny Tsen	  - Little-endian
121161fca7eSDanny Tsen
12210930333SDanny Tsenconfig CRYPTO_DEV_VMX
12310930333SDanny Tsen        bool "Support for VMX cryptographic acceleration instructions"
12410930333SDanny Tsen        depends on PPC64 && VSX
12510930333SDanny Tsen        help
12610930333SDanny Tsen          Support for VMX cryptographic acceleration instructions.
12710930333SDanny Tsen
12810930333SDanny Tsenconfig CRYPTO_DEV_VMX_ENCRYPT
12910930333SDanny Tsen	tristate "Encryption acceleration support on P8 CPU"
13010930333SDanny Tsen	depends on CRYPTO_DEV_VMX
13110930333SDanny Tsen	select CRYPTO_AES
13210930333SDanny Tsen	select CRYPTO_CBC
13310930333SDanny Tsen	select CRYPTO_CTR
13410930333SDanny Tsen	select CRYPTO_GHASH
13510930333SDanny Tsen	select CRYPTO_XTS
13610930333SDanny Tsen	default m
13710930333SDanny Tsen	help
13810930333SDanny Tsen	  Support for VMX cryptographic acceleration instructions on Power8 CPU.
13910930333SDanny Tsen	  This module supports acceleration for AES and GHASH in hardware. If you
14010930333SDanny Tsen	  choose 'M' here, this module will be called vmx-crypto.
14110930333SDanny Tsen
1426a490a4eSRobert Elliottendmenu
143