Skip to content

Commit

Permalink
crypto: lrw - Only access common skcipher fields on spawn
Browse files Browse the repository at this point in the history
As skcipher spawns may be of the type lskcipher, only the common
fields may be accessed.  This was already the case but use the
correct helpers to make this more obvious.

Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
herbertx committed Oct 13, 2023
1 parent c4c6bb6 commit 1ec0a8a
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions crypto/lrw.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,8 +299,8 @@ static void lrw_free_instance(struct skcipher_instance *inst)
static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)
{
struct crypto_skcipher_spawn *spawn;
struct skcipher_alg_common *alg;
struct skcipher_instance *inst;
struct skcipher_alg *alg;
const char *cipher_name;
char ecb_name[CRYPTO_MAX_ALG_NAME];
u32 mask;
Expand Down Expand Up @@ -336,13 +336,13 @@ static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)
if (err)
goto err_free_inst;

alg = crypto_skcipher_spawn_alg(spawn);
alg = crypto_spawn_skcipher_alg_common(spawn);

err = -EINVAL;
if (alg->base.cra_blocksize != LRW_BLOCK_SIZE)
goto err_free_inst;

if (crypto_skcipher_alg_ivsize(alg))
if (alg->ivsize)
goto err_free_inst;

err = crypto_inst_setname(skcipher_crypto_instance(inst), "lrw",
Expand Down Expand Up @@ -382,10 +382,8 @@ static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)
(__alignof__(be128) - 1);

inst->alg.ivsize = LRW_BLOCK_SIZE;
inst->alg.min_keysize = crypto_skcipher_alg_min_keysize(alg) +
LRW_BLOCK_SIZE;
inst->alg.max_keysize = crypto_skcipher_alg_max_keysize(alg) +
LRW_BLOCK_SIZE;
inst->alg.min_keysize = alg->min_keysize + LRW_BLOCK_SIZE;
inst->alg.max_keysize = alg->max_keysize + LRW_BLOCK_SIZE;

inst->alg.base.cra_ctxsize = sizeof(struct lrw_tfm_ctx);

Expand Down

0 comments on commit 1ec0a8a

Please sign in to comment.