1. md5crypt isn't support anymore
2. if you want des passwords, go use vipw
I kept auto and blowfish instead of just hard coding blowfish because
there's some bits that allow fiddling with the salt. (that needs
improvement too, but not this diff)
Index: adduser.perl
===================================================================
RCS file: /cvs/src/usr.sbin/adduser/adduser.perl,v
retrieving revision 1.61
diff -u -p -r1.61 adduser.perl
--- adduser.perl 15 Feb 2014 06:27:50 -0000 1.61
+++ adduser.perl 13 Jul 2014 10:18:41 -0000
@@ -96,7 +96,7 @@ sub variables {
# common shells, first element has higher priority
@shellpref = ('csh', 'sh', 'bash', 'tcsh', 'ksh');
- @encryption_methods = ('auto', 'blowfish', 'md5', 'des', 'old');
+ @encryption_methods = ('auto', 'blowfish' );
$defaultshell = 'ksh'; # defaultshell if not empty
$group_uniq = 'USER';
@@ -958,18 +958,7 @@ sub uniq {
# That may be a DES salt or a blowfish rotation count
sub salt {
local($salt); # initialization
- if ($encryptionmethod eq "des" || $encryptionmethod eq "old") {
- local($i, $rand);
- local(@itoa64) = ( '0' .. '9', 'a' .. 'z', 'A' .. 'Z' ); # 0 .. 63
-
- warn "calculate salt\n" if $verbose > 1;
-
- for ($i = 0; $i < 8; $i++) {
- srand(time + $rand + $$);
- $rand = rand(25*29*17 + $rand);
- $salt .= $itoa64[$rand & $#itoa64];
- }
- } elsif ($encryptionmethod eq "md5" || $encryptionmethod eq "auto") {
+ if ($encryptionmethod eq "auto") {
$salt = "";
} elsif ($encryptionmethod =~ /^blowfish/ ) {
($encryptionmethod, $salt) = split(/\,/, $encryptionmethod);
@@ -991,11 +980,7 @@ sub encrypt {
local($pass, $salt) = ($_[0], $_[1]);
local(@args, $crypt);
- if ($encryptionmethod eq "des" || $encryptionmethod eq "old") {
- @args = ("-s", $salt);
- } elsif ($encryptionmethod eq "md5") {
- @args = ("-m");
- } elsif ($encryptionmethod eq "blowfish") {
+ if ($encryptionmethod eq "blowfish") {
@args = ("-b", $salt);
} elsif ($encryptionmethod eq "auto") {
@args = ("-c", $log_cl);