lib/repo: Include WKD update URLs in GPG key listing
authorDan Nicholson <nicholson@endlessm.com>
Mon, 26 Aug 2019 17:15:25 +0000 (11:15 -0600)
committerDan Nicholson <dbn@endlessos.org>
Thu, 15 Jul 2021 21:50:04 +0000 (15:50 -0600)
If the key UID contains a valid email address, include the GPG WKD
update URLs in GVariant returned by ostree_repo_remote_get_gpg_keys().

src/libostree/ostree-repo.c
src/libostree/ostree-repo.h

index b20aa6179357699b8e6e54f185b20528c59952af..5bd76e91f582c527c29f19a2851dd114c9e5cd23 100644 (file)
@@ -2439,6 +2439,16 @@ ostree_repo_remote_get_gpg_keys (OstreeRepo          *self,
 
       for (gpgme_user_id_t uid = key->uids; uid != NULL; uid = uid->next)
         {
+          /* Get WKD update URLs if address set */
+          g_autofree char *advanced_url = NULL;
+          g_autofree char *direct_url = NULL;
+          if (uid->address != NULL)
+            {
+              if (!ot_gpg_wkd_urls (uid->address, &advanced_url, &direct_url,
+                                    error))
+                return FALSE;
+            }
+
           g_auto(GVariantDict) uid_dict = OT_VARIANT_BUILDER_INITIALIZER;
           g_variant_dict_init (&uid_dict, NULL);
           g_variant_dict_insert_value (&uid_dict, "uid",
@@ -2453,6 +2463,10 @@ ostree_repo_remote_get_gpg_keys (OstreeRepo          *self,
                                        g_variant_new_boolean (uid->revoked));
           g_variant_dict_insert_value (&uid_dict, "invalid",
                                        g_variant_new_boolean (uid->invalid));
+          g_variant_dict_insert_value (&uid_dict, "advanced_url",
+                                       g_variant_new ("ms", advanced_url));
+          g_variant_dict_insert_value (&uid_dict, "direct_url",
+                                       g_variant_new ("ms", direct_url));
           g_variant_builder_add (&uids_builder, "(@a{sv})",
                                  g_variant_dict_end (&uid_dict));
         }
index 7694d40c658a1d417a32861ba28396cfb8dcc103..ecf92772002d33cc1edc48f67ec1db2416816b41 100644 (file)
@@ -1449,6 +1449,8 @@ gboolean      ostree_repo_remote_get_gpg_verify_summary (OstreeRepo  *self,
  *   - key: `email`, value: `s`, user ID email component
  *   - key: `revoked`, value: `b`, whether user ID is revoked
  *   - key: `invalid`, value: `b`, whether user ID is invalid
+ *   - key: `advanced_url`, value: `ms`, advanced WKD update URL
+ *   - key: `direct_url`, value: `ms`, direct WKD update URL
  * - a{sv} - Additional metadata dictionary. There are currently no
  *   additional metadata keys defined.
  *