Let KEYINFO show the cached status of a key grip.

This commit is contained in:
Ben Kibbey 2011-03-01 20:29:08 -05:00 committed by Werner Koch
parent 528d77a0cc
commit fa58a834ff
1 changed files with 11 additions and 1 deletions

View File

@ -938,7 +938,7 @@ static const char hlp_keyinfo[] =
"available keys are returned. The information is returned as a\n"
"status line with this format:\n"
"\n"
" KEYINFO <keygrip> <type> <serialno> <idstr>\n"
" KEYINFO <keygrip> <type> <serialno> <idstr> <cached>\n"
"\n"
"KEYGRIP is the keygrip.\n"
"\n"
@ -954,6 +954,9 @@ static const char hlp_keyinfo[] =
"IDSTR is the IDSTR used to distinguish keys on a smartcard. If it\n"
" is not known a dash is used instead.\n"
"\n"
"CACHED is 1 if the key was found in the key cache. If not, a '-'\n"
"is used instead.\n"
"\n"
"More information may be added in the future.";
static gpg_error_t
do_one_keyinfo (ctrl_t ctrl, const unsigned char *grip)
@ -965,6 +968,8 @@ do_one_keyinfo (ctrl_t ctrl, const unsigned char *grip)
char *serialno = NULL;
char *idstr = NULL;
const char *keytypestr;
char *cached;
char *pw;
err = agent_key_info_from_file (ctrl, grip, &keytype, &shadow_info);
if (err)
@ -981,6 +986,10 @@ do_one_keyinfo (ctrl_t ctrl, const unsigned char *grip)
else
keytypestr = "-";
pw = agent_get_cache (hexgrip, CACHE_MODE_NORMAL);
cached = pw ? "1" : "-";
xfree (pw);
if (shadow_info)
{
err = parse_shadow_info (shadow_info, &serialno, &idstr);
@ -993,6 +1002,7 @@ do_one_keyinfo (ctrl_t ctrl, const unsigned char *grip)
keytypestr,
serialno? serialno : "-",
idstr? idstr : "-",
cached,
NULL);
leave:
xfree (shadow_info);