HomeSoftware Heritage

Update blake2 support to be less Debian-specific

Description

Update blake2 support to be less Debian-specific

Summary:
We used to depend on the 'blake2s256' and 'blake2b512' names to be available in
hashlib.algorithms_available. It turns out that that's specific to OpenSSL 1.1.

We now try, in order:

  • blake2s256/blake2b512 as shipped by libssl1.1 (Python 3.5+ on Debian stretch and up)
  • blake2s/blake2b as built into Python 3.6+
  • pyblake2 if all else fails

While we're here, let's also avoid doing not-so-subtle hacks with hashlib
builtins.

Thanks to Alexios Zavras for the report.

Test Plan:
New unit tests added to check for behavior in all cases. Manually running the
tests on Python 3.4 + pyblake2, Python 3.5 and Python 3.6 as shipped by Debian
exercises all three cases.

Reviewers: zack, Reviewers!

Differential Revision: https://forge.softwareheritage.org/D347

Details

Provenance
olasdAuthored on Jun 20 2018, 4:08 PM
olasdPushed on Jun 21 2018, 12:21 PM
Differential Revision
D347: Update blake2 support to be less Debian-specific
Parents
rDMOD0d5bc1774829: add swh-identify CLI tool to compute persistent identifiers
Branches
Unknown
Tags
Unknown