crypto: lrw - Only access common skcipher fields on spawn
[linux-2.6-block.git] / crypto / lrw.c
index 59260aefed2807d948c03faf78ccc661616a2eb1..e216fbf2b7866758f35d42c69ec3fb4c6e2ba86d 100644 (file)
@@ -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;
@@ -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",
@@ -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);