On Sun, Sep 01, 2024 at 12:03:21PM -0400, Taylor Blau wrote: > Our in-tree SHA-1 wrappers all define platform_SHA_CTX and related > macros to point at the opaque "context" type, init, update, and similar > functions for each specific implementation. > > In hash.h, we use these platform_ variables to set up the function > pointers for, e.g., the_hash_algo->init_fn(), etc. > > But while these header files have a header-specific macro that prevents > them declaring their structs / functions multiple times, they > unconditionally define the platform variables, making it impossible to > load multiple SHA-1 implementations at once. > > As a prerequisite for loading a separate SHA-1 implementation for > non-cryptographic uses, only define the platform_ variables if they have > not already been defined. So we now pick the first hash we find as platform hash, whereas previously we would have always picked the last one? Hum, okay. A bit curious, but let's read on. Patrick