// Handle mismatches
if (r) {
ERROR(archive->pakfire, "Checksum of %s did not match\n", chksum->path);
+
+ char* hexdigest_expected = pakfire_hexlify((*v)->digest);
+ if (hexdigest_expected) {
+ ERROR(archive->pakfire, " Expected: %s\n", hexdigest_expected);
+ free(hexdigest_expected);
+ }
+
+ char* hexdigest_computed = pakfire_hexlify(digest);
+ if (hexdigest_computed) {
+ ERROR(archive->pakfire, " Computed: %s\n", hexdigest_computed);
+ free(hexdigest_computed);
+ }
+
goto ERROR;
}
}
int pakfire_read_file_into_buffer(FILE* f, char** buffer, size_t* len);
#define pakfire_hexlify(digest) __pakfire_hexlify(digest, sizeof(digest))
-char* __pakfire_hexlify(const char* digest, const size_t length);
+char* __pakfire_hexlify(const unsigned char* digest, const size_t length);
#define pakfire_unhexlify(dst, src) __pakfire_unhexlify(dst, sizeof(dst), src)
int __pakfire_unhexlify(unsigned char* dst, const size_t l, const char* src);
return 0;
}
-char* __pakfire_hexlify(const char* digest, const size_t length) {
+char* __pakfire_hexlify(const unsigned char* digest, const size_t length) {
const char* hexdigits = "0123456789abcdef";
char* s = malloc((length * 2) + 1);