]> git.proxmox.com Git - libgit2.git/blobdiff - src/util/hash/collisiondetect.c
Merge https://salsa.debian.org/debian/libgit2 into proxmox/bullseye
[libgit2.git] / src / util / hash / collisiondetect.c
diff --git a/src/util/hash/collisiondetect.c b/src/util/hash/collisiondetect.c
new file mode 100644 (file)
index 0000000..c51a402
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#include "collisiondetect.h"
+
+int git_hash_sha1_global_init(void)
+{
+       return 0;
+}
+
+int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
+{
+       return git_hash_sha1_init(ctx);
+}
+
+void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
+{
+       GIT_UNUSED(ctx);
+}
+
+int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
+{
+       GIT_ASSERT_ARG(ctx);
+       SHA1DCInit(&ctx->c);
+       return 0;
+}
+
+int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
+{
+       GIT_ASSERT_ARG(ctx);
+       SHA1DCUpdate(&ctx->c, data, len);
+       return 0;
+}
+
+int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
+{
+       GIT_ASSERT_ARG(ctx);
+       if (SHA1DCFinal(out, &ctx->c)) {
+               git_error_set(GIT_ERROR_SHA, "SHA1 collision attack detected");
+               return -1;
+       }
+
+       return 0;
+}