aboutsummaryrefslogtreecommitdiffstats
path: root/g10/passphrase.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/passphrase.c')
-rw-r--r--g10/passphrase.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/g10/passphrase.c b/g10/passphrase.c
index e6837e369..f94b93c22 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -221,15 +221,18 @@ read_passphrase_from_fd( int fd )
* operation. If CACHEID is not NULL, it will be used as the cacheID
* for the gpg-agent; if is NULL and a key fingerprint can be
* computed, this will be used as the cacheid.
+ *
+ * For FLAGS see passphrase_to_dek;
*/
static char *
passphrase_get (int newsymkey, int nocache, const char *cacheid, int repeat,
- const char *tryagain_text, int *canceled)
+ const char *tryagain_text, unsigned int flags, int *canceled)
{
int rc;
char *pw = NULL;
char *orig_codeset;
const char *my_cacheid;
+ const char *desc;
if (canceled)
*canceled = 0;
@@ -244,6 +247,11 @@ passphrase_get (int newsymkey, int nocache, const char *cacheid, int repeat,
if (tryagain_text)
tryagain_text = _(tryagain_text);
+ if ((flags & GETPASSWORD_FLAG_SYMDECRYPT))
+ desc = _("Please enter the passphrase for decryption.");
+ else
+ desc = _("Enter passphrase\n");
+
/* Here we have:
* REPEAT is set in create mode and if opt.passphrase_repeat is set.
* (Thus it is not a clean indication that we want a new passphrase).
@@ -255,7 +263,7 @@ passphrase_get (int newsymkey, int nocache, const char *cacheid, int repeat,
* for a full state analysis and thus this new parameter.
*/
rc = agent_get_passphrase (my_cacheid, tryagain_text, NULL,
- _("Enter passphrase\n"),
+ desc,
newsymkey, repeat, nocache, &pw);
i18n_switchback (orig_codeset);
@@ -314,11 +322,16 @@ passphrase_clear_cache (const char *cacheid)
* CANCELED is not NULL, sets it to true.
*
* If CREATE is true a new passphrase sll be created. If NOCACHE is
- * true the symmetric key caching will not be used. */
+ * true the symmetric key caching will not be used.
+ *
+ * FLAG bits are:
+ * GETPASSWORD_FLAG_SYMDECRYPT := for symmetric decryption
+ */
DEK *
passphrase_to_dek (int cipher_algo, STRING2KEY *s2k,
int create, int nocache,
- const char *tryagain_text, int *canceled)
+ const char *tryagain_text, unsigned int flags,
+ int *canceled)
{
char *pw = NULL;
DEK *dek;
@@ -405,7 +418,7 @@ passphrase_to_dek (int cipher_algo, STRING2KEY *s2k,
/* Divert to the gpg-agent. */
pw = passphrase_get (create, create && nocache, s2k_cacheid,
create? opt.passphrase_repeat : 0,
- tryagain_text, canceled);
+ tryagain_text, flags, canceled);
if (*canceled)
{
xfree (pw);