/src/libgit2/src/util/hash/collisiondetect.c
Line | Count | Source (jump to first uncovered line) |
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 | | int git_hash_sha1_global_init(void) |
11 | 2 | { |
12 | 2 | return 0; |
13 | 2 | } |
14 | | |
15 | | int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx) |
16 | 927 | { |
17 | 927 | return git_hash_sha1_init(ctx); |
18 | 927 | } |
19 | | |
20 | | void git_hash_sha1_ctx_cleanup(git_hash_sha1_ctx *ctx) |
21 | 927 | { |
22 | 927 | GIT_UNUSED(ctx); |
23 | 927 | } |
24 | | |
25 | | int git_hash_sha1_init(git_hash_sha1_ctx *ctx) |
26 | 927 | { |
27 | 927 | GIT_ASSERT_ARG(ctx); |
28 | 927 | SHA1DCInit(&ctx->c); |
29 | 927 | return 0; |
30 | 927 | } |
31 | | |
32 | | int git_hash_sha1_update(git_hash_sha1_ctx *ctx, const void *data, size_t len) |
33 | 927 | { |
34 | 927 | GIT_ASSERT_ARG(ctx); |
35 | 927 | SHA1DCUpdate(&ctx->c, data, len); |
36 | 927 | return 0; |
37 | 927 | } |
38 | | |
39 | | int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx) |
40 | 927 | { |
41 | 927 | GIT_ASSERT_ARG(ctx); |
42 | 927 | if (SHA1DCFinal(out, &ctx->c)) { |
43 | 0 | git_error_set(GIT_ERROR_SHA, "SHA1 collision attack detected"); |
44 | 0 | return -1; |
45 | 0 | } |
46 | | |
47 | 927 | return 0; |
48 | 927 | } |