summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2011-06-10 18:46:55 +0000
committerivan <ivan>2011-06-10 18:46:55 +0000
commitac306e4f3963dd6d46217b7bbd80259c2e0ff3ce (patch)
tree87e9843f6edb55fac4e9dab8514445356fa13625
parent6361e71971a84c4f798c2f4eef89bbd454a3cb0d (diff)
add sha1_base64 password encryption option to acct_sql export
-rw-r--r--FS/FS/part_export/acct_sql.pm2
-rw-r--r--FS/FS/svc_acct.pm18
2 files changed, 12 insertions, 8 deletions
diff --git a/FS/FS/part_export/acct_sql.pm b/FS/FS/part_export/acct_sql.pm
index 9f1ae7b5c..d561c80c1 100644
--- a/FS/FS/part_export/acct_sql.pm
+++ b/FS/FS/part_export/acct_sql.pm
@@ -23,7 +23,7 @@ tie my %options, 'Tie::IxHash',
},
'primary_key' => { label => 'Database primary key' },
'crypt' => { label => 'Password encryption',
- type=>'select', options=>[qw(crypt md5)],
+ type=>'select', options=>[qw(crypt md5 sha1_base64)],
default=>'crypt',
},
;
diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm
index a901f3bbb..8e5831584 100644
--- a/FS/FS/svc_acct.pm
+++ b/FS/FS/svc_acct.pm
@@ -2676,12 +2676,12 @@ sub crypt_password {
my $encryption = ( scalar(@_) && $_[0] ) ? shift : 'crypt';
if ( $encryption eq 'crypt' ) {
- crypt(
+ return crypt(
$self->_password,
$saltset[int(rand(64))].$saltset[int(rand(64))]
);
} elsif ( $encryption eq 'md5' ) {
- unix_md5_crypt( $self->_password );
+ return unix_md5_crypt( $self->_password );
} elsif ( $encryption eq 'blowfish' ) {
croak "unknown encryption method $encryption";
} else {
@@ -2689,7 +2689,7 @@ sub crypt_password {
}
} elsif ( $self->_password =~ /^\{CRYPT\}(.+)$/ ) {
- $1;
+ return $1;
}
} elsif ( $self->_password_encoding eq 'crypt' ) {
@@ -2702,12 +2702,16 @@ sub crypt_password {
my $encryption = ( scalar(@_) && $_[0] ) ? shift : 'crypt';
if ( $encryption eq 'crypt' ) {
- crypt(
+ return crypt(
$self->_password,
$saltset[int(rand(64))].$saltset[int(rand(64))]
);
} elsif ( $encryption eq 'md5' ) {
- unix_md5_crypt( $self->_password );
+ return unix_md5_crypt( $self->_password );
+ } elsif ( $encryption eq 'sha1_base64' ) { #for acct_sql
+ my $pass = sha1_base64( $self->_password );
+ $pass .= '=' x (4 - length($pass) % 4); #properly padded base64
+ return $pass;
} elsif ( $encryption eq 'blowfish' ) {
croak "unknown encryption method $encryption";
} else {
@@ -2728,12 +2732,12 @@ sub crypt_password {
my $encryption = ( scalar(@_) && $_[0] ) ? shift : 'crypt';
if ( $encryption eq 'crypt' ) {
- crypt(
+ return crypt(
$self->_password,
$saltset[int(rand(64))].$saltset[int(rand(64))]
);
} elsif ( $encryption eq 'md5' ) {
- unix_md5_crypt( $self->_password );
+ return unix_md5_crypt( $self->_password );
} elsif ( $encryption eq 'blowfish' ) {
croak "unknown encryption method $encryption";
} else {