lib/repo: Allow preparing GPG verifier without global keyrings
authorDan Nicholson <dbn@endlessos.org>
Wed, 14 Jul 2021 17:04:59 +0000 (11:04 -0600)
committerDan Nicholson <dbn@endlessos.org>
Thu, 15 Jul 2021 21:50:04 +0000 (15:50 -0600)
Currently the verifier decides whether to include the global keyrings
based on whether the specified remote has its own keyring or not. Allow
callers to exclude the global keyrings even when that's not the case.
This will be used in a subsequent commit in order to get the GPG keys
only associated with a remote.

src/libostree/ostree-repo.c

index d7b383742c9145724056759337a14a2839b3e5f9..254f7010ef7a433b18aee366f24678230495dfc2 100644 (file)
@@ -5343,12 +5343,12 @@ _ostree_repo_gpg_prepare_verifier (OstreeRepo         *self,
                                    const gchar        *remote_name,
                                    GFile              *keyringdir,
                                    GFile              *extra_keyring,
+                                   gboolean            add_global_keyrings,
                                    OstreeGpgVerifier **out_verifier,
                                    GCancellable       *cancellable,
                                    GError            **error)
 {
   g_autoptr(OstreeGpgVerifier) verifier = _ostree_gpg_verifier_new ();
-  gboolean add_global_keyring_dir = TRUE;
 
   if (remote_name == OSTREE_ALL_REMOTES)
     {
@@ -5375,7 +5375,7 @@ _ostree_repo_gpg_prepare_verifier (OstreeRepo         *self,
       if (keyring_data != NULL)
         {
           _ostree_gpg_verifier_add_keyring_data (verifier, keyring_data, remote->keyring);
-          add_global_keyring_dir = FALSE;
+          add_global_keyrings = FALSE;
         }
 
       g_auto(GStrv) gpgkeypath_list = NULL;
@@ -5397,7 +5397,7 @@ _ostree_repo_gpg_prepare_verifier (OstreeRepo         *self,
         }
     }
 
-  if (add_global_keyring_dir)
+  if (add_global_keyrings)
     {
       /* Use the deprecated global keyring directory. */
       if (!_ostree_gpg_verifier_add_global_keyring_dir (verifier, cancellable, error))
@@ -5436,6 +5436,7 @@ _ostree_repo_gpg_verify_data_internal (OstreeRepo    *self,
                                           remote_name,
                                           keyringdir,
                                           extra_keyring,
+                                          TRUE,
                                           &verifier,
                                           cancellable,
                                           error))