about summary refs log tree commit diff stats
path: root/src/command
diff options
context:
space:
mode:
Diffstat (limited to 'src/command')
-rw-r--r--src/command/command.c1
-rw-r--r--src/command/commands.c16
2 files changed, 17 insertions, 0 deletions
diff --git a/src/command/command.c b/src/command/command.c
index 8e709601..994c1155 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -1579,6 +1579,7 @@ cmd_init(void)
 
     pgp_ac = autocomplete_new();
     autocomplete_add(pgp_ac, "keys");
+    autocomplete_add(pgp_ac, "fps");
     autocomplete_add(pgp_ac, "libver");
 }
 
diff --git a/src/command/commands.c b/src/command/commands.c
index 0dc19e41..5b73954b 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -4093,6 +4093,22 @@ cmd_pgp(gchar **args, struct cmd_help_t help)
             cons_show("No keys found");
         }
         g_slist_free_full(keys, (GDestroyNotify)p_gpg_free_key);
+    } else if (g_strcmp0(args[0], "fps") == 0) {
+        GHashTable *fingerprints = p_gpg_fingerprints();
+        GList *jids = g_hash_table_get_keys(fingerprints);
+        if (jids) {
+            cons_show("Received PGP fingerprints:");
+            GList *curr = jids;
+            while (curr) {
+                char *jid = curr->data;
+                char *fingerprint = g_hash_table_lookup(fingerprints, jid);
+                cons_show("  %s: %s", jid, fingerprint);
+                curr = g_list_next(curr);
+            }
+        } else {
+            cons_show("No PGP fingerprints received.");
+        }
+        g_list_free(jids);
     } else if (g_strcmp0(args[0], "libver") == 0) {
         const char *libver = p_gpg_libver();
         if (libver) {