Eric Biggers <ebiggers@xxxxxxxxxx> 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