From e1663c045049d801493a26ab2e3512209e448610 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 20 Apr 2023 12:10:54 +0200 Subject: gpg: New command "openpgp" for --card-edit. * g10/card-util.c (current_card_status): Print a hint for fishy outputs. (enum cmdids): Add cmdOPENPGP. (cmds): Add "openpgp". (card_edit): Implement that command. -- If a Yubikey has been used in PIV mode the initial listing does not look correct. Although we explicitly switch to the OpenPGP app when needed, we don't want to do this in listing mode. Instead we offer a new command "openpgp" to force the openpgp mode. The ultimate goal will be to enhance the gpg-card tool to completely take over the --card-edit features. But we are not yet there. GnuPG-bug-id: 6462 --- g10/card-util.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'g10/card-util.c') diff --git a/g10/card-util.c b/g10/card-util.c index d8f1b960a..a3297fb71 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -705,6 +705,14 @@ current_card_status (ctrl_t ctrl, estream_t fp, } else tty_fprintf (fp, "[none]\n"); + + if (!info.manufacturer_name) + { + tty_fprintf (fp, "\n"); + tty_fprintf (fp, _("Please try command \"%s\"" + " if the listing does not look correct\n"), + "openpgp"); + } } release_kbnode (keyblock); @@ -2243,7 +2251,7 @@ enum cmdids cmdNAME, cmdURL, cmdFETCH, cmdLOGIN, cmdLANG, cmdSEX, cmdCAFPR, cmdFORCESIG, cmdGENERATE, cmdPASSWD, cmdPRIVATEDO, cmdWRITECERT, cmdREADCERT, cmdUNBLOCK, cmdFACTORYRESET, cmdKDFSETUP, - cmdKEYATTR, cmdUIF, + cmdKEYATTR, cmdUIF, cmdOPENPGP, cmdINVCMD }; @@ -2281,6 +2289,7 @@ static struct N_("setup KDF for PIN authentication (on/single/off)")}, { "key-attr", cmdKEYATTR, 1, N_("change the key attribute")}, { "uif", cmdUIF, 1, N_("change the User Interaction Flag")}, + { "openpgp", cmdOPENPGP, 0, N_("switch to the OpenPGP app")}, /* Note, that we do not announce these command yet. */ { "privatedo", cmdPRIVATEDO, 0, NULL }, { "readcert", cmdREADCERT, 0, NULL }, @@ -2580,6 +2589,11 @@ card_edit (ctrl_t ctrl, strlist_t commands) uif (arg_number, arg_rest); break; + case cmdOPENPGP: + agent_scd_switchapp ("openpgp"); + redisplay = 1; + break; + case cmdQUIT: goto leave; -- cgit v1.2.3