Subject: Re: [PATCH 1/4] sha1: do not redefine `platform_SHA_CTX` and friends

From: Patrick Steinhardt <[email-masked]>
Date: Mon, 2 Sep 2024 15:41:20 +0200

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