Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/cr-marcstevens/sha1collisiondetection.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2017-05-17 13:50:06 +0300
committerMarc Stevens <cr-marcstevens@users.noreply.github.com>2017-05-18 23:04:04 +0300
commitb45fcefc71270d9a159028c22e6d36c3817da188 (patch)
treed85654fd3dd8b3e5b93226e9d71df632edb2bc62 /lib/sha1.c
parentdb45d67ada5ed259840b1f9eee4bba1131f457e7 (diff)
Amend the lib/ code for easier inclusion in other programs
This introduces no functional changes, but allows the lib/ code to be used as-is in other programs without patching these files directly, instead those programs can define a few variables to inject their custom code into this code. With these changes the git project can use this code without any modifications to the upstream code. The corresponding git mailing list thread discussing that is at "[PATCH/RFC 0/3] Use sha1collisiondetection as a submodule"[1]. The defines used by git in that patch are: -DSHA1DC_NO_STANDARD_INCLUDES \ -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 \ -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" \ -DSHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C="\"../sha1dc_git.c\"" \ -DSHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H="\"../sha1dc_git.h\"" \ -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" I.e. all of these except SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_[CH] are used by git. I've merely added those for completeness since other projects doing similar customization might want to use them. The monkeypatches the git project was using previously were: - https://github.com/git/git/commit/45a574eec8 - https://github.com/git/git/commit/c0c20060af - https://github.com/git/git/commit/8325e43b82 The entire paragraph being added to the README file was authored by Dan Shumow. See https://github.com/cr-marcstevens/sha1collisiondetection/pull/31. 1. <20170517113824.31700-1-avarab@gmail.com> (https://public-inbox.org/git/20170517113824.31700-1-avarab@gmail.com/)
Diffstat (limited to 'lib/sha1.c')
-rw-r--r--lib/sha1.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/sha1.c b/lib/sha1.c
index c5e45a9..26516b1 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -5,10 +5,20 @@
* https://opensource.org/licenses/MIT
***/
+#ifndef SHA1DC_NO_STANDARD_INCLUDES
#include <string.h>
#include <memory.h>
#include <stdio.h>
#include <stdlib.h>
+#endif
+
+#ifdef SHA1DC_CUSTOM_INCLUDE_SHA1_C
+#include SHA1DC_CUSTOM_INCLUDE_SHA1_C
+#endif
+
+#ifndef SHA1DC_INIT_SAFE_HASH_DEFAULT
+#define SHA1DC_INIT_SAFE_HASH_DEFAULT 1
+#endif
#include "sha1.h"
#include "ubc_check.h"
@@ -1689,7 +1699,7 @@ void SHA1DCInit(SHA1_CTX* ctx)
ctx->ihv[3] = 0x10325476;
ctx->ihv[4] = 0xC3D2E1F0;
ctx->found_collision = 0;
- ctx->safe_hash = 1;
+ ctx->safe_hash = SHA1DC_INIT_SAFE_HASH_DEFAULT;
ctx->ubc_check = 1;
ctx->detect_coll = 1;
ctx->reduced_round_coll = 0;
@@ -1824,3 +1834,7 @@ int SHA1DCFinal(unsigned char output[20], SHA1_CTX *ctx)
output[19] = (unsigned char)(ctx->ihv[4]);
return ctx->found_collision;
}
+
+#ifdef SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
+#include SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
+#endif