source src/hash/sha1/collisiondetect.c
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 | - | } |