1652ccae5SArd Biesheuvel 2652ccae5SArd Biesheuvelmenuconfig ARM_CRYPTO 3652ccae5SArd Biesheuvel bool "ARM Accelerated Cryptographic Algorithms" 4652ccae5SArd Biesheuvel depends on ARM 5652ccae5SArd Biesheuvel help 6652ccae5SArd Biesheuvel Say Y here to choose from a selection of cryptographic algorithms 7652ccae5SArd Biesheuvel implemented using ARM specific CPU features or instructions. 8652ccae5SArd Biesheuvel 9652ccae5SArd Biesheuvelif ARM_CRYPTO 10652ccae5SArd Biesheuvel 11652ccae5SArd Biesheuvelconfig CRYPTO_SHA1_ARM 12652ccae5SArd Biesheuvel tristate "SHA1 digest algorithm (ARM-asm)" 13652ccae5SArd Biesheuvel select CRYPTO_SHA1 14652ccae5SArd Biesheuvel select CRYPTO_HASH 15652ccae5SArd Biesheuvel help 16652ccae5SArd Biesheuvel SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 17652ccae5SArd Biesheuvel using optimized ARM assembler. 18652ccae5SArd Biesheuvel 19652ccae5SArd Biesheuvelconfig CRYPTO_SHA1_ARM_NEON 20652ccae5SArd Biesheuvel tristate "SHA1 digest algorithm (ARM NEON)" 21652ccae5SArd Biesheuvel depends on KERNEL_MODE_NEON 22652ccae5SArd Biesheuvel select CRYPTO_SHA1_ARM 23652ccae5SArd Biesheuvel select CRYPTO_SHA1 24652ccae5SArd Biesheuvel select CRYPTO_HASH 25652ccae5SArd Biesheuvel help 26652ccae5SArd Biesheuvel SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 27652ccae5SArd Biesheuvel using optimized ARM NEON assembly, when NEON instructions are 28652ccae5SArd Biesheuvel available. 29652ccae5SArd Biesheuvel 30864cbeedSArd Biesheuvelconfig CRYPTO_SHA1_ARM_CE 31864cbeedSArd Biesheuvel tristate "SHA1 digest algorithm (ARM v8 Crypto Extensions)" 32864cbeedSArd Biesheuvel depends on KERNEL_MODE_NEON 33864cbeedSArd Biesheuvel select CRYPTO_SHA1_ARM 34864cbeedSArd Biesheuvel select CRYPTO_HASH 35864cbeedSArd Biesheuvel help 36864cbeedSArd Biesheuvel SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2) implemented 37864cbeedSArd Biesheuvel using special ARMv8 Crypto Extensions. 38864cbeedSArd Biesheuvel 39006d0624SArd Biesheuvelconfig CRYPTO_SHA2_ARM_CE 40006d0624SArd Biesheuvel tristate "SHA-224/256 digest algorithm (ARM v8 Crypto Extensions)" 41006d0624SArd Biesheuvel depends on KERNEL_MODE_NEON 429205b949SArd Biesheuvel select CRYPTO_SHA256_ARM 43006d0624SArd Biesheuvel select CRYPTO_HASH 44006d0624SArd Biesheuvel help 45006d0624SArd Biesheuvel SHA-256 secure hash standard (DFIPS 180-2) implemented 46006d0624SArd Biesheuvel using special ARMv8 Crypto Extensions. 47006d0624SArd Biesheuvel 48f2f770d7SSami Tolvanenconfig CRYPTO_SHA256_ARM 49f2f770d7SSami Tolvanen tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)" 50f2f770d7SSami Tolvanen select CRYPTO_HASH 51b48321deSArnd Bergmann depends on !CPU_V7M 52f2f770d7SSami Tolvanen help 53f2f770d7SSami Tolvanen SHA-256 secure hash standard (DFIPS 180-2) implemented 54f2f770d7SSami Tolvanen using optimized ARM assembler and NEON, when available. 55f2f770d7SSami Tolvanen 56c80ae7caSArd Biesheuvelconfig CRYPTO_SHA512_ARM 57c80ae7caSArd Biesheuvel tristate "SHA-384/512 digest algorithm (ARM-asm and NEON)" 58652ccae5SArd Biesheuvel select CRYPTO_HASH 59c80ae7caSArd Biesheuvel depends on !CPU_V7M 60652ccae5SArd Biesheuvel help 61652ccae5SArd Biesheuvel SHA-512 secure hash standard (DFIPS 180-2) implemented 62c80ae7caSArd Biesheuvel using optimized ARM assembler and NEON, when available. 63652ccae5SArd Biesheuvel 64652ccae5SArd Biesheuvelconfig CRYPTO_AES_ARM 6581edb426SArd Biesheuvel tristate "Scalar AES cipher for ARM" 66652ccae5SArd Biesheuvel select CRYPTO_ALGAPI 67652ccae5SArd Biesheuvel select CRYPTO_AES 68652ccae5SArd Biesheuvel help 69652ccae5SArd Biesheuvel Use optimized AES assembler routines for ARM platforms. 70652ccae5SArd Biesheuvel 71652ccae5SArd Biesheuvelconfig CRYPTO_AES_ARM_BS 72652ccae5SArd Biesheuvel tristate "Bit sliced AES using NEON instructions" 73652ccae5SArd Biesheuvel depends on KERNEL_MODE_NEON 746fdf436fSHerbert Xu select CRYPTO_BLKCIPHER 756fdf436fSHerbert Xu select CRYPTO_SIMD 76b56f5cbcSArd Biesheuvel select CRYPTO_AES 77652ccae5SArd Biesheuvel help 78652ccae5SArd Biesheuvel Use a faster and more secure NEON based implementation of AES in CBC, 79652ccae5SArd Biesheuvel CTR and XTS modes 80652ccae5SArd Biesheuvel 81652ccae5SArd Biesheuvel Bit sliced AES gives around 45% speedup on Cortex-A15 for CTR mode 82652ccae5SArd Biesheuvel and for XTS mode encryption, CBC and XTS mode decryption speedup is 83652ccae5SArd Biesheuvel around 25%. (CBC encryption speed is not affected by this driver.) 84652ccae5SArd Biesheuvel This implementation does not rely on any lookup tables so it is 85652ccae5SArd Biesheuvel believed to be invulnerable to cache timing attacks. 86652ccae5SArd Biesheuvel 8786464859SArd Biesheuvelconfig CRYPTO_AES_ARM_CE 8886464859SArd Biesheuvel tristate "Accelerated AES using ARMv8 Crypto Extensions" 8986464859SArd Biesheuvel depends on KERNEL_MODE_NEON 906fdf436fSHerbert Xu select CRYPTO_BLKCIPHER 91585b5fa6SHerbert Xu select CRYPTO_SIMD 9286464859SArd Biesheuvel help 9386464859SArd Biesheuvel Use an implementation of AES in CBC, CTR and XTS modes that uses 9486464859SArd Biesheuvel ARMv8 Crypto Extensions 9586464859SArd Biesheuvel 96f1e866b1SArd Biesheuvelconfig CRYPTO_GHASH_ARM_CE 97*3759ee05SArd Biesheuvel tristate "PMULL-accelerated GHASH using NEON/ARMv8 Crypto Extensions" 98f1e866b1SArd Biesheuvel depends on KERNEL_MODE_NEON 99f1e866b1SArd Biesheuvel select CRYPTO_HASH 100f1e866b1SArd Biesheuvel select CRYPTO_CRYPTD 101f1e866b1SArd Biesheuvel help 102f1e866b1SArd Biesheuvel Use an implementation of GHASH (used by the GCM AEAD chaining mode) 103f1e866b1SArd Biesheuvel that uses the 64x64 to 128 bit polynomial multiplication (vmull.p64) 104*3759ee05SArd Biesheuvel that is part of the ARMv8 Crypto Extensions, or a slower variant that 105*3759ee05SArd Biesheuvel uses the vmull.p8 instruction that is part of the basic NEON ISA. 106f1e866b1SArd Biesheuvel 1071d481f1cSArd Biesheuvelconfig CRYPTO_CRCT10DIF_ARM_CE 1081d481f1cSArd Biesheuvel tristate "CRCT10DIF digest algorithm using PMULL instructions" 1091d481f1cSArd Biesheuvel depends on KERNEL_MODE_NEON && CRC_T10DIF 1101d481f1cSArd Biesheuvel select CRYPTO_HASH 1111d481f1cSArd Biesheuvel 112d0a3431aSArd Biesheuvelconfig CRYPTO_CRC32_ARM_CE 113d0a3431aSArd Biesheuvel tristate "CRC32(C) digest algorithm using CRC and/or PMULL instructions" 114d0a3431aSArd Biesheuvel depends on KERNEL_MODE_NEON && CRC32 115d0a3431aSArd Biesheuvel select CRYPTO_HASH 116d0a3431aSArd Biesheuvel 117afaf712eSArd Biesheuvelconfig CRYPTO_CHACHA20_NEON 118afaf712eSArd Biesheuvel tristate "NEON accelerated ChaCha20 symmetric cipher" 119afaf712eSArd Biesheuvel depends on KERNEL_MODE_NEON 120afaf712eSArd Biesheuvel select CRYPTO_BLKCIPHER 121afaf712eSArd Biesheuvel select CRYPTO_CHACHA20 122afaf712eSArd Biesheuvel 123652ccae5SArd Biesheuvelendif 124