crypto: ahash - Stop legacy tfms from using the set_virt fallback path
Ensure that drivers that have not been converted to the ahash API
do not use the ahash_request_set_virt fallback path as they cannot
use the software fallback.
Reported-by: Eric Biggers <ebiggers@kernel.org>
Fixes: 9d7a0ab1c7 ("crypto: ahash - Handle partial blocks in API")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
@@ -350,6 +350,9 @@ static int ahash_do_req_chain(struct ahash_request *req,
|
||||
if (!crypto_ahash_need_fallback(tfm))
|
||||
return -ENOSYS;
|
||||
|
||||
if (crypto_hash_no_export_core(tfm))
|
||||
return -ENOSYS;
|
||||
|
||||
{
|
||||
u8 state[HASH_MAX_STATESIZE];
|
||||
|
||||
|
||||
@@ -91,6 +91,12 @@ static inline bool crypto_hash_alg_needs_key(struct hash_alg_common *alg)
|
||||
!(alg->base.cra_flags & CRYPTO_ALG_OPTIONAL_KEY);
|
||||
}
|
||||
|
||||
static inline bool crypto_hash_no_export_core(struct crypto_ahash *tfm)
|
||||
{
|
||||
return crypto_hash_alg_common(tfm)->base.cra_flags &
|
||||
CRYPTO_AHASH_ALG_NO_EXPORT_CORE;
|
||||
}
|
||||
|
||||
int crypto_grab_ahash(struct crypto_ahash_spawn *spawn,
|
||||
struct crypto_instance *inst,
|
||||
const char *name, u32 type, u32 mask);
|
||||
|
||||
Reference in New Issue
Block a user