summaryrefslogtreecommitdiff
path: root/src/hash.h
diff options
context:
space:
mode:
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>2008-12-27 18:58:25 +0000
committerShawn O. Pearce <spearce@spearce.org>2008-12-30 07:48:10 -0800
commit007e075337848055a92e218bdfe137451a4c9635 (patch)
treee896d00181e2053cf3cf6441732a13f6ca83f104 /src/hash.h
parent42fd40db68e5e5797531dc1f5de7aef39a2262c0 (diff)
downloadlibgit2-007e075337848055a92e218bdfe137451a4c9635.tar.gz
Add some routines for SHA1 hash computation
[sp: Changed signature for output to use git_oid, and added a test case to verify an allocated git_hash_ctx can be reinitialized and reused.] Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'src/hash.h')
-rw-r--r--src/hash.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/hash.h b/src/hash.h
new file mode 100644
index 000000000..b371c056b
--- /dev/null
+++ b/src/hash.h
@@ -0,0 +1,26 @@
+/*
+ * hash.h
+ */
+#ifndef INCLUDE_hash_h__
+#define INCLUDE_hash_h__
+
+#include "git/oid.h"
+
+typedef struct git_hash_ctx git_hash_ctx;
+
+typedef struct {
+ void *data;
+ size_t len;
+} git_buf_vec;
+
+git_hash_ctx *git_hash_new_ctx(void);
+void git_hash_free_ctx(git_hash_ctx *ctx);
+
+void git_hash_init(git_hash_ctx *c);
+void git_hash_update(git_hash_ctx *c, const void *data, size_t len);
+void git_hash_final(git_oid *out, git_hash_ctx *c);
+
+void git_hash_buf(git_oid *out, const void *data, size_t len);
+void git_hash_vec(git_oid *out, git_buf_vec *vec, size_t n);
+
+#endif /* INCLUDE_hash_h__ */