File Coverage

deps/libgit2/src/hash/sha1/collisiondetect.c
Criterion Covered Total %
statement 18 20 90.0
branch 4 8 50.0
condition n/a
subroutine n/a
pod n/a
total 22 28 78.5


line stmt bran cond sub pod time code
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 86           int git_hash_sha1_global_init(void)
11             {
12 86           return 0;
13             }
14              
15 1398           int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
16             {
17 1398           return git_hash_sha1_init(ctx);
18             }
19              
20 1398           void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
21             {
22             GIT_UNUSED(ctx);
23 1398           }
24              
25 1445           int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
26             {
27 1445 50         assert(ctx);
28 1445           SHA1DCInit(&ctx->c);
29 1445           return 0;
30             }
31              
32 2875           int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
33             {
34 2875 50         assert(ctx);
35 2875           SHA1DCUpdate(&ctx->c, data, len);
36 2875           return 0;
37             }
38              
39 1387           int git_hash_sha1_final(git_oid *out, git_hash_sha1_ctx *ctx)
40             {
41 1387 50         assert(ctx);
42 1387 50         if (SHA1DCFinal(out->id, &ctx->c)) {
43 0           git_error_set(GIT_ERROR_SHA1, "SHA1 collision attack detected");
44 0           return -1;
45             }
46              
47 1387           return 0;
48             }