]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Set verify status after successful signature check
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 12 Jul 2021 11:01:45 +0000 (11:01 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 12 Jul 2021 11:01:57 +0000 (11:01 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c

index df35160fbe816149932b9fe3ba9e2731bdd9cb68..f0e04a0b7e96e95604121145c76614603ef4a387 100644 (file)
@@ -1264,9 +1264,6 @@ static int pakfire_archive_verify_signature(struct pakfire_archive* archive, str
        if (!result || !result->signatures)
                goto ERROR;
 
-       // XXX This is some old code and does not entirely do what is desired, yet
-       int status = 0;
-
        // Walk through all signatures
        for (gpgme_signature_t sig = result->signatures; sig; sig = sig->next) {
                // Log some information about this signature
@@ -1280,28 +1277,28 @@ static int pakfire_archive_verify_signature(struct pakfire_archive* archive, str
                switch (gpg_err_code(sig->status)) {
                        // All good
                        case GPG_ERR_NO_ERROR:
-                               status = PAKFIRE_ARCHIVE_VERIFY_OK;
+                               archive->verify = PAKFIRE_ARCHIVE_VERIFY_OK;
                                break;
 
                        // Key has expired (still good)
                        case GPG_ERR_KEY_EXPIRED:
-                               status = PAKFIRE_ARCHIVE_VERIFY_KEY_EXPIRED;
+                               archive->verify = PAKFIRE_ARCHIVE_VERIFY_KEY_EXPIRED;
                                break;
 
                        // Signature has expired (bad)
                        case GPG_ERR_SIG_EXPIRED:
-                               status = PAKFIRE_ARCHIVE_VERIFY_SIG_EXPIRED;
+                               archive->verify = PAKFIRE_ARCHIVE_VERIFY_SIG_EXPIRED;
                                break;
 
                        // We don't have the key
                        case GPG_ERR_NO_PUBKEY:
-                               status = PAKFIRE_ARCHIVE_VERIFY_KEY_UNKNOWN;
+                               archive->verify = PAKFIRE_ARCHIVE_VERIFY_KEY_UNKNOWN;
                                break;
 
                        // Bad signature (or any other errors)
                        case GPG_ERR_BAD_SIGNATURE:
                        default:
-                               status = PAKFIRE_ARCHIVE_VERIFY_INVALID;
+                               archive->verify = PAKFIRE_ARCHIVE_VERIFY_INVALID;
                                break;
                }
        }