FROMLIST: [PATCH v5 03/12] arm: vdso: inline assembler operations to compiler.h
[GitHub/exynos8895/android_kernel_samsung_universal8895.git] / crypto / hmac.c
index 72e38c098bb3184d3886ac4054f123dca3bb49ac..ba07fb6221aee61be48bed8c4a1b994f3d61a0cb 100644 (file)
@@ -194,11 +194,15 @@ static int hmac_create(struct crypto_template *tmpl, struct rtattr **tb)
        salg = shash_attr_alg(tb[1], 0, 0);
        if (IS_ERR(salg))
                return PTR_ERR(salg);
+       alg = &salg->base;
 
+       /* The underlying hash algorithm must be unkeyed */
        err = -EINVAL;
+       if (crypto_shash_alg_has_setkey(salg))
+               goto out_put_alg;
+
        ds = salg->digestsize;
        ss = salg->statesize;
-       alg = &salg->base;
        if (ds > alg->cra_blocksize ||
            ss < alg->cra_blocksize)
                goto out_put_alg;