mirror of
git://git.gnupg.org/gnupg.git
synced 2025-04-17 15:44:34 +02:00
Properly close files opened by es_fopen.
Allow setting of an empty passphrase. Assorted W32 changes.
This commit is contained in:
parent
5f97dd2c44
commit
bce4ea798a
@ -1,3 +1,10 @@
|
|||||||
|
2007-07-13 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* genkey.c (check_passphrase_constraints): Require a confirmation
|
||||||
|
for an empty passphrase.
|
||||||
|
(agent_genkey, agent_protect_and_store): No need to repeat an
|
||||||
|
empty passphrase.
|
||||||
|
|
||||||
2007-07-05 Werner Koch <wk@g10code.com>
|
2007-07-05 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* call-scd.c (struct inq_needpin_s): New.
|
* call-scd.c (struct inq_needpin_s): New.
|
||||||
@ -89,7 +96,7 @@
|
|||||||
|
|
||||||
* protect-tool.c (main) [W32]: Call pth_init.
|
* protect-tool.c (main) [W32]: Call pth_init.
|
||||||
|
|
||||||
* preset-passphrase.c (main) [W32]: Repalce the explicit Winsocket
|
* preset-passphrase.c (main) [W32]: Replace the explicit Winsocket
|
||||||
init by a call to pth_init.
|
init by a call to pth_init.
|
||||||
|
|
||||||
* trustlist.c (initialize_module_trustlist): New.
|
* trustlist.c (initialize_module_trustlist): New.
|
||||||
|
@ -207,11 +207,21 @@ start_pinentry (ctrl_t ctrl)
|
|||||||
if (opt.verbose)
|
if (opt.verbose)
|
||||||
log_info ("starting a new PIN Entry\n");
|
log_info ("starting a new PIN Entry\n");
|
||||||
|
|
||||||
|
#ifdef HAVE_W32_SYSTEM
|
||||||
|
fflush (stdout);
|
||||||
|
fflush (stderr);
|
||||||
|
#endif
|
||||||
if (fflush (NULL))
|
if (fflush (NULL))
|
||||||
{
|
{
|
||||||
gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
|
gpg_error_t tmperr = gpg_error (gpg_err_code_from_errno (errno));
|
||||||
log_error ("error flushing pending output: %s\n", strerror (errno));
|
log_error ("error flushing pending output: %s\n", strerror (errno));
|
||||||
|
/* At least Windows XP fails here with EBADF. According to docs
|
||||||
|
and Wine an fflush(NULL) is the same as _flushall. However
|
||||||
|
the Wime implementaion does not flush stdin,stdout and stderr
|
||||||
|
- see above. Lets try to ignore the error. */
|
||||||
|
#ifndef HAVE_W32_SYSTEM
|
||||||
return unlock_pinentry (tmperr);
|
return unlock_pinentry (tmperr);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!opt.pinentry_program || !*opt.pinentry_program)
|
if (!opt.pinentry_program || !*opt.pinentry_program)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* pksign.c - Generate a keypair
|
/* pksign.c - Generate a keypair
|
||||||
* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
|
* Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This file is part of GnuPG.
|
* This file is part of GnuPG.
|
||||||
*
|
*
|
||||||
@ -102,6 +102,20 @@ check_passphrase_constraints (ctrl_t ctrl, const char *pw)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!*pw)
|
||||||
|
{
|
||||||
|
const char *desc = _("You have not entered a passphrase - "
|
||||||
|
"this is in general a bad idea!%0A"
|
||||||
|
"Please confirm that you do not want to "
|
||||||
|
"have any protection on your key.");
|
||||||
|
|
||||||
|
err = agent_get_confirmation (ctrl, desc,
|
||||||
|
_("Yes, protection is not needed"),
|
||||||
|
_("Enter new passphrase"));
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,12 +180,15 @@ agent_genkey (ctrl_t ctrl, const char *keyparam, size_t keyparamlen,
|
|||||||
pi2->failed_tries = 0;
|
pi2->failed_tries = 0;
|
||||||
goto next_try;
|
goto next_try;
|
||||||
}
|
}
|
||||||
rc = agent_askpin (ctrl, text2, NULL, NULL, pi2);
|
if (pi->pin && *pi->pin)
|
||||||
if (rc == -1)
|
{
|
||||||
{ /* The re-entered one did not match and the user did not
|
rc = agent_askpin (ctrl, text2, NULL, NULL, pi2);
|
||||||
hit cancel. */
|
if (rc == -1)
|
||||||
initial_errtext = _("does not match - try again");
|
{ /* The re-entered one did not match and the user did not
|
||||||
goto next_try;
|
hit cancel. */
|
||||||
|
initial_errtext = _("does not match - try again");
|
||||||
|
goto next_try;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rc)
|
if (rc)
|
||||||
@ -284,12 +301,16 @@ agent_protect_and_store (ctrl_t ctrl, gcry_sexp_t s_skey)
|
|||||||
pi2->failed_tries = 0;
|
pi2->failed_tries = 0;
|
||||||
goto next_try;
|
goto next_try;
|
||||||
}
|
}
|
||||||
rc = agent_askpin (ctrl, text2, NULL, NULL, pi2);
|
/* Unless the passphrase is empty, ask to confirm it. */
|
||||||
if (rc == -1)
|
if (pi->pin && *pi->pin)
|
||||||
{ /* The re-entered one did not match and the user did not
|
{
|
||||||
hit cancel. */
|
rc = agent_askpin (ctrl, text2, NULL, NULL, pi2);
|
||||||
initial_errtext = _("does not match - try again");
|
if (rc == -1)
|
||||||
goto next_try;
|
{ /* The re-entered one did not match and the user did not
|
||||||
|
hit cancel. */
|
||||||
|
initial_errtext = _("does not match - try again");
|
||||||
|
goto next_try;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rc)
|
if (rc)
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2007-07-16 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* estream.c (es_func_file_create): Clear NO_CLOSE flag.
|
||||||
|
|
||||||
2007-07-12 Werner Koch <wk@g10code.com>
|
2007-07-12 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* sysutils.h (gnupg_fd_t): New.
|
* sysutils.h (gnupg_fd_t): New.
|
||||||
|
@ -861,6 +861,7 @@ es_func_file_create (void **cookie, int *filedes,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
file_cookie->fd = fd;
|
file_cookie->fd = fd;
|
||||||
|
file_cookie->no_close = 0;
|
||||||
*cookie = file_cookie;
|
*cookie = file_cookie;
|
||||||
*filedes = fd;
|
*filedes = fd;
|
||||||
|
|
||||||
|
@ -358,10 +358,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
|
|||||||
if (x == -1)
|
if (x == -1)
|
||||||
log_error ("failed to translate osfhandle %p\n", (void*)rp[0] );
|
log_error ("failed to translate osfhandle %p\n", (void*)rp[0] );
|
||||||
else
|
else
|
||||||
{
|
*statusfile = fdopen (x, "r");
|
||||||
log_debug ("_open_osfhandle %p yields %d\n", (void*)fd, x );
|
|
||||||
*statusfile = fdopen (x, "r");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (!*statusfile)
|
if (!*statusfile)
|
||||||
{
|
{
|
||||||
|
@ -327,9 +327,6 @@ agent_open (int *rfd)
|
|||||||
{
|
{
|
||||||
#ifdef SPWQ_USE_LOGGING
|
#ifdef SPWQ_USE_LOGGING
|
||||||
log_error ( _("malformed GPG_AGENT_INFO environment variable\n"));
|
log_error ( _("malformed GPG_AGENT_INFO environment variable\n"));
|
||||||
log_debug ( "a='%s'\n", infostr);
|
|
||||||
log_debug ( "a='%s'\n", strchr ( infostr, PATHSEP_C));
|
|
||||||
log_debug ( "a=%td\n", (p-infostr));
|
|
||||||
#endif
|
#endif
|
||||||
return SPWQ_NO_AGENT;
|
return SPWQ_NO_AGENT;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2007-07-16 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
|
* server.c (cmd_message): Use gnupg_fd_t to avoid dependecy on
|
||||||
|
newer assuan versions.
|
||||||
|
|
||||||
2007-07-12 Werner Koch <wk@g10code.com>
|
2007-07-12 Werner Koch <wk@g10code.com>
|
||||||
|
|
||||||
* gpgsm.c (check_special_filename): Use translate_sys2libc_fd_int
|
* gpgsm.c (check_special_filename): Use translate_sys2libc_fd_int
|
||||||
|
@ -734,7 +734,7 @@ static int
|
|||||||
cmd_message (assuan_context_t ctx, char *line)
|
cmd_message (assuan_context_t ctx, char *line)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
assuan_fd_t sysfd;
|
gnupg_fd_t sysfd;
|
||||||
int fd;
|
int fd;
|
||||||
ctrl_t ctrl = assuan_get_pointer (ctx);
|
ctrl_t ctrl = assuan_get_pointer (ctx);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user