On Tue, Jan 10, 2017 at 11:36:19AM +0000, Gonglei (Arei) wrote: > Hi Daniel, > > > > > > > > > > > > > > On Mon, Jan 09, 2017 at 01:43:10PM +0000, Stefan Hajnoczi wrote: > > > > > On Mon, Jan 09, 2017 at 03:04:55PM +0800, Longpeng (Mike) wrote: > > > > > > I'm one of Gonglei's virtio-crypto project members, and we plan to > > > > > > add a > > > > AF_ALG > > > > > > backend for virtio-crypto(there's only builtin-backend currently). > > > > > > > > > > > > I found that Catalin, Paolo and Stefan had discussed about this in > > > > > > 2015 > > > > > > (http://www.spinics.net/lists/kvm/msg115457.html), but it seems that > > > > Catalin > > > > > > didn't do it, so I'm confuse about wether it is need to add a AF_ALG > > > > backend. > > > > > > > > > > > > Do you have any suggestion? Thanks :) > > > > > > > > > > I have no objections to an AF_ALG backend in QEMU. > > > > > > > > Rather than do another backend for virtio-crypto, IMHO, we should have > > > > an AF_ALG impl of the crypto/ APIs. That way any potential performance > > > > benefits will enhance our LUKS encryption code too. > > > > > > > According to the currently schemas of crypto/ APIs, we can't choose the > > > specific backend dynamically. This is a limitation for virtio-crypto > > > device I think. > > > > Do we really need to be able to choose the backend explicitly. If the AF_ALG > > backend is faster, why would you simply not use that automatically if it is > > available. > > Can we realize the purpose based on the crypto/ APIs? IIUC the crypto > subsystem chooses a backend during the building according to the specific > priority, > nettle > gcrypt > cipher-builtin. > > If we add an AF_ALG implementation for crypto subsystem, shall we set it > as the highest priority? If so, other backends won't be used since AF_ALG > is always available. If not, how can we use AF_ALG backend for crypto/ API? > > Please correct me if I'm missing something.
While AF_ALG has been available for a while, not all features have. For example AEAD support was only added in kernel 4.1 So if we had AF_ALG in QEMU, we would have to have a stacked impl, where we try AF_ALG and then fallback to the current code when QEMU runs on a kernel lacking the feature needed. We could potentially also have a global arg to switch backends e.g. -crypto-backend [afalg|builtin] Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|