diff options
author | Ramsay Jones <ramsay@ramsay1.demon.co.uk> | 2008-12-27 18:58:25 +0000 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2008-12-30 07:48:10 -0800 |
commit | 007e075337848055a92e218bdfe137451a4c9635 (patch) | |
tree | e896d00181e2053cf3cf6441732a13f6ca83f104 /src/hash.h | |
parent | 42fd40db68e5e5797531dc1f5de7aef39a2262c0 (diff) | |
download | libgit2-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.h | 26 |
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__ */ |