}
static int pakfire_archive_load_checksums(struct pakfire_archive* archive) {
+ DEBUG(archive->pakfire, "Loading checksums from archive %p\n", archive);
+
if (archive->format >= 6)
return pakfire_archive_load_checksums_mtree(archive);
else
return pakfire_archive_load_checksums_legacy(archive);
}
+static int pakfire_archive_verify_checksums(struct pakfire_archive* archive) {
+ int r;
+
+ // Read checksums from archive
+ r = pakfire_archive_load_checksums(archive);
+ if (r)
+ return r;
+
+ return 0;
+}
+
/*
This function is called to examine whether we have a signature and if so verify it
*/
// Return previous result if this has already been called
if (archive->verify == PAKFIRE_ARCHIVE_VERIFY_UNKNOWN) {
- // Verify all sigantures
+ // Verify all signatures
int r = pakfire_archive_verify_signatures(archive);
if (r)
return r;
+
+ // Verify checksums
+ r = pakfire_archive_verify_checksums(archive);
+ if (r)
+ return r;
}
// Store result