|
@@ -413,7 +413,8 @@ static int crypto_authenc_esn_create(struct crypto_template *tmpl,
|
|
|
return -EINVAL;
|
|
|
|
|
|
auth = ahash_attr_alg(tb[1], CRYPTO_ALG_TYPE_HASH,
|
|
|
- CRYPTO_ALG_TYPE_AHASH_MASK);
|
|
|
+ CRYPTO_ALG_TYPE_AHASH_MASK |
|
|
|
+ crypto_requires_sync(algt->type, algt->mask));
|
|
|
if (IS_ERR(auth))
|
|
|
return PTR_ERR(auth);
|
|
|
|
|
@@ -456,7 +457,8 @@ static int crypto_authenc_esn_create(struct crypto_template *tmpl,
|
|
|
enc->cra_driver_name) >= CRYPTO_MAX_ALG_NAME)
|
|
|
goto err_drop_enc;
|
|
|
|
|
|
- inst->alg.base.cra_flags = enc->cra_flags & CRYPTO_ALG_ASYNC;
|
|
|
+ inst->alg.base.cra_flags = (auth_base->cra_flags | enc->cra_flags) &
|
|
|
+ CRYPTO_ALG_ASYNC;
|
|
|
inst->alg.base.cra_priority = enc->cra_priority * 10 +
|
|
|
auth_base->cra_priority;
|
|
|
inst->alg.base.cra_blocksize = enc->cra_blocksize;
|