16a490a4eSRobert Elliott# SPDX-License-Identifier: GPL-2.0 26a490a4eSRobert Elliott 36a490a4eSRobert Elliottmenu "Accelerated Cryptographic Algorithms for CPU (powerpc)" 46a490a4eSRobert Elliott 5*b42519dbSDanny Tsenconfig CRYPTO_CURVE25519_PPC64 6*b42519dbSDanny Tsen tristate "Public key crypto: Curve25519 (PowerPC64)" 7*b42519dbSDanny Tsen depends on PPC64 && CPU_LITTLE_ENDIAN 8*b42519dbSDanny Tsen select CRYPTO_LIB_CURVE25519_GENERIC 9*b42519dbSDanny Tsen select CRYPTO_ARCH_HAVE_LIB_CURVE25519 10*b42519dbSDanny Tsen help 11*b42519dbSDanny Tsen Curve25519 algorithm 12*b42519dbSDanny Tsen 13*b42519dbSDanny Tsen Architecture: PowerPC64 14*b42519dbSDanny Tsen - Little-endian 15*b42519dbSDanny Tsen 166a490a4eSRobert Elliottconfig CRYPTO_CRC32C_VPMSUM 17ec84348dSRobert Elliott tristate "CRC32c" 186a490a4eSRobert Elliott depends on PPC64 && ALTIVEC 196a490a4eSRobert Elliott select CRYPTO_HASH 206a490a4eSRobert Elliott select CRC32 216a490a4eSRobert Elliott help 22ec84348dSRobert Elliott CRC32c CRC algorithm with the iSCSI polynomial (RFC 3385 and RFC 3720) 23ec84348dSRobert Elliott 24ec84348dSRobert Elliott Architecture: powerpc64 using 25ec84348dSRobert Elliott - AltiVec extensions 26ec84348dSRobert Elliott 27ec84348dSRobert Elliott Enable on POWER8 and newer processors for improved performance. 286a490a4eSRobert Elliott 296a490a4eSRobert Elliottconfig CRYPTO_CRCT10DIF_VPMSUM 30ec84348dSRobert Elliott tristate "CRC32T10DIF" 316a490a4eSRobert Elliott depends on PPC64 && ALTIVEC && CRC_T10DIF 326a490a4eSRobert Elliott select CRYPTO_HASH 336a490a4eSRobert Elliott help 34ec84348dSRobert Elliott CRC16 CRC algorithm used for the T10 (SCSI) Data Integrity Field (DIF) 35ec84348dSRobert Elliott 36ec84348dSRobert Elliott Architecture: powerpc64 using 37ec84348dSRobert Elliott - AltiVec extensions 38ec84348dSRobert Elliott 39ec84348dSRobert Elliott Enable on POWER8 and newer processors for improved performance. 406a490a4eSRobert Elliott 416a490a4eSRobert Elliottconfig CRYPTO_VPMSUM_TESTER 42ec84348dSRobert Elliott tristate "CRC32c and CRC32T10DIF hardware acceleration tester" 436a490a4eSRobert Elliott depends on CRYPTO_CRCT10DIF_VPMSUM && CRYPTO_CRC32C_VPMSUM 446a490a4eSRobert Elliott help 45ec84348dSRobert Elliott Stress test for CRC32c and CRCT10DIF algorithms implemented with 46ec84348dSRobert Elliott powerpc64 AltiVec extensions (POWER8 vpmsum instructions). 476a490a4eSRobert Elliott Unless you are testing these algorithms, you don't need this. 486a490a4eSRobert Elliott 496a490a4eSRobert Elliottconfig CRYPTO_MD5_PPC 503f342a23SRobert Elliott tristate "Digests: MD5" 516a490a4eSRobert Elliott depends on PPC 526a490a4eSRobert Elliott select CRYPTO_HASH 536a490a4eSRobert Elliott help 543f342a23SRobert Elliott MD5 message digest algorithm (RFC1321) 553f342a23SRobert Elliott 563f342a23SRobert Elliott Architecture: powerpc 576a490a4eSRobert Elliott 586a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC 593f342a23SRobert Elliott tristate "Hash functions: SHA-1" 606a490a4eSRobert Elliott depends on PPC 616a490a4eSRobert Elliott help 623f342a23SRobert Elliott SHA-1 secure hash algorithm (FIPS 180) 633f342a23SRobert Elliott 643f342a23SRobert Elliott Architecture: powerpc 656a490a4eSRobert Elliott 666a490a4eSRobert Elliottconfig CRYPTO_SHA1_PPC_SPE 673f342a23SRobert Elliott tristate "Hash functions: SHA-1 (SPE)" 686a490a4eSRobert Elliott depends on PPC && SPE 696a490a4eSRobert Elliott help 703f342a23SRobert Elliott SHA-1 secure hash algorithm (FIPS 180) 713f342a23SRobert Elliott 723f342a23SRobert Elliott Architecture: powerpc using 733f342a23SRobert Elliott - SPE (Signal Processing Engine) extensions 746a490a4eSRobert Elliott 756a490a4eSRobert Elliottconfig CRYPTO_SHA256_PPC_SPE 763f342a23SRobert Elliott tristate "Hash functions: SHA-224 and SHA-256 (SPE)" 776a490a4eSRobert Elliott depends on PPC && SPE 786a490a4eSRobert Elliott select CRYPTO_SHA256 796a490a4eSRobert Elliott select CRYPTO_HASH 806a490a4eSRobert Elliott help 813f342a23SRobert Elliott SHA-224 and SHA-256 secure hash algorithms (FIPS 180) 823f342a23SRobert Elliott 833f342a23SRobert Elliott Architecture: powerpc using 843f342a23SRobert Elliott - SPE (Signal Processing Engine) extensions 856a490a4eSRobert Elliott 866a490a4eSRobert Elliottconfig CRYPTO_AES_PPC_SPE 87cf514b2aSRobert Elliott tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)" 886a490a4eSRobert Elliott depends on PPC && SPE 896a490a4eSRobert Elliott select CRYPTO_SKCIPHER 906a490a4eSRobert Elliott help 91cf514b2aSRobert Elliott Block ciphers: AES cipher algorithms (FIPS-197) 92cf514b2aSRobert Elliott Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes 93cf514b2aSRobert Elliott 94cf514b2aSRobert Elliott Architecture: powerpc using: 95cf514b2aSRobert Elliott - SPE (Signal Processing Engine) extensions 96cf514b2aSRobert Elliott 97cf514b2aSRobert Elliott SPE is available for: 98cf514b2aSRobert Elliott - Processor Type: Freescale 8500 99cf514b2aSRobert Elliott - CPU selection: e500 (8540) 100cf514b2aSRobert Elliott 1016a490a4eSRobert Elliott This module should only be used for low power (router) devices 1026a490a4eSRobert Elliott without hardware AES acceleration (e.g. caam crypto). It reduces the 1036a490a4eSRobert Elliott size of the AES tables from 16KB to 8KB + 256 bytes and mitigates 1046a490a4eSRobert Elliott timining attacks. Nevertheless it might be not as secure as other 1056a490a4eSRobert Elliott architecture specific assembler implementations that work on 1KB 1066a490a4eSRobert Elliott tables or 256 bytes S-boxes. 1076a490a4eSRobert Elliott 10845a4672bSDanny Tsenconfig CRYPTO_AES_GCM_P10 10945a4672bSDanny Tsen tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)" 1108133a3f0SMichael Ellerman depends on PPC64 && CPU_LITTLE_ENDIAN && VSX 11145a4672bSDanny Tsen select CRYPTO_LIB_AES 11245a4672bSDanny Tsen select CRYPTO_ALGAPI 11345a4672bSDanny Tsen select CRYPTO_AEAD 1149d6e1c21SOmar Sandoval select CRYPTO_SKCIPHER 11545a4672bSDanny Tsen help 11645a4672bSDanny Tsen AEAD cipher: AES cipher algorithms (FIPS-197) 11745a4672bSDanny Tsen GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D) 11845a4672bSDanny Tsen Architecture: powerpc64 using: 11945a4672bSDanny Tsen - little-endian 12045a4672bSDanny Tsen - Power10 or later features 12145a4672bSDanny Tsen 12245a4672bSDanny Tsen Support for cryptographic acceleration instructions on Power10 or 12345a4672bSDanny Tsen later CPU. This module supports stitched acceleration for AES/GCM. 12445a4672bSDanny Tsen 125161fca7eSDanny Tsenconfig CRYPTO_CHACHA20_P10 126161fca7eSDanny Tsen tristate "Ciphers: ChaCha20, XChacha20, XChacha12 (P10 or later)" 127ba22e818SHerbert Xu depends on PPC64 && CPU_LITTLE_ENDIAN && VSX 128161fca7eSDanny Tsen select CRYPTO_SKCIPHER 129161fca7eSDanny Tsen select CRYPTO_LIB_CHACHA_GENERIC 130161fca7eSDanny Tsen select CRYPTO_ARCH_HAVE_LIB_CHACHA 131161fca7eSDanny Tsen help 132161fca7eSDanny Tsen Length-preserving ciphers: ChaCha20, XChaCha20, and XChaCha12 133161fca7eSDanny Tsen stream cipher algorithms 134161fca7eSDanny Tsen 135161fca7eSDanny Tsen Architecture: PowerPC64 136161fca7eSDanny Tsen - Power10 or later 137161fca7eSDanny Tsen - Little-endian 138161fca7eSDanny Tsen 139161fca7eSDanny Tsenconfig CRYPTO_POLY1305_P10 140161fca7eSDanny Tsen tristate "Hash functions: Poly1305 (P10 or later)" 141ba22e818SHerbert Xu depends on PPC64 && CPU_LITTLE_ENDIAN && VSX 142161fca7eSDanny Tsen select CRYPTO_HASH 143161fca7eSDanny Tsen select CRYPTO_LIB_POLY1305_GENERIC 144161fca7eSDanny Tsen help 145161fca7eSDanny Tsen Poly1305 authenticator algorithm (RFC7539) 146161fca7eSDanny Tsen 147161fca7eSDanny Tsen Architecture: PowerPC64 148161fca7eSDanny Tsen - Power10 or later 149161fca7eSDanny Tsen - Little-endian 150161fca7eSDanny Tsen 15110930333SDanny Tsenconfig CRYPTO_DEV_VMX 15210930333SDanny Tsen bool "Support for VMX cryptographic acceleration instructions" 15310930333SDanny Tsen depends on PPC64 && VSX 15410930333SDanny Tsen help 15510930333SDanny Tsen Support for VMX cryptographic acceleration instructions. 15610930333SDanny Tsen 15710930333SDanny Tsenconfig CRYPTO_DEV_VMX_ENCRYPT 15810930333SDanny Tsen tristate "Encryption acceleration support on P8 CPU" 15910930333SDanny Tsen depends on CRYPTO_DEV_VMX 16010930333SDanny Tsen select CRYPTO_AES 16110930333SDanny Tsen select CRYPTO_CBC 16210930333SDanny Tsen select CRYPTO_CTR 16310930333SDanny Tsen select CRYPTO_GHASH 16410930333SDanny Tsen select CRYPTO_XTS 16510930333SDanny Tsen default m 16610930333SDanny Tsen help 16710930333SDanny Tsen Support for VMX cryptographic acceleration instructions on Power8 CPU. 16810930333SDanny Tsen This module supports acceleration for AES and GHASH in hardware. If you 16910930333SDanny Tsen choose 'M' here, this module will be called vmx-crypto. 17010930333SDanny Tsen 1716a490a4eSRobert Elliottendmenu 172