* a Linking Exception. For full terms see the included COPYING file.
*/
-#ifndef INCLUDE_hash_collisiondetect_h__
-#define INCLUDE_hash_collisiondetect_h__
+#ifndef INCLUDE_hash_hash_collisiondetect_h__
+#define INCLUDE_hash_hash_collisiondetect_h__
#include "hash.h"
#include "sha1dc/sha1.h"
SHA1_CTX c;
};
-#define git_hash_global_init() 0
#define git_hash_ctx_init(ctx) git_hash_init(ctx)
#define git_hash_ctx_cleanup(ctx)
+GIT_INLINE(int) git_hash_global_init(void)
+{
+ return 0;
+}
+
GIT_INLINE(int) git_hash_init(git_hash_ctx *ctx)
{
assert(ctx);
GIT_INLINE(int) git_hash_update(git_hash_ctx *ctx, const void *data, size_t len)
{
- const char *p = data;
-
assert(ctx);
-
- /* We expect a size_t, but sha1dc only takes an int */
- while (len > INT_MAX) {
- SHA1DCUpdate(&ctx->c, p, INT_MAX);
- p += INT_MAX;
- len -= INT_MAX;
- }
-
- SHA1DCUpdate(&ctx->c, p, len);
+ SHA1DCUpdate(&ctx->c, data, len);
return 0;
}
{
assert(ctx);
if (SHA1DCFinal(out->id, &ctx->c)) {
- giterr_set(GITERR_SHA1, "SHA1 collision attack detected");
+ git_error_set(GIT_ERROR_SHA1, "SHA1 collision attack detected");
return -1;
}
return 0;
}
-#endif /* INCLUDE_hash_collisiondetect_h__ */
+#endif