From 2ade9340262cb87163b5c5c270268175ff3b3c15 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 8 Apr 2005 15:01:15 -0700 Subject: [PATCH] Add "check_sha1_signature()" helper function And fix up header declarations. --- cache.h | 1 + read-cache.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/cache.h b/cache.h index 17328597..864f70bf 100644 --- a/cache.h +++ b/cache.h @@ -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 4d750506..2ede67db 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); -- 2.11.0