1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-04-17 15:44:34 +02:00

gpg: Allow passing a keygrip as description to pinentry.

* g10/keydb.h (FORMAT_KEYDESC_KEYGRIP): New.
* g10/passphrase.c (gpg_format_keydesc): Add new mode.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2021-12-20 17:08:17 +01:00
parent da39102216
commit ace15e1b09
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
2 changed files with 37 additions and 15 deletions

View File

@ -316,6 +316,7 @@ void emit_status_need_passphrase (ctrl_t ctrl, u32 *keyid,
#define FORMAT_KEYDESC_IMPORT 1 #define FORMAT_KEYDESC_IMPORT 1
#define FORMAT_KEYDESC_EXPORT 2 #define FORMAT_KEYDESC_EXPORT 2
#define FORMAT_KEYDESC_DELKEY 3 #define FORMAT_KEYDESC_DELKEY 3
#define FORMAT_KEYDESC_KEYGRIP 4
char *gpg_format_keydesc (ctrl_t ctrl, char *gpg_format_keydesc (ctrl_t ctrl,
PKT_public_key *pk, int mode, int escaped); PKT_public_key *pk, int mode, int escaped);

View File

@ -459,12 +459,23 @@ gpg_format_keydesc (ctrl_t ctrl, PKT_public_key *pk, int mode, int escaped)
const char *trailer = ""; const char *trailer = "";
int is_subkey; int is_subkey;
if (mode == FORMAT_KEYDESC_KEYGRIP)
{
is_subkey = 0;
algo_name = NULL;
timestr = NULL;
uid = NULL;
}
else
{
is_subkey = (pk->main_keyid[0] && pk->main_keyid[1] is_subkey = (pk->main_keyid[0] && pk->main_keyid[1]
&& pk->keyid[0] != pk->main_keyid[0] && pk->keyid[0] != pk->main_keyid[0]
&& pk->keyid[1] != pk->main_keyid[1]); && pk->keyid[1] != pk->main_keyid[1]);
algo_name = openpgp_pk_algo_name (pk->pubkey_algo); algo_name = openpgp_pk_algo_name (pk->pubkey_algo);
timestr = strtimestamp (pk->timestamp); timestr = strtimestamp (pk->timestamp);
uid = get_user_id (ctrl, is_subkey? pk->main_keyid:pk->keyid, &uidlen, NULL); uid = get_user_id (ctrl, is_subkey? pk->main_keyid:pk->keyid,
&uidlen, NULL);
}
orig_codeset = i18n_switchto_utf8 (); orig_codeset = i18n_switchto_utf8 ();
@ -500,11 +511,21 @@ gpg_format_keydesc (ctrl_t ctrl, PKT_public_key *pk, int mode, int escaped)
" OpenPGP secret key:"); " OpenPGP secret key:");
trailer = "?"; trailer = "?";
break; break;
case FORMAT_KEYDESC_KEYGRIP:
prompt = _("Please enter the passphrase to export the"
" secret key with keygrip:");
break;
default: default:
prompt = "?"; prompt = "?";
break; break;
} }
if (mode == FORMAT_KEYDESC_KEYGRIP)
desc = xtryasprintf ("%s\n\n"
" %s\n",
prompt,
"<keygrip>");
else
desc = xtryasprintf (_("%s\n" desc = xtryasprintf (_("%s\n"
"\"%.*s\"\n" "\"%.*s\"\n"
"%u-bit %s key, ID %s,\n" "%u-bit %s key, ID %s,\n"