Re: [RFC PATCH 03/24] crypto: Add 'krb5enc' hash and cipher AEAD algorithm

David Howells
2025-01-20T20:18:27Z

Eric Biggers <ebiggers@kernel.org> wrote:

> In any case, why would you need anything to do asynchronous at all here?

Because authenc, which I copied, passes the asynchronocity mode onto the two
algos it runs (one encrypt, one hash). If authenc is run synchronously, then
the algos are run synchronously and serially; but if authenc is run async,
then the algos are run asynchronously - but they may still have to be run
serially[*] and the second is dispatched from the completion handler of the
first. So two different paths through the code exist, and rxgk and testmgr
only test the synchronous path.

[*] Because in authenc-compatible encoding types, the output of the encryption
is hashed. Older krb5 encodings hash the plaintext and the hash generation
and the encrypt can be run in parallel. For decrypting, the reverse is true;
authenc may be able to do the decrypt and the hash in parallel... But
parallellisation also requires that the input and output buffers are not the
same.

Anyway. If it can be done asynchronously, that should probably be tested.

David