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

@@ -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