diff options
author | Werner Koch <[email protected]> | 2004-09-20 18:38:39 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2004-09-20 18:38:39 +0000 |
commit | 9d17a635c977a209bee78203e3cfb85a9cb09fc6 (patch) | |
tree | 9fdd7a23c8193693c305a5f1716f02b170fc2899 /g10/keyedit.c | |
parent | * cardglue.c (open_card): Use shutdown code if possible. (diff) | |
download | gnupg-9d17a635c977a209bee78203e3cfb85a9cb09fc6.tar.gz gnupg-9d17a635c977a209bee78203e3cfb85a9cb09fc6.zip |
* gpg.sgml: Document -K.
* g10.c: Make -K an alias for --list-secret-keys.
* keylist.c (print_card_serialno): New. Taken from gnupg 1.9.11.
(list_keyblock_print): Make use of it.
* keyedit.c (show_key_with_all_names): Print the card S/N.
* keyedit.c (keyedit_menu): New command ADDCARDKEY.
* card-util.c (card_generate_subkey): New.
* keygen.c (generate_card_subkeypair): New.
(gen_card_key): New arg IS_PRIMARY; changed all callers.
* cardglue.c (open_card): Use shutdown code if possible.
(check_card_serialno): Ditto.
Diffstat (limited to '')
-rw-r--r-- | g10/keyedit.c | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c index 288d8ba1c..014f3a8c0 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -1191,6 +1191,7 @@ keyedit_menu( const char *username, STRLIST locusr, cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF, cmdEXPIRE, cmdENABLEKEY, cmdDISABLEKEY, cmdSHOWPREF, cmdSETPREF, cmdUPDPREF, cmdPREFKS, cmdINVCMD, cmdSHOWPHOTO, cmdUPDTRUST, cmdCHKTRUST, + cmdADDCARDKEY, cmdNOP }; static struct { const char *name; enum cmdids id; @@ -1223,6 +1224,7 @@ keyedit_menu( const char *username, STRLIST locusr, /* delphoto is really deluid in disguise */ { N_("delphoto"), cmdDELUID , 0,1, NULL }, { N_("addkey") , cmdADDKEY , 1,1, N_("add a secondary key") }, + { N_("addcardkey"), cmdADDCARDKEY , 1,1, N_("add a key to a smartcard") }, { N_("delkey") , cmdDELKEY , 0,1, N_("delete a secondary key") }, { N_("addrevoker"),cmdADDREVOKER,1,1, N_("add a revocation key") }, { N_("delsig") , cmdDELSIG , 0,1, N_("delete signatures") }, @@ -1530,6 +1532,16 @@ keyedit_menu( const char *username, STRLIST locusr, } break; +#ifdef ENABLE_CARD_SUPPORT + case cmdADDCARDKEY: + if (card_generate_subkey (keyblock, sec_keyblock)) { + redisplay = 1; + sec_modified = modified = 1; + merge_keys_and_selfsig( sec_keyblock ); + merge_keys_and_selfsig( keyblock ); + } + break; +#endif /* ENABLE_CARD_SUPPORT */ case cmdDELKEY: { int n1; @@ -2210,6 +2222,27 @@ show_key_with_all_names( KBNODE keyblock, int only_marked, int with_revoker, tty_printf(" "); tty_printf(_("expires: %s"),expirestr_from_sk(sk)); tty_printf("\n"); + if (sk->is_protected && sk->protect.s2k.mode == 1002) + { + tty_printf(" "); + tty_printf(_("card-no: ")); + if (sk->protect.ivlen == 16 + && !memcmp (sk->protect.iv, "\xD2\x76\x00\x01\x24\x01", 6)) + { /* This is an OpenPGP card. */ + for (i=8; i < 14; i++) + { + if (i == 10) + tty_printf (" "); + tty_printf ("%02X", sk->protect.iv[i]); + } + } + else + { /* Something is wrong: Print all. */ + for (i=0; i < sk->protect.ivlen; i++) + tty_printf ("%02X", sk->protect.iv[i]); + } + tty_printf ("\n"); + } } else if( with_subkeys && node->pkt->pkttype == PKT_SIGNATURE && node->pkt->pkt.signature->sig_class == 0x28 ) { @@ -2555,7 +2588,7 @@ menu_adduid( KBNODE pub_keyblock, KBNODE sec_keyblock, int photo) /**************** - * Remove all selceted userids from the keyrings + * Remove all selected userids from the keyrings */ static void menu_deluid( KBNODE pub_keyblock, KBNODE sec_keyblock ) |