vendor/libgit2/src/hash.c in rugged-0.28.3.1 vs vendor/libgit2/src/hash.c in rugged-0.28.4

- old
+ new

@@ -5,9 +5,70 @@ * a Linking Exception. For full terms see the included COPYING file. */ #include "hash.h" +int git_hash_global_init(void) +{ + return git_hash_sha1_global_init(); +} + +int git_hash_ctx_init(git_hash_ctx *ctx) +{ + int error; + + if ((error = git_hash_sha1_ctx_init(&ctx->sha1)) < 0) + return error; + + ctx->algo = GIT_HASH_ALGO_SHA1; + + return 0; +} + +void git_hash_ctx_cleanup(git_hash_ctx *ctx) +{ + switch (ctx->algo) { + case GIT_HASH_ALGO_SHA1: + git_hash_sha1_ctx_cleanup(&ctx->sha1); + return; + default: + assert(0); + } +} + +int git_hash_init(git_hash_ctx *ctx) +{ + switch (ctx->algo) { + case GIT_HASH_ALGO_SHA1: + return git_hash_sha1_init(&ctx->sha1); + default: + assert(0); + return -1; + } +} + +int git_hash_update(git_hash_ctx *ctx, const void *data, size_t len) +{ + switch (ctx->algo) { + case GIT_HASH_ALGO_SHA1: + return git_hash_sha1_update(&ctx->sha1, data, len); + default: + assert(0); + return -1; + } +} + +int git_hash_final(git_oid *out, git_hash_ctx *ctx) +{ + switch (ctx->algo) { + case GIT_HASH_ALGO_SHA1: + return git_hash_sha1_final(out, &ctx->sha1); + default: + assert(0); + return -1; + } +} + int git_hash_buf(git_oid *out, const void *data, size_t len) { git_hash_ctx ctx; int error = 0;