diff options
author | Werner Koch <[email protected]> | 2005-04-07 08:31:23 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2005-04-07 08:31:23 +0000 |
commit | f8a3345229b6645d6c9b4e2007f65ffda56c82b8 (patch) | |
tree | 406b2832bb4617e3f9ae9c3059012e9afda3edc5 /g10/card-util.c | |
parent | Typo fixes (diff) | |
download | gnupg-f8a3345229b6645d6c9b4e2007f65ffda56c82b8.tar.gz gnupg-f8a3345229b6645d6c9b4e2007f65ffda56c82b8.zip |
* ccid-driver.c (ccid_slot_status): Fixed debug messages.
* card-util.c (card_edit): Add command "verify". Enhanced admin
command to allow optional arguments "on", "off" and "verify".
(card_status): Print private DOs in colon mode.
* app-openpgp.c (do_check_pin): Add hack to allow verification of
CHV3.
Diffstat (limited to '')
-rw-r--r-- | g10/card-util.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/g10/card-util.c b/g10/card-util.c index da786f7a8..ecb80f08a 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -287,6 +287,7 @@ card_status (FILE *fp, char *serialno, size_t serialnobuflen) int rc; unsigned int uval; const unsigned char *thefpr; + int i; if (serialno && serialnobuflen) *serialno = 0; @@ -363,6 +364,17 @@ card_status (FILE *fp, char *serialno, size_t serialnobuflen) info.chvretry[0], info.chvretry[1], info.chvretry[2]); fprintf (fp, "sigcount:%lu:::\n", info.sig_counter); + for (i=0; i < 4; i++) + { + if (info.private_do[i]) + { + fprintf (fp, "private_do:%d:", i+1); + print_string (fp, info.private_do[i], + strlen (info.private_do[i]), ':'); + fputs (":\n", fp); + } + } + fputs ("cafpr:", fp); print_sha1_fpr_colon (fp, info.cafpr1valid? info.cafpr1:NULL); print_sha1_fpr_colon (fp, info.cafpr2valid? info.cafpr2:NULL); @@ -1282,7 +1294,7 @@ card_store_subkey (KBNODE node, int use) enum cmdids { cmdNOP = 0, - cmdQUIT, cmdADMIN, cmdHELP, cmdLIST, cmdDEBUG, + cmdQUIT, cmdADMIN, cmdHELP, cmdLIST, cmdDEBUG, cmdVERIFY, cmdNAME, cmdURL, cmdFETCH, cmdLOGIN, cmdLANG, cmdSEX, cmdCAFPR, cmdFORCESIG, cmdGENERATE, cmdPASSWD, cmdPRIVATEDO, cmdINVCMD @@ -1314,6 +1326,7 @@ static struct { "forcesig", cmdFORCESIG, 1, N_("toggle the signature force PIN flag")}, { "generate", cmdGENERATE, 1, N_("generate new keys")}, { "passwd" , cmdPASSWD, 0, N_("menu to change or unblock the PIN")}, + { "verify" , cmdVERIFY, 0, N_("verify the PIN and list all data")}, /* Note, that we do not announce this command yet. */ { "privatedo", cmdPRIVATEDO, 0, NULL }, { NULL, cmdINVCMD, 0, NULL } @@ -1485,13 +1498,33 @@ card_edit (STRLIST commands) break; case cmdADMIN: - allow_admin=!allow_admin; + if ( !strcmp (arg_string, "on") ) + allow_admin = 1; + else if ( !strcmp (arg_string, "off") ) + allow_admin = 0; + else if ( !strcmp (arg_string, "verify") ) + { + /* Force verification of the Admin Command. However, + this is only done if the retry counter is at initial + state. */ + char *tmp = xmalloc (strlen (serialnobuf) + 6 + 1); + strcpy (stpcpy (tmp, serialnobuf), "[CHV3]"); + allow_admin = !agent_scd_checkpin (tmp); + xfree (tmp); + } + else /* Toggle. */ + allow_admin=!allow_admin; if(allow_admin) tty_printf(_("Admin commands are allowed\n")); else tty_printf(_("Admin commands are not allowed\n")); break; + case cmdVERIFY: + agent_scd_checkpin (serialnobuf); + redisplay = 1; + break; + case cmdLIST: redisplay = 1; break; |