summaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorOndrej Mosnacek <omosnacek@gmail.com>2018-05-11 14:19:12 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2018-05-18 18:15:35 +0200
commit6ecc9d9ff91ff26769e58164b6216c6189cb8302 (patch)
tree50cebb838d99b9e520af30f0842177d196aba3a7 /crypto
parentcrypto: morus - Add common SIMD glue code for MORUS (diff)
downloadlinux-6ecc9d9ff91ff26769e58164b6216c6189cb8302.tar.xz
linux-6ecc9d9ff91ff26769e58164b6216c6189cb8302.zip
crypto: x86 - Add optimized MORUS implementations
This patch adds optimized implementations of MORUS-640 and MORUS-1280, utilizing the SSE2 and AVX2 x86 extensions. For MORUS-1280 (which operates on 256-bit blocks) we provide both AVX2 and SSE2 implementation. Although SSE2 MORUS-1280 is slower than AVX2 MORUS-1280, it is comparable in speed to the SSE2 MORUS-640. Signed-off-by: Ondrej Mosnacek <omosnacek@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/Kconfig26
1 files changed, 26 insertions, 0 deletions
diff --git a/crypto/Kconfig b/crypto/Kconfig
index 4761667fbcf9..75f5efde9aa3 100644
--- a/crypto/Kconfig
+++ b/crypto/Kconfig
@@ -348,6 +348,14 @@ config CRYPTO_MORUS640_GLUE
Common glue for SIMD optimizations of the MORUS-640 dedicated AEAD
algorithm.
+config CRYPTO_MORUS640_SSE2
+ tristate "MORUS-640 AEAD algorithm (x86_64 SSE2 implementation)"
+ depends on X86 && 64BIT
+ select CRYPTO_AEAD
+ select CRYPTO_MORUS640_GLUE
+ help
+ SSE2 implementation of the MORUS-640 dedicated AEAD algorithm.
+
config CRYPTO_MORUS1280
tristate "MORUS-1280 AEAD algorithm"
select CRYPTO_AEAD
@@ -362,6 +370,24 @@ config CRYPTO_MORUS1280_GLUE
Common glue for SIMD optimizations of the MORUS-1280 dedicated AEAD
algorithm.
+config CRYPTO_MORUS1280_SSE2
+ tristate "MORUS-1280 AEAD algorithm (x86_64 SSE2 implementation)"
+ depends on X86 && 64BIT
+ select CRYPTO_AEAD
+ select CRYPTO_MORUS1280_GLUE
+ help
+ SSE2 optimizedimplementation of the MORUS-1280 dedicated AEAD
+ algorithm.
+
+config CRYPTO_MORUS1280_AVX2
+ tristate "MORUS-1280 AEAD algorithm (x86_64 AVX2 implementation)"
+ depends on X86 && 64BIT
+ select CRYPTO_AEAD
+ select CRYPTO_MORUS1280_GLUE
+ help
+ AVX2 optimized implementation of the MORUS-1280 dedicated AEAD
+ algorithm.
+
config CRYPTO_SEQIV
tristate "Sequence Number IV Generator"
select CRYPTO_AEAD