crypto: aead - Add skcipher null for IV generators
This patch adds an skcipher null object alongside the existing null blkcipher so that IV generators using it can switch over to skcipher. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
1e1f006112
commit
ca0494c093
@ -294,10 +294,15 @@ int aead_init_geniv(struct crypto_aead *aead)
|
|||||||
if (err)
|
if (err)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
ctx->sknull = crypto_get_default_null_skcipher2();
|
||||||
|
err = PTR_ERR(ctx->sknull);
|
||||||
|
if (IS_ERR(ctx->sknull))
|
||||||
|
goto out;
|
||||||
|
|
||||||
ctx->null = crypto_get_default_null_skcipher();
|
ctx->null = crypto_get_default_null_skcipher();
|
||||||
err = PTR_ERR(ctx->null);
|
err = PTR_ERR(ctx->null);
|
||||||
if (IS_ERR(ctx->null))
|
if (IS_ERR(ctx->null))
|
||||||
goto out;
|
goto drop_sknull;
|
||||||
|
|
||||||
child = crypto_spawn_aead(aead_instance_ctx(inst));
|
child = crypto_spawn_aead(aead_instance_ctx(inst));
|
||||||
err = PTR_ERR(child);
|
err = PTR_ERR(child);
|
||||||
@ -315,6 +320,8 @@ int aead_init_geniv(struct crypto_aead *aead)
|
|||||||
|
|
||||||
drop_null:
|
drop_null:
|
||||||
crypto_put_default_null_skcipher();
|
crypto_put_default_null_skcipher();
|
||||||
|
drop_sknull:
|
||||||
|
crypto_put_default_null_skcipher2();
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(aead_init_geniv);
|
EXPORT_SYMBOL_GPL(aead_init_geniv);
|
||||||
@ -325,6 +332,7 @@ void aead_exit_geniv(struct crypto_aead *tfm)
|
|||||||
|
|
||||||
crypto_free_aead(ctx->child);
|
crypto_free_aead(ctx->child);
|
||||||
crypto_put_default_null_skcipher();
|
crypto_put_default_null_skcipher();
|
||||||
|
crypto_put_default_null_skcipher2();
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(aead_exit_geniv);
|
EXPORT_SYMBOL_GPL(aead_exit_geniv);
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ struct aead_geniv_ctx {
|
|||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
struct crypto_aead *child;
|
struct crypto_aead *child;
|
||||||
struct crypto_blkcipher *null;
|
struct crypto_blkcipher *null;
|
||||||
|
struct crypto_skcipher *sknull;
|
||||||
u8 salt[] __attribute__ ((aligned(__alignof__(u32))));
|
u8 salt[] __attribute__ ((aligned(__alignof__(u32))));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user