/src/libgit2/src/util/hash.h
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 | | #ifndef INCLUDE_hash_h__ |
9 | | #define INCLUDE_hash_h__ |
10 | | |
11 | | #include "git2_util.h" |
12 | | |
13 | | #include "hash/sha.h" |
14 | | |
15 | | typedef struct { |
16 | | void *data; |
17 | | size_t len; |
18 | | } git_str_vec; |
19 | | |
20 | | typedef enum { |
21 | | GIT_HASH_ALGORITHM_NONE = 0, |
22 | | GIT_HASH_ALGORITHM_SHA1, |
23 | | GIT_HASH_ALGORITHM_SHA256 |
24 | | } git_hash_algorithm_t; |
25 | | |
26 | | #define GIT_HASH_MAX_SIZE GIT_HASH_SHA256_SIZE |
27 | | |
28 | | typedef struct git_hash_ctx { |
29 | | union { |
30 | | git_hash_sha1_ctx sha1; |
31 | | git_hash_sha256_ctx sha256; |
32 | | } ctx; |
33 | | git_hash_algorithm_t algorithm; |
34 | | } git_hash_ctx; |
35 | | |
36 | | int git_hash_global_init(void); |
37 | | |
38 | | int git_hash_ctx_init(git_hash_ctx *ctx, git_hash_algorithm_t algorithm); |
39 | | void git_hash_ctx_cleanup(git_hash_ctx *ctx); |
40 | | |
41 | | int git_hash_init(git_hash_ctx *c); |
42 | | int git_hash_update(git_hash_ctx *c, const void *data, size_t len); |
43 | | int git_hash_final(unsigned char *out, git_hash_ctx *c); |
44 | | |
45 | | int git_hash_buf(unsigned char *out, const void *data, size_t len, git_hash_algorithm_t algorithm); |
46 | | int git_hash_vec(unsigned char *out, git_str_vec *vec, size_t n, git_hash_algorithm_t algorithm); |
47 | | |
48 | | int git_hash_fmt(char *out, unsigned char *hash, size_t hash_len); |
49 | | |
50 | 2.90k | GIT_INLINE(size_t) git_hash_size(git_hash_algorithm_t algorithm) { |
51 | 2.90k | switch (algorithm) { |
52 | 2.90k | case GIT_HASH_ALGORITHM_SHA1: |
53 | 2.90k | return GIT_HASH_SHA1_SIZE; |
54 | 0 | case GIT_HASH_ALGORITHM_SHA256: |
55 | 0 | return GIT_HASH_SHA256_SIZE; |
56 | 0 | default: |
57 | 0 | return 0; |
58 | 2.90k | } |
59 | 2.90k | } Unexecuted instantiation: config.c:git_hash_size Unexecuted instantiation: config_cache.c:git_hash_size Unexecuted instantiation: config_file.c:git_hash_size Unexecuted instantiation: config_list.c:git_hash_size Unexecuted instantiation: config_mem.c:git_hash_size Unexecuted instantiation: config_parse.c:git_hash_size Unexecuted instantiation: config_snapshot.c:git_hash_size Unexecuted instantiation: libgit2.c:git_hash_size Unexecuted instantiation: merge_driver.c:git_hash_size Unexecuted instantiation: merge_file.c:git_hash_size Unexecuted instantiation: mwindow.c:git_hash_size Unexecuted instantiation: object.c:git_hash_size Unexecuted instantiation: object_api.c:git_hash_size Unexecuted instantiation: odb.c:git_hash_size Unexecuted instantiation: odb_loose.c:git_hash_size Unexecuted instantiation: odb_pack.c:git_hash_size Unexecuted instantiation: oid.c:git_hash_size Unexecuted instantiation: pack.c:git_hash_size Unexecuted instantiation: parse.c:git_hash_size Unexecuted instantiation: refs.c:git_hash_size Unexecuted instantiation: repository.c:git_hash_size Unexecuted instantiation: revparse.c:git_hash_size Unexecuted instantiation: revwalk.c:git_hash_size Unexecuted instantiation: signature.c:git_hash_size Unexecuted instantiation: submodule.c:git_hash_size Unexecuted instantiation: tag.c:git_hash_size Unexecuted instantiation: transaction.c:git_hash_size Unexecuted instantiation: smart_protocol.c:git_hash_size Unexecuted instantiation: tree.c:git_hash_size Unexecuted instantiation: worktree.c:git_hash_size Unexecuted instantiation: filebuf.c:git_hash_size Unexecuted instantiation: fs_path.c:git_hash_size Unexecuted instantiation: futils.c:git_hash_size Unexecuted instantiation: hash.c:git_hash_size Unexecuted instantiation: annotated_commit.c:git_hash_size Unexecuted instantiation: attr.c:git_hash_size Unexecuted instantiation: attr_file.c:git_hash_size Unexecuted instantiation: attrcache.c:git_hash_size Unexecuted instantiation: blob.c:git_hash_size Unexecuted instantiation: branch.c:git_hash_size Unexecuted instantiation: cache.c:git_hash_size Unexecuted instantiation: checkout.c:git_hash_size Unexecuted instantiation: clone.c:git_hash_size Unexecuted instantiation: commit.c:git_hash_size Unexecuted instantiation: commit_graph.c:git_hash_size Unexecuted instantiation: commit_list.c:git_hash_size Unexecuted instantiation: delta.c:git_hash_size Unexecuted instantiation: diff.c:git_hash_size Unexecuted instantiation: diff_driver.c:git_hash_size Unexecuted instantiation: diff_generate.c:git_hash_size Unexecuted instantiation: diff_print.c:git_hash_size Unexecuted instantiation: diff_tform.c:git_hash_size Unexecuted instantiation: email.c:git_hash_size Unexecuted instantiation: filter.c:git_hash_size Unexecuted instantiation: grafts.c:git_hash_size Unexecuted instantiation: hashsig.c:git_hash_size Unexecuted instantiation: ident.c:git_hash_size Unexecuted instantiation: index.c:git_hash_size Line | Count | Source | 50 | 2.90k | GIT_INLINE(size_t) git_hash_size(git_hash_algorithm_t algorithm) { | 51 | 2.90k | switch (algorithm) { | 52 | 2.90k | case GIT_HASH_ALGORITHM_SHA1: | 53 | 2.90k | return GIT_HASH_SHA1_SIZE; | 54 | 0 | case GIT_HASH_ALGORITHM_SHA256: | 55 | 0 | return GIT_HASH_SHA256_SIZE; | 56 | 0 | default: | 57 | 0 | return 0; | 58 | 2.90k | } | 59 | 2.90k | } |
Unexecuted instantiation: iterator.c:git_hash_size Unexecuted instantiation: mailmap.c:git_hash_size Unexecuted instantiation: merge.c:git_hash_size Unexecuted instantiation: midx.c:git_hash_size Unexecuted instantiation: pack-objects.c:git_hash_size Unexecuted instantiation: patch.c:git_hash_size Unexecuted instantiation: patch_generate.c:git_hash_size Unexecuted instantiation: path.c:git_hash_size Unexecuted instantiation: pathspec.c:git_hash_size Unexecuted instantiation: push.c:git_hash_size Unexecuted instantiation: refdb.c:git_hash_size Unexecuted instantiation: refdb_fs.c:git_hash_size Unexecuted instantiation: reflog.c:git_hash_size Unexecuted instantiation: refspec.c:git_hash_size Unexecuted instantiation: remote.c:git_hash_size Unexecuted instantiation: local.c:git_hash_size Unexecuted instantiation: smart.c:git_hash_size Unexecuted instantiation: smart_pkt.c:git_hash_size Unexecuted instantiation: tree-cache.c:git_hash_size Unexecuted instantiation: sortedcache.c:git_hash_size Unexecuted instantiation: crlf.c:git_hash_size Unexecuted instantiation: diff_file.c:git_hash_size Unexecuted instantiation: diff_stats.c:git_hash_size Unexecuted instantiation: diff_xdiff.c:git_hash_size Unexecuted instantiation: fetch.c:git_hash_size Unexecuted instantiation: fetchhead.c:git_hash_size Unexecuted instantiation: graph.c:git_hash_size Unexecuted instantiation: ignore.c:git_hash_size Unexecuted instantiation: odb_mempack.c:git_hash_size Unexecuted instantiation: patch_parse.c:git_hash_size |
60 | | |
61 | | #endif |