package Util;
use strict;
-use Crypt::Blowfish;
my $blocksize = 8; # A blowfish block is 8 bytes
my $configfile = "/etc/userdir-ldap/userdir-ldap.conf";
-#my $configfile = "./userdir-ldap.conf";
+#my $configfile = "/home/randolph/html/debian/perl/userdir-ldap.conf";
my %config = &ReadConfigFile;
+my $hascryptix = 1;
+eval 'use Crypt::Blowfish';
+if ($@) {
+ $hascryptix = undef;
+}
+
sub CreateKey {
my $keysize = shift;
my $input;
$input .= " " x ($blocksize - (length($input) % $blocksize)) if (length($input % $blocksize));
- for ($pos = 0; $pos < length($input); $pos += $blocksize) {
- $output .= unpack("H16", $cipher->encrypt(substr($input, $pos, $blocksize)));
+ for ($pos = 0; $pos < length($input); $pos += $blocksize) {
+ $output .= unpack("H16", $cipher->encrypt(substr($input, $pos, $blocksize))) if ($hascryptix);
}
return $output;
}
for ($pos = 0; $pos < length($input); $pos += $blocksize*2) {
$portion = pack("H16", substr($input, $pos, $blocksize*2));
- $output .= $cipher->decrypt($portion);
+ $output .= $cipher->decrypt($portion) if ($hascryptix);
}
$output =~ s/ +$//;
}
sub CheckAuthToken {
- my ($id, $hrkey) = split(/:/, shift, 2);
+ my ($id, $hrkey) = split(/,/, shift, 2);
return undef if (!$id || !$hrkey);
my $key = pack("H".(length($hrkey)), $hrkey);
my $cipher = new Crypt::Blowfish $key;
my $r = ReadPasswordFromFile($id, $cipher);
if ($r) {
- UpdateAuthToken("$id:$hrkey", $r);
+ UpdateAuthToken("$id,$hrkey", $r);
} else {
- ClearAuthToken("$id:$hrkey")
+ ClearAuthToken("$id,$hrkey")
}
return $r;
}
sub ClearAuthToken {
- my ($id, $hrkey) = split(/:/, shift, 2);
+ my ($id, $hrkey) = split(/,/, shift, 2);
$id =~ y/\//_/; # switch / to _
unlink "$config{authtokenpath}/$id" || &HTMLError("Error removing authtoken: $!");
}
sub UpdateAuthToken {
- my ($id, $hrkey) = split(/:/, shift, 2);
+ my ($id, $hrkey) = split(/,/, shift, 2);
my $password = shift;
my $key = pack("H".(length($hrkey)), $hrkey);
$id =~ y/\//_/; # switch / to _
# Chop off any trailing comments
s/#.*//;
($attr, $setting) = split(/=/, $_, 2);
- $setting =~ s/"//g;
+ $setting =~ s/"//g; #"
$setting =~ s/;$//;
- $attr =~ s/^ +//; $attr =~ s/ +$//;
- $setting =~ s/^ +//; $setting =~ s/ +$//;
+ $attr =~ s/^\s+//; $attr =~ s/\s+$//;
+ $setting =~ s/^\s+//; $setting =~ s/\s+$//;
$config{$attr} = $setting;
}
}