File Coverage

deps/libgit2/src/util/hash/collisiondetect.c
Criterion Covered Total %
statement 19 21 90.4
branch 4 8 50.0
condition n/a
subroutine n/a
pod n/a
total 23 29 79.3


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 87           int git_hash_sha1_global_init(void)
11             {
12 87           return 0;
13             }
14              
15 1531           int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx)
16             {
17 1531           return git_hash_sha1_init(ctx);
18             }
19              
20 1531           void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx)
21             {
22 1531           GIT_UNUSED(ctx);
23 1531           }
24              
25 1578           int git_hash_sha1_init(git_hash_sha1_ctx *ctx)
26             {
27 1578 50         GIT_ASSERT_ARG(ctx);
28 1578           SHA1DCInit(&ctx->c);
29 1578           return 0;
30             }
31              
32 3046           int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len)
33             {
34 3046 50         GIT_ASSERT_ARG(ctx);
35 3046           SHA1DCUpdate(&ctx->c, data, len);
36 3046           return 0;
37             }
38              
39 1519           int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx)
40             {
41 1519 50         GIT_ASSERT_ARG(ctx);
42 1519 50         if (SHA1DCFinal(out, &ctx->c)) {
43 0           git_error_set(GIT_ERROR_SHA, "SHA1 collision attack detected");
44 0           return -1;
45             }
46              
47 1519           return 0;
48             }