Re: Can an ahash driver be used through shash API?

From: Stephan Mueller
Date: Thu May 30 2019 - 01:41:54 EST


Am Mittwoch, 29. Mai 2019, 22:21:50 CEST schrieb Richard Weinberger:

Hi Richard,

> Stephan,
>
> ----- Ursprüngliche Mail -----
>
> >> I've seen that it does actually work the other way around, since
> >> crypto_init_shash_ops_async() in crypto/shash.c takes care of translating
> >> calls from ahash to shash and that's how the *-generic drivers are usable
> >> through the ahash API.
> >
> > The crypto_alloc_shash will only identify cipher implementations that were
> > registered with the CRYPTO_ALG_TYPE_SHASH flag. That flag is set when a
> > cipher is registered using crypto_register_shash.
> >
> > Thus, ciphers registered with crypto_register_ahash will not bear this
> > flag
> > and thus will not be found by the allocation function.
>
> is there a reason why we don't emulate the synchronous functionality
> in the crypto API layer if a driver implements only the async interface?
>
> Or is it just a matter of -ENOPATCH? :)

How can that be done in the first place? SHASH is intended and is used with
stack variables. An AHASH will have to be expected to sleep inbetween. Thus,
it cannot be used as SHASH.

Ciao
Stephan