Skip to content

Commit 6cf6544

Browse files
jltoblergitster
authored andcommitted
help: include unsafe SHA-1 build info in version
In 06c92da (Makefile: allow specifying a SHA-1 for non-cryptographic uses, 2024-09-26), support for unsafe SHA-1 is added. Add the unsafe SHA-1 build info to `git version --build-info` and update corresponding documentation. Signed-off-by: Justin Tobler <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 16fd6c8 commit 6cf6544

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

Documentation/git-version.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ The libraries used to implement the SHA-1 and SHA-256 algorithms are displayed
2727
in the form `SHA-1: <option>` and `SHA-256: <option>`. Note that the SHA-1
2828
options `SHA1_APPLE`, `SHA1_OPENSSL`, and `SHA1_BLK` do not use a collision
2929
detection algorithm and thus may be vulnerable to known SHA-1 collision
30-
attacks.
30+
attacks. When a faster SHA-1 implementation without collision detection is used
31+
for only non-cryptographic purposes, the algorithm is displayed in the form
32+
`non-collision-detecting-SHA-1: <option>`.
3133

3234
GIT
3335
---

hash.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@
2020
#endif
2121

2222
#if defined(SHA1_APPLE_UNSAFE)
23+
# define SHA1_UNSAFE_BACKEND "SHA1_APPLE_UNSAFE"
2324
# include <CommonCrypto/CommonDigest.h>
2425
# define platform_SHA_CTX_unsafe CC_SHA1_CTX
2526
# define platform_SHA1_Init_unsafe CC_SHA1_Init
2627
# define platform_SHA1_Update_unsafe CC_SHA1_Update
2728
# define platform_SHA1_Final_unsafe CC_SHA1_Final
2829
#elif defined(SHA1_OPENSSL_UNSAFE)
30+
# define SHA1_UNSAFE_BACKEND "SHA1_OPENSSL_UNSAFE"
2931
# include <openssl/sha.h>
3032
# if defined(OPENSSL_API_LEVEL) && OPENSSL_API_LEVEL >= 3
3133
# define SHA1_NEEDS_CLONE_HELPER_UNSAFE
@@ -42,6 +44,7 @@
4244
# define platform_SHA1_Final_unsafe SHA1_Final
4345
# endif
4446
#elif defined(SHA1_BLK_UNSAFE)
47+
# define SHA1_UNSAFE_BACKEND "SHA1_BLK_UNSAFE"
4548
# include "block-sha1/sha1.h"
4649
# define platform_SHA_CTX_unsafe blk_SHA_CTX
4750
# define platform_SHA1_Init_unsafe blk_SHA1_Init

help.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,10 @@ void get_version_info(struct strbuf *buf, int show_build_options)
805805
strbuf_addf(buf, "zlib: %s\n", ZLIB_VERSION);
806806
#endif
807807
strbuf_addf(buf, "SHA-1: %s\n", SHA1_BACKEND);
808+
#if defined SHA1_UNSAFE_BACKEND
809+
strbuf_addf(buf, "non-collision-detecting-SHA-1: %s\n",
810+
SHA1_UNSAFE_BACKEND);
811+
#endif
808812
strbuf_addf(buf, "SHA-256: %s\n", SHA256_BACKEND);
809813
}
810814
}

0 commit comments

Comments
 (0)