mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
agent: New option --newsymkey for GET_PASSPHRASE
* agent/call-pinentry.c (do_getpin): New.
(agent_askpin): Use do_getpin.
(agent_get_passphrase): Add arg pininfo. Use do_getpin.
* agent/genkey.c (check_passphrase_constraints): New arg no_empty.
* agent/command.c (reenter_passphrase_cmp_cb): New.
(cmd_get_passphrase): Add option --newsymkey.
--
This new option allows to present a passphrase with the usual repeat
box as it is used by gpg-agent's internal key generation.
Signed-off-by: Werner Koch <wk@gnupg.org>
Backported-from-master: eace4bbe1d
This commit is contained in:
parent
7b6071a45f
commit
d9e2dfa4c5
4 changed files with 354 additions and 97 deletions
|
@ -179,7 +179,7 @@ take_this_one_anyway (ctrl_t ctrl, const char *desc)
|
|||
message describing the problem is returned in
|
||||
*FAILED_CONSTRAINT. */
|
||||
int
|
||||
check_passphrase_constraints (ctrl_t ctrl, const char *pw,
|
||||
check_passphrase_constraints (ctrl_t ctrl, const char *pw, int no_empty,
|
||||
char **failed_constraint)
|
||||
{
|
||||
gpg_error_t err = 0;
|
||||
|
@ -198,7 +198,7 @@ check_passphrase_constraints (ctrl_t ctrl, const char *pw,
|
|||
/* The first check is to warn about an empty passphrase. */
|
||||
if (!*pw)
|
||||
{
|
||||
const char *desc = (opt.enforce_passphrase_constraints?
|
||||
const char *desc = (opt.enforce_passphrase_constraints || no_empty?
|
||||
L_("You have not entered a passphrase!%0A"
|
||||
"An empty passphrase is not allowed.") :
|
||||
L_("You have not entered a passphrase - "
|
||||
|
@ -209,7 +209,7 @@ check_passphrase_constraints (ctrl_t ctrl, const char *pw,
|
|||
err = 1;
|
||||
if (failed_constraint)
|
||||
{
|
||||
if (opt.enforce_passphrase_constraints)
|
||||
if (opt.enforce_passphrase_constraints || no_empty)
|
||||
*failed_constraint = xstrdup (desc);
|
||||
else
|
||||
err = take_this_one_anyway2 (ctrl, desc,
|
||||
|
@ -399,7 +399,7 @@ agent_ask_new_passphrase (ctrl_t ctrl, const char *prompt,
|
|||
initial_errtext = NULL;
|
||||
if (!err)
|
||||
{
|
||||
if (check_passphrase_constraints (ctrl, pi->pin, &initial_errtext))
|
||||
if (check_passphrase_constraints (ctrl, pi->pin, 0, &initial_errtext))
|
||||
{
|
||||
pi->failed_tries = 0;
|
||||
pi2->failed_tries = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue