Loading drivers/crypto/omap-aes-gcm.c +11 −12 Original line number Diff line number Diff line Loading @@ -7,18 +7,21 @@ * Copyright (c) 2016 Texas Instruments Incorporated */ #include <crypto/aes.h> #include <crypto/engine.h> #include <crypto/gcm.h> #include <crypto/internal/aead.h> #include <crypto/scatterwalk.h> #include <crypto/skcipher.h> #include <linux/errno.h> #include <linux/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/omap-dma.h> #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/omap-dma.h> #include <linux/pm_runtime.h> #include <crypto/aes.h> #include <crypto/gcm.h> #include <crypto/scatterwalk.h> #include <crypto/skcipher.h> #include <crypto/internal/aead.h> #include <linux/scatterlist.h> #include <linux/string.h> #include "omap-crypto.h" #include "omap-aes.h" Loading Loading @@ -354,7 +357,7 @@ int omap_aes_4106gcm_setauthsize(struct crypto_aead *parent, return crypto_rfc4106_check_authsize(authsize); } static int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq) int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq) { struct aead_request *req = container_of(areq, struct aead_request, base); Loading @@ -379,10 +382,6 @@ static int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq) int omap_aes_gcm_cra_init(struct crypto_aead *tfm) { struct omap_aes_ctx *ctx = crypto_aead_ctx(tfm); ctx->enginectx.op.do_one_request = omap_aes_gcm_crypt_req; crypto_aead_set_reqsize(tfm, sizeof(struct omap_aes_reqctx)); return 0; Loading drivers/crypto/omap-aes.c +115 −101 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/string.h> #include "omap-crypto.h" #include "omap-aes.h" Loading Loading @@ -638,8 +639,6 @@ static int omap_aes_init_tfm(struct crypto_skcipher *tfm) crypto_skcipher_set_reqsize(tfm, sizeof(struct omap_aes_reqctx) + crypto_skcipher_reqsize(blk)); ctx->enginectx.op.do_one_request = omap_aes_crypt_req; return 0; } Loading @@ -655,8 +654,9 @@ static void omap_aes_exit_tfm(struct crypto_skcipher *tfm) /* ********************** ALGS ************************************ */ static struct skcipher_alg algs_ecb_cbc[] = { static struct skcipher_engine_alg algs_ecb_cbc[] = { { .base = { .base.cra_name = "ecb(aes)", .base.cra_driver_name = "ecb-aes-omap", .base.cra_priority = 300, Loading @@ -675,7 +675,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .init = omap_aes_init_tfm, .exit = omap_aes_exit_tfm, }, .op.do_one_request = omap_aes_crypt_req, }, { .base = { .base.cra_name = "cbc(aes)", .base.cra_driver_name = "cbc-aes-omap", .base.cra_priority = 300, Loading @@ -694,11 +697,14 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_aes_cbc_decrypt, .init = omap_aes_init_tfm, .exit = omap_aes_exit_tfm, }, .op.do_one_request = omap_aes_crypt_req, } }; static struct skcipher_alg algs_ctr[] = { static struct skcipher_engine_alg algs_ctr[] = { { .base = { .base.cra_name = "ctr(aes)", .base.cra_driver_name = "ctr-aes-omap", .base.cra_priority = 300, Loading @@ -717,6 +723,8 @@ static struct skcipher_alg algs_ctr[] = { .decrypt = omap_aes_ctr_decrypt, .init = omap_aes_init_tfm, .exit = omap_aes_exit_tfm, }, .op.do_one_request = omap_aes_crypt_req, } }; Loading @@ -727,8 +735,9 @@ static struct omap_aes_algs_info omap_aes_algs_info_ecb_cbc[] = { }, }; static struct aead_alg algs_aead_gcm[] = { static struct aead_engine_alg algs_aead_gcm[] = { { .base = { .base = { .cra_name = "gcm(aes)", .cra_driver_name = "gcm-aes-omap", Loading @@ -748,7 +757,10 @@ static struct aead_alg algs_aead_gcm[] = { .encrypt = omap_aes_gcm_encrypt, .decrypt = omap_aes_gcm_decrypt, }, .op.do_one_request = omap_aes_gcm_crypt_req, }, { .base = { .base = { .cra_name = "rfc4106(gcm(aes))", .cra_driver_name = "rfc4106-gcm-aes-omap", Loading @@ -768,6 +780,8 @@ static struct aead_alg algs_aead_gcm[] = { .encrypt = omap_aes_4106gcm_encrypt, .decrypt = omap_aes_4106gcm_decrypt, }, .op.do_one_request = omap_aes_gcm_crypt_req, }, }; static struct omap_aes_aead_algs omap_aes_aead_info = { Loading Loading @@ -1088,8 +1102,8 @@ static int omap_aes_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct omap_aes_dev *dd; struct skcipher_alg *algp; struct aead_alg *aalg; struct skcipher_engine_alg *algp; struct aead_engine_alg *aalg; struct resource res; int err = -ENOMEM, i, j, irq = -1; u32 reg; Loading Loading @@ -1182,9 +1196,9 @@ static int omap_aes_probe(struct platform_device *pdev) for (j = 0; j < dd->pdata->algs_info[i].size; j++) { algp = &dd->pdata->algs_info[i].algs_list[j]; pr_debug("reg alg: %s\n", algp->base.cra_name); pr_debug("reg alg: %s\n", algp->base.base.cra_name); err = crypto_register_skcipher(algp); err = crypto_engine_register_skcipher(algp); if (err) goto err_algs; Loading @@ -1198,9 +1212,9 @@ static int omap_aes_probe(struct platform_device *pdev) for (i = 0; i < dd->pdata->aead_algs_info->size; i++) { aalg = &dd->pdata->aead_algs_info->algs_list[i]; pr_debug("reg alg: %s\n", aalg->base.cra_name); pr_debug("reg alg: %s\n", aalg->base.base.cra_name); err = crypto_register_aead(aalg); err = crypto_engine_register_aead(aalg); if (err) goto err_aead_algs; Loading @@ -1218,12 +1232,12 @@ static int omap_aes_probe(struct platform_device *pdev) err_aead_algs: for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) { aalg = &dd->pdata->aead_algs_info->algs_list[i]; crypto_unregister_aead(aalg); crypto_engine_unregister_aead(aalg); } err_algs: for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); err_engine: Loading @@ -1245,7 +1259,7 @@ static int omap_aes_probe(struct platform_device *pdev) static int omap_aes_remove(struct platform_device *pdev) { struct omap_aes_dev *dd = platform_get_drvdata(pdev); struct aead_alg *aalg; struct aead_engine_alg *aalg; int i, j; spin_lock_bh(&list_lock); Loading @@ -1254,14 +1268,14 @@ static int omap_aes_remove(struct platform_device *pdev) for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) { crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); dd->pdata->algs_info[i].registered--; } for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) { aalg = &dd->pdata->aead_algs_info->algs_list[i]; crypto_unregister_aead(aalg); crypto_engine_unregister_aead(aalg); dd->pdata->aead_algs_info->registered--; } Loading drivers/crypto/omap-aes.h +7 −8 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ #define __OMAP_AES_H__ #include <crypto/aes.h> #include <crypto/engine.h> #define DST_MAXBURST 4 #define DMA_MIN (DST_MAXBURST * sizeof(u32)) Loading Loading @@ -93,7 +92,6 @@ struct omap_aes_gcm_result { }; struct omap_aes_ctx { struct crypto_engine_ctx enginectx; int keylen; u32 key[AES_KEYSIZE_256 / sizeof(u32)]; u8 nonce[4]; Loading @@ -117,13 +115,13 @@ struct omap_aes_reqctx { #define OMAP_AES_CACHE_SIZE 0 struct omap_aes_algs_info { struct skcipher_alg *algs_list; struct skcipher_engine_alg *algs_list; unsigned int size; unsigned int registered; }; struct omap_aes_aead_algs { struct aead_alg *algs_list; struct aead_engine_alg *algs_list; unsigned int size; unsigned int registered; }; Loading Loading @@ -218,5 +216,6 @@ int omap_aes_crypt_dma_start(struct omap_aes_dev *dd); int omap_aes_crypt_dma_stop(struct omap_aes_dev *dd); void omap_aes_gcm_dma_out_callback(void *data); void omap_aes_clear_copy_flags(struct omap_aes_dev *dd); int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq); #endif drivers/crypto/omap-des.c +96 −91 Original line number Diff line number Diff line Loading @@ -16,27 +16,25 @@ #define prx(num) do { } while (0) #endif #include <crypto/engine.h> #include <crypto/internal/des.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/err.h> #include <linux/module.h> #include <linux/init.h> #include <linux/errno.h> #include <linux/interrupt.h> #include <linux/io.h> #include <linux/kernel.h> #include <linux/platform_device.h> #include <linux/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/pm_runtime.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_address.h> #include <linux/io.h> #include <linux/crypto.h> #include <linux/interrupt.h> #include <crypto/scatterwalk.h> #include <crypto/internal/des.h> #include <crypto/internal/skcipher.h> #include <crypto/algapi.h> #include <crypto/engine.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/string.h> #include "omap-crypto.h" Loading Loading @@ -83,7 +81,6 @@ #define FLAGS_OUT_DATA_ST_SHIFT 10 struct omap_des_ctx { struct crypto_engine_ctx enginectx; struct omap_des_dev *dd; int keylen; Loading @@ -99,7 +96,7 @@ struct omap_des_reqctx { #define OMAP_DES_CACHE_SIZE 0 struct omap_des_algs_info { struct skcipher_alg *algs_list; struct skcipher_engine_alg *algs_list; unsigned int size; unsigned int registered; }; Loading Loading @@ -707,21 +704,18 @@ static int omap_des_cbc_decrypt(struct skcipher_request *req) static int omap_des_init_tfm(struct crypto_skcipher *tfm) { struct omap_des_ctx *ctx = crypto_skcipher_ctx(tfm); pr_debug("enter\n"); crypto_skcipher_set_reqsize(tfm, sizeof(struct omap_des_reqctx)); ctx->enginectx.op.do_one_request = omap_des_crypt_req; return 0; } /* ********************** ALGS ************************************ */ static struct skcipher_alg algs_ecb_cbc[] = { static struct skcipher_engine_alg algs_ecb_cbc[] = { { .base = { .base.cra_name = "ecb(des)", .base.cra_driver_name = "ecb-des-omap", .base.cra_priority = 300, Loading @@ -738,7 +732,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_des_ecb_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, }, { .base = { .base.cra_name = "cbc(des)", .base.cra_driver_name = "cbc-des-omap", .base.cra_priority = 300, Loading @@ -756,7 +753,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_des_cbc_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, }, { .base = { .base.cra_name = "ecb(des3_ede)", .base.cra_driver_name = "ecb-des3-omap", .base.cra_priority = 300, Loading @@ -773,7 +773,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_des_ecb_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, }, { .base = { .base.cra_name = "cbc(des3_ede)", .base.cra_driver_name = "cbc-des3-omap", .base.cra_priority = 300, Loading @@ -790,6 +793,8 @@ static struct skcipher_alg algs_ecb_cbc[] = { .encrypt = omap_des_cbc_encrypt, .decrypt = omap_des_cbc_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, } }; Loading Loading @@ -947,7 +952,7 @@ static int omap_des_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct omap_des_dev *dd; struct skcipher_alg *algp; struct skcipher_engine_alg *algp; struct resource *res; int err = -ENOMEM, i, j, irq = -1; u32 reg; Loading Loading @@ -1035,9 +1040,9 @@ static int omap_des_probe(struct platform_device *pdev) for (j = 0; j < dd->pdata->algs_info[i].size; j++) { algp = &dd->pdata->algs_info[i].algs_list[j]; pr_debug("reg alg: %s\n", algp->base.cra_name); pr_debug("reg alg: %s\n", algp->base.base.cra_name); err = crypto_register_skcipher(algp); err = crypto_engine_register_skcipher(algp); if (err) goto err_algs; Loading @@ -1050,7 +1055,7 @@ static int omap_des_probe(struct platform_device *pdev) err_algs: for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); err_engine: Loading Loading @@ -1080,7 +1085,7 @@ static int omap_des_remove(struct platform_device *pdev) for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); tasklet_kill(&dd->done_task); Loading drivers/crypto/omap-sham.c +141 −133 Original line number Diff line number Diff line Loading @@ -13,34 +13,31 @@ #define pr_fmt(fmt) "%s: " fmt, __func__ #include <crypto/engine.h> #include <crypto/hmac.h> #include <crypto/internal/hash.h> #include <crypto/scatterwalk.h> #include <crypto/sha1.h> #include <crypto/sha2.h> #include <linux/err.h> #include <linux/device.h> #include <linux/module.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/init.h> #include <linux/errno.h> #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/irq.h> #include <linux/io.h> #include <linux/platform_device.h> #include <linux/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/pm_runtime.h> #include <linux/irq.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_address.h> #include <linux/of_irq.h> #include <linux/delay.h> #include <linux/crypto.h> #include <crypto/scatterwalk.h> #include <crypto/algapi.h> #include <crypto/sha1.h> #include <crypto/sha2.h> #include <crypto/hash.h> #include <crypto/hmac.h> #include <crypto/internal/hash.h> #include <crypto/engine.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/slab.h> #include <linux/string.h> #define MD5_DIGEST_SIZE 16 Loading Loading @@ -168,7 +165,6 @@ struct omap_sham_hmac_ctx { }; struct omap_sham_ctx { struct crypto_engine_ctx enginectx; unsigned long flags; /* fallback stuff */ Loading @@ -180,7 +176,7 @@ struct omap_sham_ctx { #define OMAP_SHAM_QUEUE_LENGTH 10 struct omap_sham_algs_info { struct ahash_alg *algs_list; struct ahash_engine_alg *algs_list; unsigned int size; unsigned int registered; }; Loading Loading @@ -1353,8 +1349,6 @@ static int omap_sham_cra_init_alg(struct crypto_tfm *tfm, const char *alg_base) } tctx->enginectx.op.do_one_request = omap_sham_hash_one_req; return 0; } Loading Loading @@ -1425,15 +1419,15 @@ static int omap_sham_import(struct ahash_request *req, const void *in) return 0; } static struct ahash_alg algs_sha1_md5[] = { static struct ahash_engine_alg algs_sha1_md5[] = { { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA1_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA1_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha1", .cra_driver_name = "omap-sha1", .cra_priority = 400, Loading @@ -1446,16 +1440,17 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = MD5_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = MD5_DIGEST_SIZE, .base.halg.base = { .cra_name = "md5", .cra_driver_name = "omap-md5", .cra_priority = 400, Loading @@ -1468,17 +1463,18 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA1_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA1_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha1)", .cra_driver_name = "omap-hmac-sha1", .cra_priority = 400, Loading @@ -1492,17 +1488,18 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha1_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = MD5_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = MD5_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(md5)", .cra_driver_name = "omap-hmac-md5", .cra_priority = 400, Loading @@ -1516,20 +1513,21 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_md5_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, } }; /* OMAP4 has some algs in addition to what OMAP2 has */ static struct ahash_alg algs_sha224_sha256[] = { { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA224_DIGEST_SIZE, .halg.base = { static struct ahash_engine_alg algs_sha224_sha256[] = { { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA224_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha224", .cra_driver_name = "omap-sha224", .cra_priority = 400, Loading @@ -1542,16 +1540,17 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA256_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA256_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha256", .cra_driver_name = "omap-sha256", .cra_priority = 400, Loading @@ -1564,17 +1563,18 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA224_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA224_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha224)", .cra_driver_name = "omap-hmac-sha224", .cra_priority = 400, Loading @@ -1588,17 +1588,18 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha224_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA256_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA256_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha256)", .cra_driver_name = "omap-hmac-sha256", .cra_priority = 400, Loading @@ -1612,19 +1613,20 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha256_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, }; static struct ahash_alg algs_sha384_sha512[] = { static struct ahash_engine_alg algs_sha384_sha512[] = { { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA384_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA384_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha384", .cra_driver_name = "omap-sha384", .cra_priority = 400, Loading @@ -1637,16 +1639,17 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA512_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA512_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha512", .cra_driver_name = "omap-sha512", .cra_priority = 400, Loading @@ -1659,17 +1662,18 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA384_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA384_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha384)", .cra_driver_name = "omap-hmac-sha384", .cra_priority = 400, Loading @@ -1683,17 +1687,18 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha384_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA512_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA512_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha512)", .cra_driver_name = "omap-hmac-sha512", .cra_priority = 400, Loading @@ -1707,7 +1712,8 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha512_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, }; Loading Loading @@ -2148,14 +2154,16 @@ static int omap_sham_probe(struct platform_device *pdev) break; for (j = 0; j < dd->pdata->algs_info[i].size; j++) { struct ahash_engine_alg *ealg; struct ahash_alg *alg; alg = &dd->pdata->algs_info[i].algs_list[j]; ealg = &dd->pdata->algs_info[i].algs_list[j]; alg = &ealg->base; alg->export = omap_sham_export; alg->import = omap_sham_import; alg->halg.statesize = sizeof(struct omap_sham_reqctx) + BUFLEN; err = crypto_register_ahash(alg); err = crypto_engine_register_ahash(ealg); if (err) goto err_algs; Loading @@ -2174,7 +2182,7 @@ static int omap_sham_probe(struct platform_device *pdev) err_algs: for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_ahash( crypto_engine_unregister_ahash( &dd->pdata->algs_info[i].algs_list[j]); err_engine_start: crypto_engine_exit(dd->engine); Loading Loading @@ -2205,7 +2213,7 @@ static int omap_sham_remove(struct platform_device *pdev) spin_unlock_bh(&sham.lock); for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) { crypto_unregister_ahash( crypto_engine_unregister_ahash( &dd->pdata->algs_info[i].algs_list[j]); dd->pdata->algs_info[i].registered--; } Loading Loading
drivers/crypto/omap-aes-gcm.c +11 −12 Original line number Diff line number Diff line Loading @@ -7,18 +7,21 @@ * Copyright (c) 2016 Texas Instruments Incorporated */ #include <crypto/aes.h> #include <crypto/engine.h> #include <crypto/gcm.h> #include <crypto/internal/aead.h> #include <crypto/scatterwalk.h> #include <crypto/skcipher.h> #include <linux/errno.h> #include <linux/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/omap-dma.h> #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/omap-dma.h> #include <linux/pm_runtime.h> #include <crypto/aes.h> #include <crypto/gcm.h> #include <crypto/scatterwalk.h> #include <crypto/skcipher.h> #include <crypto/internal/aead.h> #include <linux/scatterlist.h> #include <linux/string.h> #include "omap-crypto.h" #include "omap-aes.h" Loading Loading @@ -354,7 +357,7 @@ int omap_aes_4106gcm_setauthsize(struct crypto_aead *parent, return crypto_rfc4106_check_authsize(authsize); } static int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq) int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq) { struct aead_request *req = container_of(areq, struct aead_request, base); Loading @@ -379,10 +382,6 @@ static int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq) int omap_aes_gcm_cra_init(struct crypto_aead *tfm) { struct omap_aes_ctx *ctx = crypto_aead_ctx(tfm); ctx->enginectx.op.do_one_request = omap_aes_gcm_crypt_req; crypto_aead_set_reqsize(tfm, sizeof(struct omap_aes_reqctx)); return 0; Loading
drivers/crypto/omap-aes.c +115 −101 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/string.h> #include "omap-crypto.h" #include "omap-aes.h" Loading Loading @@ -638,8 +639,6 @@ static int omap_aes_init_tfm(struct crypto_skcipher *tfm) crypto_skcipher_set_reqsize(tfm, sizeof(struct omap_aes_reqctx) + crypto_skcipher_reqsize(blk)); ctx->enginectx.op.do_one_request = omap_aes_crypt_req; return 0; } Loading @@ -655,8 +654,9 @@ static void omap_aes_exit_tfm(struct crypto_skcipher *tfm) /* ********************** ALGS ************************************ */ static struct skcipher_alg algs_ecb_cbc[] = { static struct skcipher_engine_alg algs_ecb_cbc[] = { { .base = { .base.cra_name = "ecb(aes)", .base.cra_driver_name = "ecb-aes-omap", .base.cra_priority = 300, Loading @@ -675,7 +675,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .init = omap_aes_init_tfm, .exit = omap_aes_exit_tfm, }, .op.do_one_request = omap_aes_crypt_req, }, { .base = { .base.cra_name = "cbc(aes)", .base.cra_driver_name = "cbc-aes-omap", .base.cra_priority = 300, Loading @@ -694,11 +697,14 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_aes_cbc_decrypt, .init = omap_aes_init_tfm, .exit = omap_aes_exit_tfm, }, .op.do_one_request = omap_aes_crypt_req, } }; static struct skcipher_alg algs_ctr[] = { static struct skcipher_engine_alg algs_ctr[] = { { .base = { .base.cra_name = "ctr(aes)", .base.cra_driver_name = "ctr-aes-omap", .base.cra_priority = 300, Loading @@ -717,6 +723,8 @@ static struct skcipher_alg algs_ctr[] = { .decrypt = omap_aes_ctr_decrypt, .init = omap_aes_init_tfm, .exit = omap_aes_exit_tfm, }, .op.do_one_request = omap_aes_crypt_req, } }; Loading @@ -727,8 +735,9 @@ static struct omap_aes_algs_info omap_aes_algs_info_ecb_cbc[] = { }, }; static struct aead_alg algs_aead_gcm[] = { static struct aead_engine_alg algs_aead_gcm[] = { { .base = { .base = { .cra_name = "gcm(aes)", .cra_driver_name = "gcm-aes-omap", Loading @@ -748,7 +757,10 @@ static struct aead_alg algs_aead_gcm[] = { .encrypt = omap_aes_gcm_encrypt, .decrypt = omap_aes_gcm_decrypt, }, .op.do_one_request = omap_aes_gcm_crypt_req, }, { .base = { .base = { .cra_name = "rfc4106(gcm(aes))", .cra_driver_name = "rfc4106-gcm-aes-omap", Loading @@ -768,6 +780,8 @@ static struct aead_alg algs_aead_gcm[] = { .encrypt = omap_aes_4106gcm_encrypt, .decrypt = omap_aes_4106gcm_decrypt, }, .op.do_one_request = omap_aes_gcm_crypt_req, }, }; static struct omap_aes_aead_algs omap_aes_aead_info = { Loading Loading @@ -1088,8 +1102,8 @@ static int omap_aes_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct omap_aes_dev *dd; struct skcipher_alg *algp; struct aead_alg *aalg; struct skcipher_engine_alg *algp; struct aead_engine_alg *aalg; struct resource res; int err = -ENOMEM, i, j, irq = -1; u32 reg; Loading Loading @@ -1182,9 +1196,9 @@ static int omap_aes_probe(struct platform_device *pdev) for (j = 0; j < dd->pdata->algs_info[i].size; j++) { algp = &dd->pdata->algs_info[i].algs_list[j]; pr_debug("reg alg: %s\n", algp->base.cra_name); pr_debug("reg alg: %s\n", algp->base.base.cra_name); err = crypto_register_skcipher(algp); err = crypto_engine_register_skcipher(algp); if (err) goto err_algs; Loading @@ -1198,9 +1212,9 @@ static int omap_aes_probe(struct platform_device *pdev) for (i = 0; i < dd->pdata->aead_algs_info->size; i++) { aalg = &dd->pdata->aead_algs_info->algs_list[i]; pr_debug("reg alg: %s\n", aalg->base.cra_name); pr_debug("reg alg: %s\n", aalg->base.base.cra_name); err = crypto_register_aead(aalg); err = crypto_engine_register_aead(aalg); if (err) goto err_aead_algs; Loading @@ -1218,12 +1232,12 @@ static int omap_aes_probe(struct platform_device *pdev) err_aead_algs: for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) { aalg = &dd->pdata->aead_algs_info->algs_list[i]; crypto_unregister_aead(aalg); crypto_engine_unregister_aead(aalg); } err_algs: for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); err_engine: Loading @@ -1245,7 +1259,7 @@ static int omap_aes_probe(struct platform_device *pdev) static int omap_aes_remove(struct platform_device *pdev) { struct omap_aes_dev *dd = platform_get_drvdata(pdev); struct aead_alg *aalg; struct aead_engine_alg *aalg; int i, j; spin_lock_bh(&list_lock); Loading @@ -1254,14 +1268,14 @@ static int omap_aes_remove(struct platform_device *pdev) for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) { crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); dd->pdata->algs_info[i].registered--; } for (i = dd->pdata->aead_algs_info->registered - 1; i >= 0; i--) { aalg = &dd->pdata->aead_algs_info->algs_list[i]; crypto_unregister_aead(aalg); crypto_engine_unregister_aead(aalg); dd->pdata->aead_algs_info->registered--; } Loading
drivers/crypto/omap-aes.h +7 −8 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ #define __OMAP_AES_H__ #include <crypto/aes.h> #include <crypto/engine.h> #define DST_MAXBURST 4 #define DMA_MIN (DST_MAXBURST * sizeof(u32)) Loading Loading @@ -93,7 +92,6 @@ struct omap_aes_gcm_result { }; struct omap_aes_ctx { struct crypto_engine_ctx enginectx; int keylen; u32 key[AES_KEYSIZE_256 / sizeof(u32)]; u8 nonce[4]; Loading @@ -117,13 +115,13 @@ struct omap_aes_reqctx { #define OMAP_AES_CACHE_SIZE 0 struct omap_aes_algs_info { struct skcipher_alg *algs_list; struct skcipher_engine_alg *algs_list; unsigned int size; unsigned int registered; }; struct omap_aes_aead_algs { struct aead_alg *algs_list; struct aead_engine_alg *algs_list; unsigned int size; unsigned int registered; }; Loading Loading @@ -218,5 +216,6 @@ int omap_aes_crypt_dma_start(struct omap_aes_dev *dd); int omap_aes_crypt_dma_stop(struct omap_aes_dev *dd); void omap_aes_gcm_dma_out_callback(void *data); void omap_aes_clear_copy_flags(struct omap_aes_dev *dd); int omap_aes_gcm_crypt_req(struct crypto_engine *engine, void *areq); #endif
drivers/crypto/omap-des.c +96 −91 Original line number Diff line number Diff line Loading @@ -16,27 +16,25 @@ #define prx(num) do { } while (0) #endif #include <crypto/engine.h> #include <crypto/internal/des.h> #include <crypto/internal/skcipher.h> #include <crypto/scatterwalk.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/err.h> #include <linux/module.h> #include <linux/init.h> #include <linux/errno.h> #include <linux/interrupt.h> #include <linux/io.h> #include <linux/kernel.h> #include <linux/platform_device.h> #include <linux/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/pm_runtime.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_address.h> #include <linux/io.h> #include <linux/crypto.h> #include <linux/interrupt.h> #include <crypto/scatterwalk.h> #include <crypto/internal/des.h> #include <crypto/internal/skcipher.h> #include <crypto/algapi.h> #include <crypto/engine.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/string.h> #include "omap-crypto.h" Loading Loading @@ -83,7 +81,6 @@ #define FLAGS_OUT_DATA_ST_SHIFT 10 struct omap_des_ctx { struct crypto_engine_ctx enginectx; struct omap_des_dev *dd; int keylen; Loading @@ -99,7 +96,7 @@ struct omap_des_reqctx { #define OMAP_DES_CACHE_SIZE 0 struct omap_des_algs_info { struct skcipher_alg *algs_list; struct skcipher_engine_alg *algs_list; unsigned int size; unsigned int registered; }; Loading Loading @@ -707,21 +704,18 @@ static int omap_des_cbc_decrypt(struct skcipher_request *req) static int omap_des_init_tfm(struct crypto_skcipher *tfm) { struct omap_des_ctx *ctx = crypto_skcipher_ctx(tfm); pr_debug("enter\n"); crypto_skcipher_set_reqsize(tfm, sizeof(struct omap_des_reqctx)); ctx->enginectx.op.do_one_request = omap_des_crypt_req; return 0; } /* ********************** ALGS ************************************ */ static struct skcipher_alg algs_ecb_cbc[] = { static struct skcipher_engine_alg algs_ecb_cbc[] = { { .base = { .base.cra_name = "ecb(des)", .base.cra_driver_name = "ecb-des-omap", .base.cra_priority = 300, Loading @@ -738,7 +732,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_des_ecb_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, }, { .base = { .base.cra_name = "cbc(des)", .base.cra_driver_name = "cbc-des-omap", .base.cra_priority = 300, Loading @@ -756,7 +753,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_des_cbc_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, }, { .base = { .base.cra_name = "ecb(des3_ede)", .base.cra_driver_name = "ecb-des3-omap", .base.cra_priority = 300, Loading @@ -773,7 +773,10 @@ static struct skcipher_alg algs_ecb_cbc[] = { .decrypt = omap_des_ecb_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, }, { .base = { .base.cra_name = "cbc(des3_ede)", .base.cra_driver_name = "cbc-des3-omap", .base.cra_priority = 300, Loading @@ -790,6 +793,8 @@ static struct skcipher_alg algs_ecb_cbc[] = { .encrypt = omap_des_cbc_encrypt, .decrypt = omap_des_cbc_decrypt, .init = omap_des_init_tfm, }, .op.do_one_request = omap_des_crypt_req, } }; Loading Loading @@ -947,7 +952,7 @@ static int omap_des_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct omap_des_dev *dd; struct skcipher_alg *algp; struct skcipher_engine_alg *algp; struct resource *res; int err = -ENOMEM, i, j, irq = -1; u32 reg; Loading Loading @@ -1035,9 +1040,9 @@ static int omap_des_probe(struct platform_device *pdev) for (j = 0; j < dd->pdata->algs_info[i].size; j++) { algp = &dd->pdata->algs_info[i].algs_list[j]; pr_debug("reg alg: %s\n", algp->base.cra_name); pr_debug("reg alg: %s\n", algp->base.base.cra_name); err = crypto_register_skcipher(algp); err = crypto_engine_register_skcipher(algp); if (err) goto err_algs; Loading @@ -1050,7 +1055,7 @@ static int omap_des_probe(struct platform_device *pdev) err_algs: for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); err_engine: Loading Loading @@ -1080,7 +1085,7 @@ static int omap_des_remove(struct platform_device *pdev) for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_skcipher( crypto_engine_unregister_skcipher( &dd->pdata->algs_info[i].algs_list[j]); tasklet_kill(&dd->done_task); Loading
drivers/crypto/omap-sham.c +141 −133 Original line number Diff line number Diff line Loading @@ -13,34 +13,31 @@ #define pr_fmt(fmt) "%s: " fmt, __func__ #include <crypto/engine.h> #include <crypto/hmac.h> #include <crypto/internal/hash.h> #include <crypto/scatterwalk.h> #include <crypto/sha1.h> #include <crypto/sha2.h> #include <linux/err.h> #include <linux/device.h> #include <linux/module.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/init.h> #include <linux/errno.h> #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/irq.h> #include <linux/io.h> #include <linux/platform_device.h> #include <linux/scatterlist.h> #include <linux/dma-mapping.h> #include <linux/dmaengine.h> #include <linux/pm_runtime.h> #include <linux/irq.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_address.h> #include <linux/of_irq.h> #include <linux/delay.h> #include <linux/crypto.h> #include <crypto/scatterwalk.h> #include <crypto/algapi.h> #include <crypto/sha1.h> #include <crypto/sha2.h> #include <crypto/hash.h> #include <crypto/hmac.h> #include <crypto/internal/hash.h> #include <crypto/engine.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/scatterlist.h> #include <linux/slab.h> #include <linux/string.h> #define MD5_DIGEST_SIZE 16 Loading Loading @@ -168,7 +165,6 @@ struct omap_sham_hmac_ctx { }; struct omap_sham_ctx { struct crypto_engine_ctx enginectx; unsigned long flags; /* fallback stuff */ Loading @@ -180,7 +176,7 @@ struct omap_sham_ctx { #define OMAP_SHAM_QUEUE_LENGTH 10 struct omap_sham_algs_info { struct ahash_alg *algs_list; struct ahash_engine_alg *algs_list; unsigned int size; unsigned int registered; }; Loading Loading @@ -1353,8 +1349,6 @@ static int omap_sham_cra_init_alg(struct crypto_tfm *tfm, const char *alg_base) } tctx->enginectx.op.do_one_request = omap_sham_hash_one_req; return 0; } Loading Loading @@ -1425,15 +1419,15 @@ static int omap_sham_import(struct ahash_request *req, const void *in) return 0; } static struct ahash_alg algs_sha1_md5[] = { static struct ahash_engine_alg algs_sha1_md5[] = { { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA1_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA1_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha1", .cra_driver_name = "omap-sha1", .cra_priority = 400, Loading @@ -1446,16 +1440,17 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = MD5_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = MD5_DIGEST_SIZE, .base.halg.base = { .cra_name = "md5", .cra_driver_name = "omap-md5", .cra_priority = 400, Loading @@ -1468,17 +1463,18 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA1_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA1_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha1)", .cra_driver_name = "omap-hmac-sha1", .cra_priority = 400, Loading @@ -1492,17 +1488,18 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha1_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = MD5_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = MD5_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(md5)", .cra_driver_name = "omap-hmac-md5", .cra_priority = 400, Loading @@ -1516,20 +1513,21 @@ static struct ahash_alg algs_sha1_md5[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_md5_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, } }; /* OMAP4 has some algs in addition to what OMAP2 has */ static struct ahash_alg algs_sha224_sha256[] = { { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA224_DIGEST_SIZE, .halg.base = { static struct ahash_engine_alg algs_sha224_sha256[] = { { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA224_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha224", .cra_driver_name = "omap-sha224", .cra_priority = 400, Loading @@ -1542,16 +1540,17 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA256_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA256_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha256", .cra_driver_name = "omap-sha256", .cra_priority = 400, Loading @@ -1564,17 +1563,18 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA224_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA224_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha224)", .cra_driver_name = "omap-hmac-sha224", .cra_priority = 400, Loading @@ -1588,17 +1588,18 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha224_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA256_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA256_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha256)", .cra_driver_name = "omap-hmac-sha256", .cra_priority = 400, Loading @@ -1612,19 +1613,20 @@ static struct ahash_alg algs_sha224_sha256[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha256_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, }; static struct ahash_alg algs_sha384_sha512[] = { static struct ahash_engine_alg algs_sha384_sha512[] = { { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA384_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA384_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha384", .cra_driver_name = "omap-sha384", .cra_priority = 400, Loading @@ -1637,16 +1639,17 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .halg.digestsize = SHA512_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.halg.digestsize = SHA512_DIGEST_SIZE, .base.halg.base = { .cra_name = "sha512", .cra_driver_name = "omap-sha512", .cra_priority = 400, Loading @@ -1659,17 +1662,18 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA384_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA384_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha384)", .cra_driver_name = "omap-hmac-sha384", .cra_priority = 400, Loading @@ -1683,17 +1687,18 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha384_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, { .init = omap_sham_init, .update = omap_sham_update, .final = omap_sham_final, .finup = omap_sham_finup, .digest = omap_sham_digest, .setkey = omap_sham_setkey, .halg.digestsize = SHA512_DIGEST_SIZE, .halg.base = { .base.init = omap_sham_init, .base.update = omap_sham_update, .base.final = omap_sham_final, .base.finup = omap_sham_finup, .base.digest = omap_sham_digest, .base.setkey = omap_sham_setkey, .base.halg.digestsize = SHA512_DIGEST_SIZE, .base.halg.base = { .cra_name = "hmac(sha512)", .cra_driver_name = "omap-hmac-sha512", .cra_priority = 400, Loading @@ -1707,7 +1712,8 @@ static struct ahash_alg algs_sha384_sha512[] = { .cra_module = THIS_MODULE, .cra_init = omap_sham_cra_sha512_init, .cra_exit = omap_sham_cra_exit, } }, .op.do_one_request = omap_sham_hash_one_req, }, }; Loading Loading @@ -2148,14 +2154,16 @@ static int omap_sham_probe(struct platform_device *pdev) break; for (j = 0; j < dd->pdata->algs_info[i].size; j++) { struct ahash_engine_alg *ealg; struct ahash_alg *alg; alg = &dd->pdata->algs_info[i].algs_list[j]; ealg = &dd->pdata->algs_info[i].algs_list[j]; alg = &ealg->base; alg->export = omap_sham_export; alg->import = omap_sham_import; alg->halg.statesize = sizeof(struct omap_sham_reqctx) + BUFLEN; err = crypto_register_ahash(alg); err = crypto_engine_register_ahash(ealg); if (err) goto err_algs; Loading @@ -2174,7 +2182,7 @@ static int omap_sham_probe(struct platform_device *pdev) err_algs: for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) crypto_unregister_ahash( crypto_engine_unregister_ahash( &dd->pdata->algs_info[i].algs_list[j]); err_engine_start: crypto_engine_exit(dd->engine); Loading Loading @@ -2205,7 +2213,7 @@ static int omap_sham_remove(struct platform_device *pdev) spin_unlock_bh(&sham.lock); for (i = dd->pdata->algs_info_size - 1; i >= 0; i--) for (j = dd->pdata->algs_info[i].registered - 1; j >= 0; j--) { crypto_unregister_ahash( crypto_engine_unregister_ahash( &dd->pdata->algs_info[i].algs_list[j]); dd->pdata->algs_info[i].registered--; } Loading