On Thu, Sep 26, 2019 at 07:54:03PM -0700, Linus Torvalds wrote: > > Side note: almost nobody does this. > > Almost every single async interface I've ever seen ends up being "only > designed for async". > > And I think the reason is that everybody first does the simply > synchronous interfaces, and people start using those, and a lot of > people are perfectly happy with them. They are simple, and they work > fine for the huge majority of users. The crypto API is not the way it is because of async. In fact, the crypto API started out as sync only and async was essentially bolted on top with minimial changes. The main reason why the crypto API contains indirections is because of the algorithmic flexibility which WireGuard does not need. Now whether algorithmic flexibility is a good thing or not is a different discussion. But the fact of the matter is that the majority of heavy crypto users in our kernel do require this flexibility (e.g., IPsec, dmcrypt, fscrypt). I don't have a beef with the fact that WireGuard is tied to a single algorithm. However, that simply does not work for the other users that we will have to continue to support. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt