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

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
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ static int mv_cesa_add_algs(struct mv_cesa_dev *cesa)
	int i, j;

	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)
			goto err_unregister_crypto;
	}
@@ -216,7 +216,7 @@ err_unregister_ahash:

err_unregister_crypto:
	for (j = 0; j < i; j++)
		crypto_unregister_alg(cesa->caps->cipher_algs[j]);
		crypto_unregister_skcipher(cesa->caps->cipher_algs[j]);

	return ret;
}
@@ -229,10 +229,10 @@ static void mv_cesa_remove_algs(struct mv_cesa_dev *cesa)
		crypto_unregister_ahash(cesa->caps->ahash_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_cbc_des_alg,
	&mv_cesa_ecb_des3_ede_alg,
@@ -248,7 +248,7 @@ static struct ahash_alg *orion_ahash_algs[] = {
	&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_cbc_des_alg,
	&mv_cesa_ecb_des3_ede_alg,
+13 −12
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#include <crypto/algapi.h>
#include <crypto/hash.h>
#include <crypto/internal/hash.h>
#include <crypto/internal/skcipher.h>

#include <linux/crypto.h>
#include <linux/dmapool.h>
@@ -372,7 +373,7 @@ struct mv_cesa_engine;
struct mv_cesa_caps {
	int nengines;
	bool has_tdma;
	struct crypto_alg **cipher_algs;
	struct skcipher_alg **cipher_algs;
	int ncipher_algs;
	struct ahash_alg **ahash_algs;
	int nahash_algs;
@@ -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
 * @offset:	current operation offset
 * @size:	size of the crypto operation
 */
struct mv_cesa_ablkcipher_std_req {
struct mv_cesa_skcipher_std_req {
	struct mv_cesa_op_ctx op;
	unsigned int offset;
	unsigned int size;
@@ -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
 * @src_nents:	number of entries in the src 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_ablkcipher_std_req std;
	struct mv_cesa_skcipher_std_req std;
	int src_nents;
	int dst_nents;
};
@@ -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_sha256_alg;

extern struct crypto_alg mv_cesa_ecb_des_alg;
extern struct crypto_alg mv_cesa_cbc_des_alg;
extern struct crypto_alg mv_cesa_ecb_des3_ede_alg;
extern struct crypto_alg mv_cesa_cbc_des3_ede_alg;
extern struct crypto_alg mv_cesa_ecb_aes_alg;
extern struct crypto_alg mv_cesa_cbc_aes_alg;
extern struct skcipher_alg mv_cesa_ecb_des_alg;
extern struct skcipher_alg mv_cesa_cbc_des_alg;
extern struct skcipher_alg mv_cesa_ecb_des3_ede_alg;
extern struct skcipher_alg mv_cesa_cbc_des3_ede_alg;
extern struct skcipher_alg mv_cesa_ecb_aes_alg;
extern struct skcipher_alg mv_cesa_cbc_aes_alg;

#endif /* __MARVELL_CESA_H__ */
+233 −243

File changed.

Preview size limit exceeded, changes collapsed.