cipher-chachapoly: use OpenSSL's implementation of Poly1305
OpenSSL starting in version 3.0.0 has a new EVP_MAC API which allows POLY1305 algorithm to be used as a standalone MAC. OpenSSL's implementation is significantly faster, so we should use it when it's available.
With this change on an Intel N5105 (Jasperlake), I observed a 26% speedup for the entire [email protected] cipher from 276MB/s to 350MB/s.
Any interest in taking this change?
I've discussed this with one of the LibreSSL developers and I think we'll probably prefer to use the BoringSSL poly1305 API (which LibreSSL will also adopt), and add a shim to support EVP_MAC in OpenSSL. I'll wait until the LibreSSL people let me know once it's ready to look at.