return base;
}
-int check_sha1_signature(unsigned char *sha1, void *map, unsigned long size)
+int check_sha1_signature(unsigned char *sha1, void *map, unsigned long size, const char *type)
{
+ char header[100];
unsigned char real_sha1[20];
SHA_CTX c;
SHA1_Init(&c);
+ SHA1_Update(&c, header, 1+sprintf(header, "%s %lu", type, size));
SHA1_Update(&c, map, size);
SHA1_Final(real_sha1, &c);
return memcmp(sha1, real_sha1, 20) ? -1 : 0;
unsigned char sha1[20];
SHA_CTX c;
+ /* Sha1.. */
+ SHA1_Init(&c);
+ SHA1_Update(&c, buf, len);
+ SHA1_Final(sha1, &c);
+
/* Set it up */
memset(&stream, 0, sizeof(stream));
deflateInit(&stream, Z_BEST_COMPRESSION);
deflateEnd(&stream);
size = stream.total_out;
- /* Sha1.. */
- SHA1_Init(&c);
- SHA1_Update(&c, compressed, size);
- SHA1_Final(sha1, &c);
-
if (write_sha1_buffer(sha1, compressed, size) < 0)
return -1;
if (returnsha1)