Commit ca0494c0 authored by Herbert Xu's avatar Herbert Xu

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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 1e1f0061
...@@ -294,10 +294,15 @@ int aead_init_geniv(struct crypto_aead *aead) ...@@ -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) ...@@ -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) ...@@ -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 { ...@@ -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))));
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment