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 | - | } |