summaryrefslogtreecommitdiff
path: root/sha1dc_git.c
diff options
context:
space:
mode:
Diffstat (limited to 'sha1dc_git.c')
-rw-r--r--sha1dc_git.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/sha1dc_git.c b/sha1dc_git.c
index 4d32b4f..e0cc9d9 100644
--- a/sha1dc_git.c
+++ b/sha1dc_git.c
@@ -1,8 +1,19 @@
+#include "cache.h"
+
+#ifdef DC_SHA1_EXTERNAL
/*
- * This code is included at the end of sha1dc/sha1.c with the
- * SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C macro.
+ * Same as SHA1DCInit, but with default save_hash=0
*/
+void git_SHA1DCInit(SHA1_CTX *ctx)
+{
+ SHA1DCInit(ctx);
+ SHA1DCSetSafeHash(ctx, 0);
+}
+#endif
+/*
+ * Same as SHA1DCFinal, but convert collision attack case into a verbose die().
+ */
void git_SHA1DCFinal(unsigned char hash[20], SHA1_CTX *ctx)
{
if (!SHA1DCFinal(hash, ctx))
@@ -11,6 +22,9 @@ void git_SHA1DCFinal(unsigned char hash[20], SHA1_CTX *ctx)
sha1_to_hex(hash));
}
+/*
+ * Same as SHA1DCUpdate, but adjust types to match git's usual interface.
+ */
void git_SHA1DCUpdate(SHA1_CTX *ctx, const void *vdata, unsigned long len)
{
const char *data = vdata;