Python's blake2 implementation provides hashing, MAC (key, salt, personalization), variable length output, and tree hashing . All features except for tree hashing are provided by OpenSSL 3.0.0 and newer . It is unlikely that OpenSSL will get tree hashing any time soon, if all. 
I would like to remove our vendored copy of blake2 eventually and just rely on OpenSSL. Therefore I propose to deprecate tree hashing feature so we can drop it in Python 3.13. The tree hashing parameters are: fanout, depth, leaf_size, node_offset, node_depth, inner_size, last_node
Note: OpenSSL 3.0 might impose additional restrictions on the parameter. It might be possible that OpenSSL does not support salt and personalization (OSSL_MAC_PARAM_CUSTOM) without a MAC key.
Alternatively we could replace our copy of blake2 and depend on libb2 from https://blake2.net/. libb2 is available in Fedora.
In the short term we should prefer libb2 linkage when available.
As for deprecation, it'd be useful to research how often the options going away are used in code in PyPI packages and in Github repos to understand the deprecation impact.
The PyPI landscape for blake2 modules is not great because we've had it in hashlib for a while. One of those, or a new one, would need to be created by someone who needs the non openssl features.
ultimate goal: simplify what's in Modules/_blake2/impl/ if it cannot be removed. Use an external library for the implementation when possible (and in all our binary releases. Those are better maintained to take advantage of performance or hw features over time.
Is there a configure option to prefer the vendored copy? Or static linking? (This change has broken some of my semi-portable builds, because libb2 isn't installed by default but it gets pulled in by the build tools, so it's on the build machines.)
Thanks! I used LIBB2_LIBS="-L$(pkg-config libb2 --variable=libdir) -l:libb2.a -Wl,--exclude-libs,libb2.a" and it's worked just fine (well, with one targeted test, going to be another hour or so before I can do a "real" test).