On Fri, Jun 13, 2025 at 01:38:59PM +0800, Herbert Xu wrote:
On Thu, Jun 12, 2025 at 10:36:24PM -0700, Eric Biggers wrote:
quoted
You do know that most of the sha512 asynchronous hash drivers use custom state
formats and not your new one, right? So your code in ahash_do_req_chain() is
broken for most asynchronous hash drivers anyway.
Every driver needs to be converted by hand. Once a driver has
been converted it'll be marked as block-only which activates
the fallback path in ahash.
Actually, crypto_ahash::base::fb is initialized if CRYPTO_ALG_NEED_FALLBACK,
which many of the drivers already set. Then crypto_ahash_update() calls
ahash_do_req_chain() if the algorithm does *not* have
CRYPTO_AHASH_ALG_BLOCK_ONLY set. Which then exports the driver's custom state
and tries to import it into the fallback.
As far as I can tell, it's just broken for most of the existing drivers.
- Eric