Commit e6cd5bf6 authored by Boris BREZILLON's avatar Boris BREZILLON Committed by Herbert Xu

crypto: marvell - Switch cipher algs to the skcipher interface

crypto_alg is not supposed to be directly implemented by crypto engine
driver. Drivers should instead implement specialized interfaces like
ahash_alg or skcipher_alg.

Migrate to all cipher algorithms to the skcipher_alg interface. While at
it, get rid of all references to ablkcipher including in internal struct
or function names.
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent ca70f415
...@@ -196,7 +196,7 @@ static int mv_cesa_add_algs(struct mv_cesa_dev *cesa) ...@@ -196,7 +196,7 @@ static int mv_cesa_add_algs(struct mv_cesa_dev *cesa)
int i, j; int i, j;
for (i = 0; i < cesa->caps->ncipher_algs; i++) { for (i = 0; i < cesa->caps->ncipher_algs; i++) {
ret = crypto_register_alg(cesa->caps->cipher_algs[i]); ret = crypto_register_skcipher(cesa->caps->cipher_algs[i]);
if (ret) if (ret)
goto err_unregister_crypto; goto err_unregister_crypto;
} }
...@@ -216,7 +216,7 @@ static int mv_cesa_add_algs(struct mv_cesa_dev *cesa) ...@@ -216,7 +216,7 @@ static int mv_cesa_add_algs(struct mv_cesa_dev *cesa)
err_unregister_crypto: err_unregister_crypto:
for (j = 0; j < i; j++) for (j = 0; j < i; j++)
crypto_unregister_alg(cesa->caps->cipher_algs[j]); crypto_unregister_skcipher(cesa->caps->cipher_algs[j]);
return ret; return ret;
} }
...@@ -229,10 +229,10 @@ static void mv_cesa_remove_algs(struct mv_cesa_dev *cesa) ...@@ -229,10 +229,10 @@ static void mv_cesa_remove_algs(struct mv_cesa_dev *cesa)
crypto_unregister_ahash(cesa->caps->ahash_algs[i]); crypto_unregister_ahash(cesa->caps->ahash_algs[i]);
for (i = 0; i < cesa->caps->ncipher_algs; i++) for (i = 0; i < cesa->caps->ncipher_algs; i++)
crypto_unregister_alg(cesa->caps->cipher_algs[i]); crypto_unregister_skcipher(cesa->caps->cipher_algs[i]);
} }
static struct crypto_alg *orion_cipher_algs[] = { static struct skcipher_alg *orion_cipher_algs[] = {
&mv_cesa_ecb_des_alg, &mv_cesa_ecb_des_alg,
&mv_cesa_cbc_des_alg, &mv_cesa_cbc_des_alg,
&mv_cesa_ecb_des3_ede_alg, &mv_cesa_ecb_des3_ede_alg,
...@@ -248,7 +248,7 @@ static struct ahash_alg *orion_ahash_algs[] = { ...@@ -248,7 +248,7 @@ static struct ahash_alg *orion_ahash_algs[] = {
&mv_ahmac_sha1_alg, &mv_ahmac_sha1_alg,
}; };
static struct crypto_alg *armada_370_cipher_algs[] = { static struct skcipher_alg *armada_370_cipher_algs[] = {
&mv_cesa_ecb_des_alg, &mv_cesa_ecb_des_alg,
&mv_cesa_cbc_des_alg, &mv_cesa_cbc_des_alg,
&mv_cesa_ecb_des3_ede_alg, &mv_cesa_ecb_des3_ede_alg,
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <crypto/algapi.h> #include <crypto/algapi.h>
#include <crypto/hash.h> #include <crypto/hash.h>
#include <crypto/internal/hash.h> #include <crypto/internal/hash.h>
#include <crypto/internal/skcipher.h>
#include <linux/crypto.h> #include <linux/crypto.h>
#include <linux/dmapool.h> #include <linux/dmapool.h>
...@@ -372,7 +373,7 @@ struct mv_cesa_engine; ...@@ -372,7 +373,7 @@ struct mv_cesa_engine;
struct mv_cesa_caps { struct mv_cesa_caps {
int nengines; int nengines;
bool has_tdma; bool has_tdma;
struct crypto_alg **cipher_algs; struct skcipher_alg **cipher_algs;
int ncipher_algs; int ncipher_algs;
struct ahash_alg **ahash_algs; struct ahash_alg **ahash_algs;
int nahash_algs; int nahash_algs;
...@@ -538,12 +539,12 @@ struct mv_cesa_sg_std_iter { ...@@ -538,12 +539,12 @@ struct mv_cesa_sg_std_iter {
}; };
/** /**
* struct mv_cesa_ablkcipher_std_req - cipher standard request * struct mv_cesa_skcipher_std_req - cipher standard request
* @op: operation context * @op: operation context
* @offset: current operation offset * @offset: current operation offset
* @size: size of the crypto operation * @size: size of the crypto operation
*/ */
struct mv_cesa_ablkcipher_std_req { struct mv_cesa_skcipher_std_req {
struct mv_cesa_op_ctx op; struct mv_cesa_op_ctx op;
unsigned int offset; unsigned int offset;
unsigned int size; unsigned int size;
...@@ -551,14 +552,14 @@ struct mv_cesa_ablkcipher_std_req { ...@@ -551,14 +552,14 @@ struct mv_cesa_ablkcipher_std_req {
}; };
/** /**
* struct mv_cesa_ablkcipher_req - cipher request * struct mv_cesa_skcipher_req - cipher request
* @req: type specific request information * @req: type specific request information
* @src_nents: number of entries in the src sg list * @src_nents: number of entries in the src sg list
* @dst_nents: number of entries in the dest sg list * @dst_nents: number of entries in the dest sg list
*/ */
struct mv_cesa_ablkcipher_req { struct mv_cesa_skcipher_req {
struct mv_cesa_req base; struct mv_cesa_req base;
struct mv_cesa_ablkcipher_std_req std; struct mv_cesa_skcipher_std_req std;
int src_nents; int src_nents;
int dst_nents; int dst_nents;
}; };
...@@ -868,11 +869,11 @@ extern struct ahash_alg mv_ahmac_md5_alg; ...@@ -868,11 +869,11 @@ extern struct ahash_alg mv_ahmac_md5_alg;
extern struct ahash_alg mv_ahmac_sha1_alg; extern struct ahash_alg mv_ahmac_sha1_alg;
extern struct ahash_alg mv_ahmac_sha256_alg; extern struct ahash_alg mv_ahmac_sha256_alg;
extern struct crypto_alg mv_cesa_ecb_des_alg; extern struct skcipher_alg mv_cesa_ecb_des_alg;
extern struct crypto_alg mv_cesa_cbc_des_alg; extern struct skcipher_alg mv_cesa_cbc_des_alg;
extern struct crypto_alg mv_cesa_ecb_des3_ede_alg; extern struct skcipher_alg mv_cesa_ecb_des3_ede_alg;
extern struct crypto_alg mv_cesa_cbc_des3_ede_alg; extern struct skcipher_alg mv_cesa_cbc_des3_ede_alg;
extern struct crypto_alg mv_cesa_ecb_aes_alg; extern struct skcipher_alg mv_cesa_ecb_aes_alg;
extern struct crypto_alg mv_cesa_cbc_aes_alg; extern struct skcipher_alg mv_cesa_cbc_aes_alg;
#endif /* __MARVELL_CESA_H__ */ #endif /* __MARVELL_CESA_H__ */
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment