Skip to content

Commit

Permalink
crypto: rockchip - rewrite type
Browse files Browse the repository at this point in the history
Instead of using a custom type for classify algorithms, let's just use
already defined ones.
And let's made a bit more verbose about what is registered.

Reviewed-by: John Keeping <[email protected]>
Signed-off-by: Corentin Labbe <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
montjoie authored and herbertx committed Oct 28, 2022
1 parent 57d67c6 commit 6d55c4a
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 23 deletions.
26 changes: 18 additions & 8 deletions drivers/crypto/rockchip/rk3288_crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,20 +102,30 @@ static int rk_crypto_register(struct rk_crypto_info *crypto_info)

for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
rk_cipher_algs[i]->dev = crypto_info;
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
err = crypto_register_skcipher(
&rk_cipher_algs[i]->alg.skcipher);
else
err = crypto_register_ahash(
&rk_cipher_algs[i]->alg.hash);
switch (rk_cipher_algs[i]->type) {
case CRYPTO_ALG_TYPE_SKCIPHER:
dev_info(crypto_info->dev, "Register %s as %s\n",
rk_cipher_algs[i]->alg.skcipher.base.cra_name,
rk_cipher_algs[i]->alg.skcipher.base.cra_driver_name);
err = crypto_register_skcipher(&rk_cipher_algs[i]->alg.skcipher);
break;
case CRYPTO_ALG_TYPE_AHASH:
dev_info(crypto_info->dev, "Register %s as %s\n",
rk_cipher_algs[i]->alg.hash.halg.base.cra_name,
rk_cipher_algs[i]->alg.hash.halg.base.cra_driver_name);
err = crypto_register_ahash(&rk_cipher_algs[i]->alg.hash);
break;
default:
dev_err(crypto_info->dev, "unknown algorithm\n");
}
if (err)
goto err_cipher_algs;
}
return 0;

err_cipher_algs:
for (k = 0; k < i; k++) {
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
if (rk_cipher_algs[i]->type == CRYPTO_ALG_TYPE_SKCIPHER)
crypto_unregister_skcipher(&rk_cipher_algs[k]->alg.skcipher);
else
crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
Expand All @@ -128,7 +138,7 @@ static void rk_crypto_unregister(void)
unsigned int i;

for (i = 0; i < ARRAY_SIZE(rk_cipher_algs); i++) {
if (rk_cipher_algs[i]->type == ALG_TYPE_CIPHER)
if (rk_cipher_algs[i]->type == CRYPTO_ALG_TYPE_SKCIPHER)
crypto_unregister_skcipher(&rk_cipher_algs[i]->alg.skcipher);
else
crypto_unregister_ahash(&rk_cipher_algs[i]->alg.hash);
Expand Down
7 changes: 1 addition & 6 deletions drivers/crypto/rockchip/rk3288_crypto.h
Original file line number Diff line number Diff line change
Expand Up @@ -232,18 +232,13 @@ struct rk_cipher_rctx {
struct skcipher_request fallback_req; // keep at the end
};

enum alg_type {
ALG_TYPE_HASH,
ALG_TYPE_CIPHER,
};

struct rk_crypto_tmp {
u32 type;
struct rk_crypto_info *dev;
union {
struct skcipher_alg skcipher;
struct ahash_alg hash;
} alg;
enum alg_type type;
};

extern struct rk_crypto_tmp rk_ecb_aes_alg;
Expand Down
6 changes: 3 additions & 3 deletions drivers/crypto/rockchip/rk3288_crypto_ahash.c
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ static void rk_cra_hash_exit(struct crypto_tfm *tfm)
}

struct rk_crypto_tmp rk_ahash_sha1 = {
.type = ALG_TYPE_HASH,
.type = CRYPTO_ALG_TYPE_AHASH,
.alg.hash = {
.init = rk_ahash_init,
.update = rk_ahash_update,
Expand Down Expand Up @@ -382,7 +382,7 @@ struct rk_crypto_tmp rk_ahash_sha1 = {
};

struct rk_crypto_tmp rk_ahash_sha256 = {
.type = ALG_TYPE_HASH,
.type = CRYPTO_ALG_TYPE_AHASH,
.alg.hash = {
.init = rk_ahash_init,
.update = rk_ahash_update,
Expand Down Expand Up @@ -412,7 +412,7 @@ struct rk_crypto_tmp rk_ahash_sha256 = {
};

struct rk_crypto_tmp rk_ahash_md5 = {
.type = ALG_TYPE_HASH,
.type = CRYPTO_ALG_TYPE_AHASH,
.alg.hash = {
.init = rk_ahash_init,
.update = rk_ahash_update,
Expand Down
12 changes: 6 additions & 6 deletions drivers/crypto/rockchip/rk3288_crypto_skcipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ static void rk_ablk_exit_tfm(struct crypto_skcipher *tfm)
}

struct rk_crypto_tmp rk_ecb_aes_alg = {
.type = ALG_TYPE_CIPHER,
.type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = {
.base.cra_name = "ecb(aes)",
.base.cra_driver_name = "ecb-aes-rk",
Expand All @@ -490,7 +490,7 @@ struct rk_crypto_tmp rk_ecb_aes_alg = {
};

struct rk_crypto_tmp rk_cbc_aes_alg = {
.type = ALG_TYPE_CIPHER,
.type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = {
.base.cra_name = "cbc(aes)",
.base.cra_driver_name = "cbc-aes-rk",
Expand All @@ -513,7 +513,7 @@ struct rk_crypto_tmp rk_cbc_aes_alg = {
};

struct rk_crypto_tmp rk_ecb_des_alg = {
.type = ALG_TYPE_CIPHER,
.type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = {
.base.cra_name = "ecb(des)",
.base.cra_driver_name = "ecb-des-rk",
Expand All @@ -535,7 +535,7 @@ struct rk_crypto_tmp rk_ecb_des_alg = {
};

struct rk_crypto_tmp rk_cbc_des_alg = {
.type = ALG_TYPE_CIPHER,
.type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = {
.base.cra_name = "cbc(des)",
.base.cra_driver_name = "cbc-des-rk",
Expand All @@ -558,7 +558,7 @@ struct rk_crypto_tmp rk_cbc_des_alg = {
};

struct rk_crypto_tmp rk_ecb_des3_ede_alg = {
.type = ALG_TYPE_CIPHER,
.type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = {
.base.cra_name = "ecb(des3_ede)",
.base.cra_driver_name = "ecb-des3-ede-rk",
Expand All @@ -580,7 +580,7 @@ struct rk_crypto_tmp rk_ecb_des3_ede_alg = {
};

struct rk_crypto_tmp rk_cbc_des3_ede_alg = {
.type = ALG_TYPE_CIPHER,
.type = CRYPTO_ALG_TYPE_SKCIPHER,
.alg.skcipher = {
.base.cra_name = "cbc(des3_ede)",
.base.cra_driver_name = "cbc-des3-ede-rk",
Expand Down

0 comments on commit 6d55c4a

Please sign in to comment.