diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-08 15:01:15 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-08 15:01:15 -0700 |
commit | 2ade9340262cb87163b5c5c270268175ff3b3c15 (patch) | |
tree | d64c721c31719eda098badb4a45913c7e61c9ef1 | |
parent | 24778e335a6450e34257a311d0bf4a12bdb3006c (diff) | |
download | git-2ade9340262cb87163b5c5c270268175ff3b3c15.tar.gz |
Add "check_sha1_signature()" helper function
And fix up header declarations.
-rw-r--r-- | cache.h | 1 | ||||
-rw-r--r-- | read-cache.c | 11 |
2 files changed, 12 insertions, 0 deletions
@@ -82,6 +82,7 @@ extern int write_sha1_buffer(unsigned char *sha1, void *buf, unsigned int size); /* Read and unpack a sha1 file into memory, write memory to a sha1 file */ extern void * map_sha1_file(unsigned char *sha1, unsigned long *size); +extern void * unpack_sha1_file(void *map, unsigned long mapsize, char *type, unsigned long *size); extern void * read_sha1_file(unsigned char *sha1, char *type, unsigned long *size); extern int write_sha1_file(char *buf, unsigned len); extern int check_sha1_signature(unsigned char *sha1, void *buf, unsigned long size); diff --git a/read-cache.c b/read-cache.c index 4d750506e9..2ede67dbe1 100644 --- a/read-cache.c +++ b/read-cache.c @@ -84,6 +84,17 @@ char *sha1_file_name(unsigned char *sha1) return base; } +int check_sha1_signature(unsigned char *sha1, void *map, unsigned long size) +{ + unsigned char real_sha1[20]; + SHA_CTX c; + + SHA1_Init(&c); + SHA1_Update(&c, map, size); + SHA1_Final(real_sha1, &c); + return memcmp(sha1, real_sha1, 20) ? -1 : 0; +} + void *map_sha1_file(unsigned char *sha1, unsigned long *size) { char *filename = sha1_file_name(sha1); |