Le 19/02/2018 à 09:30, Horia Geantă a écrit :
On 2/19/2018 9:58 AM, Christophe LEROY wrote:
Le 18/02/2018 à 18:14, Horia Geantă a écrit :
There is no ahash_exit() callback mirroring ahash_init().
The clean-up of request ctx should be done in the last states of the hash flows
described here:
https://www.kernel.org/doc/html/latest/crypto/devel-algos.html#cipher-definition-with-struct-shash-alg-and-ahash-alg
for e.g. in the final() callback.
Unfortunatly it seems that we can't rely on those finalising functions
being called all the time.
If you look into test_ahash_jiffies() for instance, in case of error the
call of crypto_hash_final() is skipped.
If test_ahash_jiffies() errors before calling crypto_ahash_final(req), this
means a previous callback failed.
Accordingly, DMA unmapping should be performed also on the corresponding errors
paths in the driver.
And what about ALGIF path from user space ?
What if the user never calls the last sendmsg() which will call
hash_finup() ?
Christophe