]> git.ipfire.org Git - thirdparty/git.git/commit
sha1: do not redefine `platform_SHA_CTX` and friends
authorTaylor Blau <me@ttaylorr.com>
Thu, 26 Sep 2024 15:22:44 +0000 (11:22 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Sep 2024 18:27:47 +0000 (11:27 -0700)
commit4c61a1d040b2b0ce4fa88d89e3169f6e766d4134
treedfd73107fbb83e40dc8034adc6d9f63aa3259d14
parentc177d3dc50d59042b1756e352e19f2dd8b01c25a
sha1: do not redefine `platform_SHA_CTX` and friends

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.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
block-sha1/sha1.h
sha1/openssl.h
sha1dc_git.h