* libmisc/salt.c: Make sure method is not NULL, defaulting to DES.

Thanks to Dan Kopecek <dkopecek@redhat.com>.
* src/chpasswd.c, src/chgpasswd.c: Do not use DES by default, but
  the system default define in /Etc/login.defs. Thanks to Dan
  Kopecek <dkopecek@redhat.com>.
* NEWS, man/chpasswd.8.xml, man/chgpasswd.8.xml: Do not mention
  DES as the default algorithm.
* src/chpasswd.c, src/chgpasswd.c: Tag the ENCRYPTMETHOD_SELECT
  dependent code accordingly.
This commit is contained in:
nekral-guest 2007-11-24 00:16:41 +00:00
parent e1e619074c
commit 2e782e3d7d
6 changed files with 40 additions and 14 deletions

View File

@ -2,7 +2,13 @@
* libmisc/salt.c: Make sure method is not NULL, defaulting to DES. * libmisc/salt.c: Make sure method is not NULL, defaulting to DES.
Thanks to Dan Kopecek <dkopecek@redhat.com>. Thanks to Dan Kopecek <dkopecek@redhat.com>.
* src/chpasswd.c, src/chgpasswd.c: Do not use DES by default, but
the system default define in /Etc/login.defs. Thanks to Dan
Kopecek <dkopecek@redhat.com>.
* NEWS, man/chpasswd.8.xml, man/chgpasswd.8.xml: Do not mention
DES as the default algorithm.
* src/chpasswd.c, src/chgpasswd.c: Tag the ENCRYPTMETHOD_SELECT
dependent code accordingly.
2007-11-23 Nicolas François <nicolas.francois@centraliens.net> 2007-11-23 Nicolas François <nicolas.francois@centraliens.net>

2
NEWS
View File

@ -55,6 +55,8 @@ shadow-4.0.18.1 -> shadow-4.0.18.2 UNRELEASED
passwords. passwords.
- chpaswd, chgpasswd, newusers: New options -c/--crypt-method and - chpaswd, chgpasswd, newusers: New options -c/--crypt-method and
-s/--sha-rounds to supersede the system default encryption algorithm. -s/--sha-rounds to supersede the system default encryption algorithm.
- chpaswd, chgpasswd, newusers: DES is no more the default algorithm. They
will respect the system default configured in /etc/login.defs
*** documentation: *** documentation:
- Generate the translated manpages from PO at build time. - Generate the translated manpages from PO at build time.

View File

@ -32,8 +32,8 @@
remap='I'>password</emphasis> remap='I'>password</emphasis>
</para> </para>
<para> <para>
By default the supplied password must be in clear-text. Default By default the supplied password must be in clear-text, and is
encryption algorithm is DES. encrypted by <command>chgpasswd</command>.
</para> </para>
<para> <para>
The default encryption algorithm can be defined for the system with The default encryption algorithm can be defined for the system with

View File

@ -32,9 +32,9 @@
remap='I'>password</emphasis> remap='I'>password</emphasis>
</para> </para>
<para> <para>
By default the supplied password must be in clear-text. Default By default the supplied password must be in clear-text, and is
encryption algorithm is DES. Also the password age will be updated, if encrypted by <command>chpasswd</command>.
present. Also the password age will be updated, if present.
</para> </para>
<para> <para>
The default encryption algorithm can be defined for the system with The default encryption algorithm can be defined for the system with

View File

@ -76,8 +76,7 @@ static void usage (void)
" -c, --crypt-method the crypt method (one of %s)\n" " -c, --crypt-method the crypt method (one of %s)\n"
" -e, --encrypted supplied passwords are encrypted\n" " -e, --encrypted supplied passwords are encrypted\n"
" -h, --help display this help message and exit\n" " -h, --help display this help message and exit\n"
" -m, --md5 use MD5 encryption instead of DES when the supplied\n" " -m, --md5 encrypt the clear text password using the MD5 algorithm\n"
" passwords are not encrypted\n"
"%s" "%s"
"\n"), "\n"),
Prog, Prog,
@ -128,12 +127,20 @@ int main (int argc, char **argv)
{"encrypted", no_argument, NULL, 'e'}, {"encrypted", no_argument, NULL, 'e'},
{"help", no_argument, NULL, 'h'}, {"help", no_argument, NULL, 'h'},
{"md5", no_argument, NULL, 'm'}, {"md5", no_argument, NULL, 'm'},
#ifdef ENCRYPTMETHOD_SELECT
{"sha-rounds", required_argument, NULL, 's'}, {"sha-rounds", required_argument, NULL, 's'},
#endif
{NULL, 0, NULL, '\0'} {NULL, 0, NULL, '\0'}
}; };
while ((c = while ((c =
getopt_long (argc, argv, "c:ehms:", long_options, getopt_long (argc, argv,
#ifdef ENCRYPTMETHOD_SELECT
"c:ehms:",
#else
"c:ehm",
#endif
long_options,
&option_index)) != -1) { &option_index)) != -1) {
switch (c) { switch (c) {
case 'c': case 'c':
@ -149,6 +156,7 @@ int main (int argc, char **argv)
case 'm': case 'm':
md5flg = 1; md5flg = 1;
break; break;
#ifdef ENCRYPTMETHOD_SELECT
case 's': case 's':
sflg = 1; sflg = 1;
if (!getlong(optarg, &sha_rounds)) { if (!getlong(optarg, &sha_rounds)) {
@ -158,6 +166,7 @@ int main (int argc, char **argv)
usage (); usage ();
} }
break; break;
#endif
case 0: case 0:
/* long option */ /* long option */
break; break;
@ -312,7 +321,7 @@ int main (int argc, char **argv)
if (sflg) if (sflg)
arg = &sha_rounds; arg = &sha_rounds;
} else } else
crypt_method = "DES"; crypt_method = NULL;
cp = pw_encrypt (newpwd, cp = pw_encrypt (newpwd,
crypt_make_salt(crypt_method, arg)); crypt_make_salt(crypt_method, arg));
} }

View File

@ -73,8 +73,7 @@ static void usage (void)
" -c, --crypt-method the crypt method (one of %s)\n" " -c, --crypt-method the crypt method (one of %s)\n"
" -e, --encrypted supplied passwords are encrypted\n" " -e, --encrypted supplied passwords are encrypted\n"
" -h, --help display this help message and exit\n" " -h, --help display this help message and exit\n"
" -m, --md5 use MD5 encryption instead of DES when the supplied\n" " -m, --md5 encrypt the clear text password using the MD5 algorithm\n"
" passwords are not encrypted\n"
"%s" "%s"
"\n"), "\n"),
Prog, Prog,
@ -124,12 +123,20 @@ int main (int argc, char **argv)
{"encrypted", no_argument, NULL, 'e'}, {"encrypted", no_argument, NULL, 'e'},
{"help", no_argument, NULL, 'h'}, {"help", no_argument, NULL, 'h'},
{"md5", no_argument, NULL, 'm'}, {"md5", no_argument, NULL, 'm'},
#ifdef ENCRYPTMETHOD_SELECT
{"sha-rounds", required_argument, NULL, 's'}, {"sha-rounds", required_argument, NULL, 's'},
#endif
{NULL, 0, NULL, '\0'} {NULL, 0, NULL, '\0'}
}; };
while ((c = while ((c =
getopt_long (argc, argv, "c:ehms:", long_options, getopt_long (argc, argv,
#ifdef ENCRYPTMETHOD_SELECT
"c:ehms:",
#else
"c:ehm",
#endif
long_options,
&option_index)) != -1) { &option_index)) != -1) {
switch (c) { switch (c) {
case 'c': case 'c':
@ -145,6 +152,7 @@ int main (int argc, char **argv)
case 'm': case 'm':
md5flg = 1; md5flg = 1;
break; break;
#ifdef ENCRYPTMETHOD_SELECT
case 's': case 's':
sflg = 1; sflg = 1;
if (!getlong(optarg, &sha_rounds)) { if (!getlong(optarg, &sha_rounds)) {
@ -154,6 +162,7 @@ int main (int argc, char **argv)
usage (); usage ();
} }
break; break;
#endif
case 0: case 0:
/* long option */ /* long option */
break; break;
@ -310,7 +319,7 @@ int main (int argc, char **argv)
if (sflg) if (sflg)
arg = &sha_rounds; arg = &sha_rounds;
} else } else
crypt_method = "DES"; crypt_method = NULL;
cp = pw_encrypt (newpwd, cp = pw_encrypt (newpwd,
crypt_make_salt(crypt_method, arg)); crypt_make_salt(crypt_method, arg));
} }