diff options
Diffstat (limited to 'g10/passphrase.c')
-rw-r--r-- | g10/passphrase.c | 23 |
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); |