aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto
diff options
context:
space:
mode:
authorKim Phillips <kim.phillips@freescale.com>2011-11-21 03:13:27 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2011-11-21 03:21:53 -0500
commit8b4d43a4e774c02dee359c7931e47b119143f367 (patch)
tree2a7a6b43249e0e1878847ee4cf02f7da5eb05bb2 /drivers/crypto
parentc3e337f88a5b3784cb3c806ffd650d06adff1ea5 (diff)
crypto: caam - add support for MD5 algorithm variants
specifically, add these algorithm combinations: authenc-hmac-md5-cbc-aes-caam authenc-hmac-md5-cbc-des3_ede-caam authenc-hmac-md5-cbc-des-caam Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/caam/caamalg.c57
-rw-r--r--drivers/crypto/caam/compat.h1
2 files changed, 58 insertions, 0 deletions
diff --git a/drivers/crypto/caam/caamalg.c b/drivers/crypto/caam/caamalg.c
index 4159265b453b..a5bc706f57bf 100644
--- a/drivers/crypto/caam/caamalg.c
+++ b/drivers/crypto/caam/caamalg.c
@@ -1806,6 +1806,25 @@ struct caam_alg_template {
1806static struct caam_alg_template driver_algs[] = { 1806static struct caam_alg_template driver_algs[] = {
1807 /* single-pass ipsec_esp descriptor */ 1807 /* single-pass ipsec_esp descriptor */
1808 { 1808 {
1809 .name = "authenc(hmac(md5),cbc(aes))",
1810 .driver_name = "authenc-hmac-md5-cbc-aes-caam",
1811 .blocksize = AES_BLOCK_SIZE,
1812 .type = CRYPTO_ALG_TYPE_AEAD,
1813 .template_aead = {
1814 .setkey = aead_setkey,
1815 .setauthsize = aead_setauthsize,
1816 .encrypt = aead_encrypt,
1817 .decrypt = aead_decrypt,
1818 .givencrypt = aead_givencrypt,
1819 .geniv = "<built-in>",
1820 .ivsize = AES_BLOCK_SIZE,
1821 .maxauthsize = MD5_DIGEST_SIZE,
1822 },
1823 .class1_alg_type = OP_ALG_ALGSEL_AES | OP_ALG_AAI_CBC,
1824 .class2_alg_type = OP_ALG_ALGSEL_MD5 | OP_ALG_AAI_HMAC_PRECOMP,
1825 .alg_op = OP_ALG_ALGSEL_MD5 | OP_ALG_AAI_HMAC,
1826 },
1827 {
1809 .name = "authenc(hmac(sha1),cbc(aes))", 1828 .name = "authenc(hmac(sha1),cbc(aes))",
1810 .driver_name = "authenc-hmac-sha1-cbc-aes-caam", 1829 .driver_name = "authenc-hmac-sha1-cbc-aes-caam",
1811 .blocksize = AES_BLOCK_SIZE, 1830 .blocksize = AES_BLOCK_SIZE,
@@ -1865,6 +1884,25 @@ static struct caam_alg_template driver_algs[] = {
1865 .alg_op = OP_ALG_ALGSEL_SHA512 | OP_ALG_AAI_HMAC, 1884 .alg_op = OP_ALG_ALGSEL_SHA512 | OP_ALG_AAI_HMAC,
1866 }, 1885 },
1867 { 1886 {
1887 .name = "authenc(hmac(md5),cbc(des3_ede))",
1888 .driver_name = "authenc-hmac-md5-cbc-des3_ede-caam",
1889 .blocksize = DES3_EDE_BLOCK_SIZE,
1890 .type = CRYPTO_ALG_TYPE_AEAD,
1891 .template_aead = {
1892 .setkey = aead_setkey,
1893 .setauthsize = aead_setauthsize,
1894 .encrypt = aead_encrypt,
1895 .decrypt = aead_decrypt,
1896 .givencrypt = aead_givencrypt,
1897 .geniv = "<built-in>",
1898 .ivsize = DES3_EDE_BLOCK_SIZE,
1899 .maxauthsize = MD5_DIGEST_SIZE,
1900 },
1901 .class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_CBC,
1902 .class2_alg_type = OP_ALG_ALGSEL_MD5 | OP_ALG_AAI_HMAC_PRECOMP,
1903 .alg_op = OP_ALG_ALGSEL_MD5 | OP_ALG_AAI_HMAC,
1904 },
1905 {
1868 .name = "authenc(hmac(sha1),cbc(des3_ede))", 1906 .name = "authenc(hmac(sha1),cbc(des3_ede))",
1869 .driver_name = "authenc-hmac-sha1-cbc-des3_ede-caam", 1907 .driver_name = "authenc-hmac-sha1-cbc-des3_ede-caam",
1870 .blocksize = DES3_EDE_BLOCK_SIZE, 1908 .blocksize = DES3_EDE_BLOCK_SIZE,
@@ -1924,6 +1962,25 @@ static struct caam_alg_template driver_algs[] = {
1924 .alg_op = OP_ALG_ALGSEL_SHA512 | OP_ALG_AAI_HMAC, 1962 .alg_op = OP_ALG_ALGSEL_SHA512 | OP_ALG_AAI_HMAC,
1925 }, 1963 },
1926 { 1964 {
1965 .name = "authenc(hmac(md5),cbc(des))",
1966 .driver_name = "authenc-hmac-md5-cbc-des-caam",
1967 .blocksize = DES_BLOCK_SIZE,
1968 .type = CRYPTO_ALG_TYPE_AEAD,
1969 .template_aead = {
1970 .setkey = aead_setkey,
1971 .setauthsize = aead_setauthsize,
1972 .encrypt = aead_encrypt,
1973 .decrypt = aead_decrypt,
1974 .givencrypt = aead_givencrypt,
1975 .geniv = "<built-in>",
1976 .ivsize = DES_BLOCK_SIZE,
1977 .maxauthsize = MD5_DIGEST_SIZE,
1978 },
1979 .class1_alg_type = OP_ALG_ALGSEL_DES | OP_ALG_AAI_CBC,
1980 .class2_alg_type = OP_ALG_ALGSEL_MD5 | OP_ALG_AAI_HMAC_PRECOMP,
1981 .alg_op = OP_ALG_ALGSEL_MD5 | OP_ALG_AAI_HMAC,
1982 },
1983 {
1927 .name = "authenc(hmac(sha1),cbc(des))", 1984 .name = "authenc(hmac(sha1),cbc(des))",
1928 .driver_name = "authenc-hmac-sha1-cbc-des-caam", 1985 .driver_name = "authenc-hmac-sha1-cbc-des-caam",
1929 .blocksize = DES_BLOCK_SIZE, 1986 .blocksize = DES_BLOCK_SIZE,
diff --git a/drivers/crypto/caam/compat.h b/drivers/crypto/caam/compat.h
index d38f2afaa966..a63bc65fae86 100644
--- a/drivers/crypto/caam/compat.h
+++ b/drivers/crypto/caam/compat.h
@@ -28,6 +28,7 @@
28#include <crypto/aes.h> 28#include <crypto/aes.h>
29#include <crypto/des.h> 29#include <crypto/des.h>
30#include <crypto/sha.h> 30#include <crypto/sha.h>
31#include <crypto/md5.h>
31#include <crypto/aead.h> 32#include <crypto/aead.h>
32#include <crypto/authenc.h> 33#include <crypto/authenc.h>
33#include <crypto/scatterwalk.h> 34#include <crypto/scatterwalk.h>