Skip to content
Snippets Groups Projects
Forked from Platform / Development / swh-model
Source project has a limited visibility.
  • Nicolas Dandrimont's avatar
    90f08eea
    Update blake2 support to be less Debian-specific · 90f08eea
    Nicolas Dandrimont authored
    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
    90f08eea
    History
    Update blake2 support to be less Debian-specific
    Nicolas Dandrimont authored
    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