diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2013-04-13 06:47:00 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2013-04-25 09:09:07 -0400 |
commit | f3f935a76aa0eee68da2b273a08d84ba8ffc7a73 (patch) | |
tree | c33db3ca826852d1f5b66ec48e08a08b0e273b78 /crypto/testmgr.c | |
parent | 56d76c96a9f3e39ab733c5643b3ce5a1d4be242a (diff) |
crypto: camellia - add AVX2/AES-NI/x86_64 assembler implementation of camellia cipher
Patch adds AVX2/AES-NI/x86-64 implementation of Camellia cipher, requiring
32 parallel blocks for input (512 bytes). Compared to AVX implementation, this
version is extended to use the 256-bit wide YMM registers. For AES-NI
instructions data is split to two 128-bit registers and merged afterwards.
Even with this additional handling, performance should be higher compared
to the AES-NI/AVX implementation.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/testmgr.c')
-rw-r--r-- | crypto/testmgr.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c index f5e13dea8cc9..5823735cf381 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c | |||
@@ -1667,6 +1667,9 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1667 | .alg = "__driver-cbc-camellia-aesni", | 1667 | .alg = "__driver-cbc-camellia-aesni", |
1668 | .test = alg_test_null, | 1668 | .test = alg_test_null, |
1669 | }, { | 1669 | }, { |
1670 | .alg = "__driver-cbc-camellia-aesni-avx2", | ||
1671 | .test = alg_test_null, | ||
1672 | }, { | ||
1670 | .alg = "__driver-cbc-cast5-avx", | 1673 | .alg = "__driver-cbc-cast5-avx", |
1671 | .test = alg_test_null, | 1674 | .test = alg_test_null, |
1672 | }, { | 1675 | }, { |
@@ -1698,6 +1701,9 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1698 | .alg = "__driver-ecb-camellia-aesni", | 1701 | .alg = "__driver-ecb-camellia-aesni", |
1699 | .test = alg_test_null, | 1702 | .test = alg_test_null, |
1700 | }, { | 1703 | }, { |
1704 | .alg = "__driver-ecb-camellia-aesni-avx2", | ||
1705 | .test = alg_test_null, | ||
1706 | }, { | ||
1701 | .alg = "__driver-ecb-cast5-avx", | 1707 | .alg = "__driver-ecb-cast5-avx", |
1702 | .test = alg_test_null, | 1708 | .test = alg_test_null, |
1703 | }, { | 1709 | }, { |
@@ -1978,6 +1984,9 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1978 | .alg = "cryptd(__driver-cbc-camellia-aesni)", | 1984 | .alg = "cryptd(__driver-cbc-camellia-aesni)", |
1979 | .test = alg_test_null, | 1985 | .test = alg_test_null, |
1980 | }, { | 1986 | }, { |
1987 | .alg = "cryptd(__driver-cbc-camellia-aesni-avx2)", | ||
1988 | .test = alg_test_null, | ||
1989 | }, { | ||
1981 | .alg = "cryptd(__driver-cbc-serpent-avx2)", | 1990 | .alg = "cryptd(__driver-cbc-serpent-avx2)", |
1982 | .test = alg_test_null, | 1991 | .test = alg_test_null, |
1983 | }, { | 1992 | }, { |
@@ -1991,6 +2000,9 @@ static const struct alg_test_desc alg_test_descs[] = { | |||
1991 | .alg = "cryptd(__driver-ecb-camellia-aesni)", | 2000 | .alg = "cryptd(__driver-ecb-camellia-aesni)", |
1992 | .test = alg_test_null, | 2001 | .test = alg_test_null, |
1993 | }, { | 2002 | }, { |
2003 | .alg = "cryptd(__driver-ecb-camellia-aesni-avx2)", | ||
2004 | .test = alg_test_null, | ||
2005 | }, { | ||
1994 | .alg = "cryptd(__driver-ecb-cast5-avx)", | 2006 | .alg = "cryptd(__driver-ecb-cast5-avx)", |
1995 | .test = alg_test_null, | 2007 | .test = alg_test_null, |
1996 | }, { | 2008 | }, { |