Coverage Report

Created: 2024-02-06 06:20

/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
indexer.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