crypto: aead - Propagate new AEAD implementation flag for IV generators
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 8 Jul 2015 23:17:23 +0000 (07:17 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 14 Jul 2015 06:56:46 +0000 (14:56 +0800)
This patch allows the CRYPTO_ALG_AEAD_NEW flag to be propagated.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/aead.c

index 8cd45a7eb7afb7d1a7095e625238cd99ef423b7a..1a5b118c301a546580425fc5eec5e5dfd15b76b7 100644 (file)
@@ -604,7 +604,7 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
                return ERR_CAST(algt);
 
        if ((algt->type ^ (CRYPTO_ALG_TYPE_AEAD | CRYPTO_ALG_GENIV)) &
-           algt->mask)
+           algt->mask & ~CRYPTO_ALG_AEAD_NEW)
                return ERR_PTR(-EINVAL);
 
        name = crypto_attr_alg_name(tb[1]);
@@ -683,7 +683,8 @@ struct aead_instance *aead_geniv_alloc(struct crypto_template *tmpl,
            CRYPTO_MAX_ALG_NAME)
                goto err_drop_alg;
 
-       inst->alg.base.cra_flags = alg->base.cra_flags & CRYPTO_ALG_ASYNC;
+       inst->alg.base.cra_flags = alg->base.cra_flags &
+                                  (CRYPTO_ALG_ASYNC | CRYPTO_ALG_AEAD_NEW);
        inst->alg.base.cra_priority = alg->base.cra_priority;
        inst->alg.base.cra_blocksize = alg->base.cra_blocksize;
        inst->alg.base.cra_alignmask = alg->base.cra_alignmask;