1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04:00

Added Id and fingerprint to pgp key list

This commit is contained in:
James Booth 2015-03-22 01:03:06 +00:00
parent fd86615549
commit 8a5d1fef29
4 changed files with 40 additions and 5 deletions

View File

@ -4073,14 +4073,18 @@ cmd_pgp(gchar **args, struct cmd_help_t help)
if (g_strcmp0(args[0], "keys") == 0) {
GSList *keys = p_gpg_list_keys();
if (keys) {
cons_show("PGP keys:");
while (keys) {
cons_debug("Key: %s", keys->data);
ProfPGPKey *key = keys->data;
cons_show(" %s", key->name);
cons_show(" ID : %s", key->id);
cons_show(" Fingerprint : %s", key->fp);
keys = g_slist_next(keys);
}
} else {
cons_debug("No keys found");
cons_show("No keys found");
}
g_slist_free_full(keys, (GDestroyNotify)free);
g_slist_free_full(keys, (GDestroyNotify)p_gpg_free_key);
} else if (g_strcmp0(args[0], "libver") == 0) {
const char *libver = p_gpg_libver();
if (libver) {

View File

@ -34,9 +34,12 @@
#include <locale.h>
#include <string.h>
#include <stdlib.h>
#include <glib.h>
#include <gpgme.h>
#include "pgp/gpg.h"
#include "log.h"
static const char *libversion;
@ -70,7 +73,14 @@ p_gpg_list_keys(void)
if (error) {
break;
}
result = g_slist_append(result, strdup(key->uids->uid));
ProfPGPKey *p_pgpkey = malloc(sizeof(ProfPGPKey));
p_pgpkey->id = strdup(key->subkeys->keyid);
p_pgpkey->name = strdup(key->uids->uid);
p_pgpkey->fp = strdup(key->subkeys->fpr);
result = g_slist_append(result, p_pgpkey);
gpgme_key_release(key);
}
} else {
@ -88,3 +98,13 @@ p_gpg_libver(void)
return libversion;
}
void
p_gpg_free_key(ProfPGPKey *key)
{
if (key) {
free(key->id);
free(key->name);
free(key->fp);
free(key);
}
}

View File

@ -35,8 +35,15 @@
#ifndef GPG_H
#define GPG_H
typedef struct pgp_key_t {
char *id;
char *name;
char *fp;
} ProfPGPKey;
void p_gpg_init(void);
GSList* p_gpg_list_keys(void);
char* p_gpg_libver(void);
const char* p_gpg_libver(void);
void p_gpg_free_key(ProfPGPKey *key);
#endif

View File

@ -1,5 +1,7 @@
#include <glib.h>
#include "pgp/gpg.h"
void p_gpg_init(void) {}
GSList* p_gpg_list_keys(void)
@ -11,3 +13,5 @@ const char* p_gpg_libver(void) {
return NULL;
}
void p_gpg_free_key(ProfPGPKey *key) {}