aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2014-04-14 12:40:18 +0000
committerWerner Koch <[email protected]>2014-04-15 17:29:57 +0000
commite549799db66be30cdd68a3e6cdca9c6a050466d1 (patch)
tree98b6623d6e2908631988b5692891676cdc9c43b2
parentagent: Add command DELETE_KEY. (diff)
downloadgnupg-e549799db66be30cdd68a3e6cdca9c6a050466d1.tar.gz
gnupg-e549799db66be30cdd68a3e6cdca9c6a050466d1.zip
gpg: Change pinentry prompt to talk about "secret key".
* g10/passphrase.c (gpg_format_keydesc): Add mode 2. Change strings. * g10/keydb.h (FORMAT_KEYDESC_NORMAL, FORMAT_KEYDESC_IMPORT) (FORMAT_KEYDESC_EXPORT): New. Use them for clarity. -- The use of the term "certificate" was more confusing than helpful.
-rw-r--r--g10/import.c2
-rw-r--r--g10/keydb.h4
-rw-r--r--g10/keyedit.c2
-rw-r--r--g10/passphrase.c40
-rw-r--r--g10/pubkey-enc.c2
-rw-r--r--g10/sign.c2
6 files changed, 38 insertions, 14 deletions
diff --git a/g10/import.c b/g10/import.c
index c3ad53632..8223041d1 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1431,7 +1431,7 @@ transfer_secret_keys (ctrl_t ctrl, struct stats_s *stats, kbnode_t sec_keyblock)
/* Send the wrapped key to the agent. */
{
- char *desc = gpg_format_keydesc (pk, 1, 1);
+ char *desc = gpg_format_keydesc (pk, FORMAT_KEYDESC_IMPORT, 1);
err = agent_import_key (ctrl, desc, &cache_nonce,
wrappedkey, wrappedkeylen, opt.batch);
xfree (desc);
diff --git a/g10/keydb.h b/g10/keydb.h
index 6834fc9ad..492cde37f 100644
--- a/g10/keydb.h
+++ b/g10/keydb.h
@@ -198,6 +198,10 @@ void next_to_last_passphrase(void);
void emit_status_need_passphrase (u32 *keyid, u32 *mainkeyid, int pubkey_algo);
+#define FORMAT_KEYDESC_NORMAL 0
+#define FORMAT_KEYDESC_IMPORT 1
+#define FORMAT_KEYDESC_EXPORT 2
+
char *gpg_format_keydesc (PKT_public_key *pk, int mode, int escaped);
diff --git a/g10/keyedit.c b/g10/keyedit.c
index c4d7ca8e3..9e5fb8f8f 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -1200,7 +1200,7 @@ change_passphrase (ctrl_t ctrl, kbnode_t keyblock)
if (err)
goto leave;
- desc = gpg_format_keydesc (pk, 0, 1);
+ desc = gpg_format_keydesc (pk, FORMAT_KEYDESC_NORMAL, 1);
err = agent_passwd (ctrl, hexgrip, desc, &cache_nonce, &passwd_nonce);
xfree (desc);
diff --git a/g10/passphrase.c b/g10/passphrase.c
index bd0f0ffb0..7c1d6aa08 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -645,29 +645,49 @@ gpg_format_keydesc (PKT_public_key *pk, int mode, int escaped)
char *maink;
char *desc;
const char *prompt;
+ const char *trailer = "";
+ int is_subkey;
+ is_subkey = (pk->main_keyid[0] && pk->main_keyid[1]
+ && pk->keyid[0] != pk->main_keyid[0]
+ && pk->keyid[1] != pk->main_keyid[1]);
algo_name = openpgp_pk_algo_name (pk->pubkey_algo);
timestr = strtimestamp (pk->timestamp);
- uid = get_user_id (pk->keyid, &uidlen);
+ uid = get_user_id (is_subkey? pk->main_keyid:pk->keyid, &uidlen);
orig_codeset = i18n_switchto_utf8 ();
- if (pk->main_keyid[0] && pk->main_keyid[1]
- && pk->keyid[0] != pk->main_keyid[0]
- && pk->keyid[1] != pk->main_keyid[1])
+ if (is_subkey)
maink = xtryasprintf (_(" (main key ID %s)"), keystr (pk->main_keyid));
else
maink = NULL;
switch (mode)
{
- case 0:
+ case FORMAT_KEYDESC_NORMAL:
prompt = _("Please enter the passphrase to unlock the"
- " secret key for the OpenPGP certificate:");
+ " OpenPGP secret key:");
break;
- case 1:
+ case FORMAT_KEYDESC_IMPORT:
prompt = _("Please enter the passphrase to import the"
- " secret key for the OpenPGP certificate:");
+ " OpenPGP secret key:");
+ break;
+ case FORMAT_KEYDESC_EXPORT:
+ if (is_subkey)
+ prompt = _("Please enter the passphrase to export the"
+ " OpenPGP secret subkey:");
+ else
+ prompt = _("Please enter the passphrase to export the"
+ " OpenPGP secret key:");
+ break;
+ case FORMAT_KEYDESC_DELKEY:
+ if (is_subkey)
+ prompt = _("Do you really want to permanently delete the"
+ " OpenPGP secret subkey key:");
+ else
+ prompt = _("Do you really want to permanently delete the"
+ " OpenPGP secret key:");
+ trailer = "?";
break;
default:
prompt = "?";
@@ -677,12 +697,12 @@ gpg_format_keydesc (PKT_public_key *pk, int mode, int escaped)
desc = xtryasprintf (_("%s\n"
"\"%.*s\"\n"
"%u-bit %s key, ID %s,\n"
- "created %s%s.\n"),
+ "created %s%s.\n%s"),
prompt,
(int)uidlen, uid,
nbits_from_pk (pk), algo_name,
keystr (pk->keyid), timestr,
- maink?maink:"" );
+ maink?maink:"", trailer );
xfree (maink);
xfree (uid);
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index 042a25598..a563ec0bf 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -200,7 +200,7 @@ get_it (PKT_pubkey_enc *enc, DEK *dek, PKT_public_key *sk, u32 *keyid)
}
/* Decrypt. */
- desc = gpg_format_keydesc (sk, 0, 1);
+ desc = gpg_format_keydesc (sk, FORMAT_KEYDESC_NORMAL, 1);
err = agent_pkdecrypt (NULL, keygrip,
desc, sk->keyid, sk->main_keyid, sk->pubkey_algo,
s_data, &frame, &nframe, &padding);
diff --git a/g10/sign.c b/g10/sign.c
index d9f2dd3c6..8a878885b 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -270,7 +270,7 @@ do_sign (PKT_public_key *pksk, PKT_signature *sig,
char *desc;
gcry_sexp_t s_sigval;
- desc = gpg_format_keydesc (pksk, 0, 1);
+ desc = gpg_format_keydesc (pksk, FORMAT_KEYDESC_NORMAL, 1);
err = agent_pksign (NULL/*ctrl*/, cache_nonce, hexgrip, desc,
pksk->keyid, pksk->main_keyid, pksk->pubkey_algo,
dp, gcry_md_get_algo_dlen (mdalgo), mdalgo,