Line Flow Count Block(s) Source
1 - /*
2 - * Copyright (C) the libgit2 contributors. All rights reserved.
3 - *
4 - * This file is part of libgit2, distributed under the GNU GPL v2 with
5 - * a Linking Exception. For full terms see the included COPYING file.
6 - */
7 -
8 - #include "collisiondetect.h"
9 -
10 9 2 int git_hash_sha1_global_init(void)
11 - {
12 9 2 return 0;
13 - }
14 -
15 140862 2 int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
16 - {
17 140862 2 return git_hash_sha1_init(ctx);
18 - }
19 -
20 141286 2 void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
21 - {
22 - GIT_UNUSED(ctx);
23 141286 2 }
24 -
25 146104 2 int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
26 - {
27 146104 2,3 assert(ctx);
28 146104 4 SHA1DCInit(&ctx->c);
29 146081 5 return 0;
30 - }
31 -
32 256797 2 int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
33 - {
34 256797 2,3 assert(ctx);
35 256797 4 SHA1DCUpdate(&ctx->c, data, len);
36 257288 5 return 0;
37 - }
38 -
39 140591 2 int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
40 - {
41 140591 2,3 assert(ctx);
42 141357 4,5 if (SHA1DCFinal(out->id, &ctx->c)) {
43 1 6 git_error_set(GIT_ERROR_SHA1, "SHA1 collision attack detected");
44 1 7 return -1;
45 - }
46 -
47 141356 8 return 0;
48 - }