return 0;
}
+struct pakfire_archive_signature_check {
+ gpgme_data_t checksums;
+};
+
/*
This function is called to examine whether we have a signature and if so verify it
*/
if (!gpgctx)
return 1;
- gpgme_data_t* checksums = (gpgme_data_t*)data;
+ struct pakfire_archive_signature_check* check = (struct pakfire_archive_signature_check*)data;
char* buffer = NULL;
size_t size = 0;
}
// Perform verification
- error = gpgme_op_verify(gpgctx, signature, *checksums, NULL);
+ error = gpgme_op_verify(gpgctx, signature, check->checksums, NULL);
if (error != GPG_ERR_NO_ERROR)
goto ERROR;
return r;
}
- gpgme_data_t checksums;
+ struct pakfire_archive_signature_check check;
// Convert checksums readable for GPGME
- gpgme_error_t error = gpgme_data_new_from_mem(&checksums, buffer, size, 0);
+ gpgme_error_t error = gpgme_data_new_from_mem(&check.checksums, buffer, size, 0);
if (error != GPG_ERR_NO_ERROR) {
ERROR(archive->pakfire, "Could not initialize chksums: %s\n", gpgme_strerror(error));
r = 1;
archive->verify = PAKFIRE_ARCHIVE_VERIFY_NOT_SIGNED;
// Verify all signatures
- r = pakfire_archive_walk(archive, pakfire_archive_verify_signature, 0, &checksums, NULL);
+ r = pakfire_archive_walk(archive, pakfire_archive_verify_signature, 0, &check, NULL);
ERROR:
- gpgme_data_release(checksums);
+ gpgme_data_release(check.checksums);
if (buffer)
free(buffer);