summaryrefslogtreecommitdiff
path: root/crypto/chacha20poly1305.c
diff options
context:
space:
mode:
authorJames Morris <jmorris@namei.org>2018-02-21 08:21:41 -0800
committerJames Morris <jmorris@namei.org>2018-02-21 08:21:41 -0800
commit45ce5d915020b8c76238e123748e0eb6e9ddd6ad (patch)
tree916682ca7617ad686d2f8f9cac41ec4e9c432b00 /crypto/chacha20poly1305.c
parent4a06f454768a7e11e8f10b900b450786546cbba1 (diff)
parent17a3638239bb39acce5f03e779c69bc0e4a5c736 (diff)
downloadlinux-crypto-45ce5d915020b8c76238e123748e0eb6e9ddd6ad.tar.gz
linux-crypto-45ce5d915020b8c76238e123748e0eb6e9ddd6ad.zip
Merge tag 'v4.16-rc2' into next-general
Sync to Linux 4.16-rc2 for developers to work against.
Diffstat (limited to 'crypto/chacha20poly1305.c')
-rw-r--r--crypto/chacha20poly1305.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/crypto/chacha20poly1305.c b/crypto/chacha20poly1305.c
index db1bc314..600afa99 100644
--- a/crypto/chacha20poly1305.c
+++ b/crypto/chacha20poly1305.c
@@ -610,6 +610,11 @@ static int chachapoly_create(struct crypto_template *tmpl, struct rtattr **tb,
algt->mask));
if (IS_ERR(poly))
return PTR_ERR(poly);
+ poly_hash = __crypto_hash_alg_common(poly);
+
+ err = -EINVAL;
+ if (poly_hash->digestsize != POLY1305_DIGEST_SIZE)
+ goto out_put_poly;
err = -ENOMEM;
inst = kzalloc(sizeof(*inst) + sizeof(*ctx), GFP_KERNEL);
@@ -618,7 +623,6 @@ static int chachapoly_create(struct crypto_template *tmpl, struct rtattr **tb,
ctx = aead_instance_ctx(inst);
ctx->saltlen = CHACHAPOLY_IV_SIZE - ivsize;
- poly_hash = __crypto_hash_alg_common(poly);
err = crypto_init_ahash_spawn(&ctx->poly, poly_hash,
aead_crypto_instance(inst));
if (err)