diff options
author | Kim Phillips <kim.phillips@freescale.com> | 2011-11-21 03:13:27 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2011-11-21 03:21:53 -0500 |
commit | 8b4d43a4e774c02dee359c7931e47b119143f367 (patch) | |
tree | 2a7a6b43249e0e1878847ee4cf02f7da5eb05bb2 /drivers/crypto | |
parent | c3e337f88a5b3784cb3c806ffd650d06adff1ea5 (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.c | 57 | ||||
-rw-r--r-- | drivers/crypto/caam/compat.h | 1 |
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 { | |||
1806 | static struct caam_alg_template driver_algs[] = { | 1806 | static 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> |