OpenSSL has platform-specific asm, and the SHA-256 x86-64 implementation is nearly twice as fast as the portable C implementation in Perl5. SHA-1 is a tad faster, too.
We still need to use Digest::SHA in a few places for ->clone to to bifurcate state. Eric Wong (2): use Net::SSLeay (OpenSSL) for SHA-(1|256) if installed content_digest_dbg: convert to arrayref and limit to lei MANIFEST | 2 + lib/PublicInbox/ContentDigestDbg.pm | 12 +++--- lib/PublicInbox/ContentHash.pm | 11 +++--- lib/PublicInbox/Fetch.pm | 4 +- lib/PublicInbox/Git.pm | 4 +- lib/PublicInbox/LeiDedupe.pm | 6 +-- lib/PublicInbox/LeiMirror.pm | 2 +- lib/PublicInbox/LeiSavedSearch.pm | 4 +- lib/PublicInbox/LeiSucks.pm | 12 +++--- lib/PublicInbox/Linkify.pm | 2 +- lib/PublicInbox/MID.pm | 8 ++-- lib/PublicInbox/MailDiff.pm | 5 +-- lib/PublicInbox/MdirReader.pm | 4 +- lib/PublicInbox/NNTP.pm | 2 +- lib/PublicInbox/SHA.pm | 58 +++++++++++++++++++++++++++++ lib/PublicInbox/WwwAtomStream.pm | 2 +- t/clone-coderepo.t | 2 +- t/httpd-corner.psgi | 4 +- t/httpd-corner.t | 2 +- t/ipc.t | 6 +-- t/nntpd.t | 4 +- t/sha.t | 25 +++++++++++++ t/www_listing.t | 2 +- xt/git_async_cmp.t | 10 ++--- xt/imapd-validate.t | 5 ++- xt/nntpd-validate.t | 5 ++- 26 files changed, 145 insertions(+), 58 deletions(-) create mode 100644 lib/PublicInbox/SHA.pm create mode 100644 t/sha.t
