[svn] GnuPG - r4355 - branches/STABLE-BRANCH-1-4/g10
svn author dshaw
cvs at cvs.gnupg.org
Sun Dec 3 05:38:55 CET 2006
Author: dshaw
Date: 2006-12-03 05:38:53 +0100 (Sun, 03 Dec 2006)
New Revision: 4355
Modified:
branches/STABLE-BRANCH-1-4/g10/ChangeLog
branches/STABLE-BRANCH-1-4/g10/gpg.c
branches/STABLE-BRANCH-1-4/g10/options.h
branches/STABLE-BRANCH-1-4/g10/passphrase.c
Log:
* options.h, gpg.c (main), passphrase.c (passphrase_to_dek): Add
--passphrase-repeat option to control how many times gpg will
re-prompt for a passphrase to ensure the user has typed it correctly.
Defaults to 1.
Modified: branches/STABLE-BRANCH-1-4/g10/ChangeLog
===================================================================
--- branches/STABLE-BRANCH-1-4/g10/ChangeLog 2006-11-29 15:42:28 UTC (rev 4354)
+++ branches/STABLE-BRANCH-1-4/g10/ChangeLog 2006-12-03 04:38:53 UTC (rev 4355)
@@ -1,3 +1,10 @@
+2006-12-02 David Shaw <dshaw at jabberwocky.com>
+
+ * options.h, gpg.c (main), passphrase.c (passphrase_to_dek): Add
+ --passphrase-repeat option to control how many times gpg will
+ re-prompt for a passphrase to ensure the user has typed it
+ correctly. Defaults to 1.
+
2006-11-27 Werner Koch <wk at g10code.com>
* openfile.c (ask_outfile_name): Fixed buffer overflow occurring
Modified: branches/STABLE-BRANCH-1-4/g10/gpg.c
===================================================================
--- branches/STABLE-BRANCH-1-4/g10/gpg.c 2006-11-29 15:42:28 UTC (rev 4354)
+++ branches/STABLE-BRANCH-1-4/g10/gpg.c 2006-12-03 04:38:53 UTC (rev 4355)
@@ -219,6 +219,7 @@
oPasswd,
oPasswdFD,
oPasswdFile,
+ oPasswdRepeat,
oCommandFD,
oCommandFile,
oQuickRandom,
@@ -578,6 +579,7 @@
{ oPasswd, "passphrase",2, "@" },
{ oPasswdFD, "passphrase-fd",1, "@" },
{ oPasswdFile, "passphrase-file",2, "@" },
+ { oPasswdRepeat, "passphrase-repeat", 1, "@"},
{ oCommandFD, "command-fd",1, "@" },
{ oCommandFile, "command-file",2, "@" },
{ oQuickRandom, "quick-random", 0, "@"},
@@ -1819,6 +1821,7 @@
opt.def_sig_expire="0";
opt.def_cert_expire="0";
set_homedir ( default_homedir () );
+ opt.passwd_repeat=1;
#ifdef ENABLE_CARD_SUPPORT
#if defined(_WIN32) || defined(__CYGWIN__)
@@ -2440,6 +2443,7 @@
case oPasswdFile:
pwfd = open_info_file (pargs.r.ret_str, 0);
break;
+ case oPasswdRepeat: opt.passwd_repeat=pargs.r.ret_int; break;
case oCommandFD:
opt.command_fd = iobuf_translate_file_handle (pargs.r.ret_int, 0);
break;
Modified: branches/STABLE-BRANCH-1-4/g10/options.h
===================================================================
--- branches/STABLE-BRANCH-1-4/g10/options.h 2006-11-29 15:42:28 UTC (rev 4354)
+++ branches/STABLE-BRANCH-1-4/g10/options.h 2006-12-03 04:38:53 UTC (rev 4355)
@@ -239,7 +239,7 @@
/* True if multiple concatenated signatures may be verified. */
int allow_multisig_verification;
-
+ int passwd_repeat;
} opt;
/* CTRL is used to keep some global variables we currently can't
Modified: branches/STABLE-BRANCH-1-4/g10/passphrase.c
===================================================================
--- branches/STABLE-BRANCH-1-4/g10/passphrase.c 2006-11-29 15:42:28 UTC (rev 4354)
+++ branches/STABLE-BRANCH-1-4/g10/passphrase.c 2006-12-03 04:38:53 UTC (rev 4355)
@@ -1,6 +1,6 @@
/* passphrase.c - Get a passphrase
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- * 2005 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ * 2006 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -937,26 +937,32 @@
goto agent_died;
pw = xstrdup ("");
}
- if( *pw && mode == 2 ) {
- char *pw2 = agent_get_passphrase ( keyid, 2, NULL, NULL, NULL,
- NULL, canceled );
- if (!pw2)
- {
- if (!opt.use_agent)
- {
- xfree (pw);
- pw = NULL;
- goto agent_died;
- }
- pw2 = xstrdup ("");
- }
- if( strcmp(pw, pw2) ) {
+ if( *pw && mode == 2 )
+ {
+ int i;
+ for(i=0;i<opt.passwd_repeat;i++)
+ {
+ char *pw2 = agent_get_passphrase ( keyid, 2, NULL, NULL, NULL,
+ NULL, canceled );
+ if (!pw2)
+ {
+ if (!opt.use_agent)
+ {
+ xfree (pw);
+ pw = NULL;
+ goto agent_died;
+ }
+ pw2 = xstrdup ("");
+ }
+ if( strcmp(pw, pw2) )
+ {
+ xfree(pw2);
+ xfree(pw);
+ return NULL;
+ }
xfree(pw2);
- xfree(pw);
- return NULL;
- }
- xfree(pw2);
- }
+ }
+ }
}
else if( fd_passwd ) {
/* Return the passphrase we have store in FD_PASSWD. */
@@ -972,17 +978,23 @@
/* Read the passphrase from the tty or the command-fd. */
pw = cpr_get_hidden("passphrase.enter", _("Enter passphrase: ") );
tty_kill_prompt();
- if( mode == 2 && !cpr_enabled() ) {
- char *pw2 = cpr_get_hidden("passphrase.repeat",
- _("Repeat passphrase: ") );
- tty_kill_prompt();
- if( strcmp(pw, pw2) ) {
+ if( mode == 2 && !cpr_enabled() )
+ {
+ int i;
+ for(i=0;i<opt.passwd_repeat;i++)
+ {
+ char *pw2 = cpr_get_hidden("passphrase.repeat",
+ _("Repeat passphrase: ") );
+ tty_kill_prompt();
+ if( strcmp(pw, pw2) )
+ {
+ xfree(pw2);
+ xfree(pw);
+ return NULL;
+ }
xfree(pw2);
- xfree(pw);
- return NULL;
- }
- xfree(pw2);
- }
+ }
+ }
}
if( !pw || !*pw )
More information about the Gnupg-commits
mailing list