Mercurial > hg
diff mcabber/src/commands.c @ 1043:ebbde723614b
Store contacts PGP keys
Contacts PGP keys are retrieved from presence/message signatures;
they're displayed with /info.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 26 Nov 2006 17:08:21 +0100 |
parents | f9e8fd9cb58b |
children | ea71d31a2607 |
line wrap: on
line diff
--- a/mcabber/src/commands.c Sun Nov 26 10:42:25 2006 +0100 +++ b/mcabber/src/commands.c Sun Nov 26 17:08:21 2006 +0100 @@ -1302,11 +1302,13 @@ enum imstatus rstatus; const char *rst_msg; time_t rst_time; + struct pgp_data *rpgp; rprio = buddy_getresourceprio(bud, resources->data); rstatus = buddy_getstatus(bud, resources->data); rst_msg = buddy_getstatusmsg(bud, resources->data); rst_time = buddy_getstatustime(bud, resources->data); + rpgp = buddy_resource_pgp(bud, resources->data); snprintf(buffer, 4095, "Resource: [%c] (%d) %s", imstatus2char[rstatus], rprio, (char*)resources->data); @@ -1322,6 +1324,19 @@ snprintf(buffer, 127, "Status timestamp: %s", tbuf); scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_NONE); } +#ifdef HAVE_GPGME + if (rpgp && rpgp->sign_keyid) { + snprintf(buffer, 4095, "PGP key id: %s", rpgp->sign_keyid); + scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_NONE); + if (rpgp->last_sigsum) { + gpgme_sigsum_t ss = rpgp->last_sigsum; + snprintf(buffer, 4095, "Last PGP signature: %s", + (ss & GPGME_SIGSUM_GREEN ? "good": + (ss & GPGME_SIGSUM_RED ? "bad" : "unknown"))); + scr_WriteIncomingMessage(jid, buffer, 0, HBB_PREFIX_NONE); + } + } +#endif } } else { if (name) scr_LogPrint(LPRINT_NORMAL, "Name: %s", name);