[interchange: 1/2] * Use Vend::Util::SHA1 in UserDB.
Mike Heins
interchange-cvs at icdevgroup.org
Fri Jul 12 14:15:11 UTC 2013
commit a9b14c27a1f8e07d2cc1cef2c975dcbaae0c37da
Author: Mike Heins <heins at icdevgroup.com>
Date: Fri Jul 12 09:20:46 2013 -0400
* Use Vend::Util::SHA1 in UserDB.
* Fail hard if UserDB uses SHA1 encryption sub but no module.
* Clean up code in Util.pm to separate blocks entirely.
lib/Vend/Config.pm | 10 +++++++---
lib/Vend/UserDB.pm | 4 ++--
lib/Vend/Util.pm | 14 +++++++-------
3 files changed, 16 insertions(+), 12 deletions(-)
---
diff --git a/lib/Vend/Config.pm b/lib/Vend/Config.pm
index 59eb770..72eae5f 100644
--- a/lib/Vend/Config.pm
+++ b/lib/Vend/Config.pm
@@ -3481,9 +3481,13 @@ sub set_default_search {
UserDB => sub {
my $set = $C->{UserDB_repository};
for(keys %$set) {
- next unless defined $set->{$_}{admin};
- $C->{AdminUserDB} = {} unless $C->{AdminUserDB};
- $C->{AdminUserDB}{$_} = $set->{$_}{admin};
+ if( defined $set->{$_}{admin} ) {
+ $C->{AdminUserDB} = {} unless $C->{AdminUserDB};
+ $C->{AdminUserDB}{$_} = $set->{$_}{admin};
+ }
+ if($set->{$_}{encsub} =~ /sha1/i and ! $Vend::Util::SHA1) {
+ return(undef, "Unable to use SHA1 encryption for UserDB, no Digest::SHA or Digest::SHA1 module.");
+ }
}
return 1;
},
diff --git a/lib/Vend/UserDB.pm b/lib/Vend/UserDB.pm
index ffcfbd3..ee43f08 100644
--- a/lib/Vend/UserDB.pm
+++ b/lib/Vend/UserDB.pm
@@ -100,11 +100,11 @@ sub enc_md5_salted {
sub enc_sha1 {
my $obj = shift;
- unless ($HAVE_SHA) {
+ unless ($Vend::Util::SHA1) {
$obj->log_either('SHA passwords unavailable. Is Digest::SHA installed?');
return;
}
- return Digest::SHA::sha1_hex(shift);
+ return Vend::Util::sha1_hex(shift);
}
# Maps the length of the encrypted data to the algorithm that
diff --git a/lib/Vend/Util.pm b/lib/Vend/Util.pm
index a69aeb4..a8a2683 100644
--- a/lib/Vend/Util.pm
+++ b/lib/Vend/Util.pm
@@ -571,15 +571,9 @@ sub random_string {
$r;
}
-# To generate a unique key for caching
-# Not very good without MD5
-#
-my $Md;
-my $Keysub;
-
+## This block defines &Vend::Util::sha1_hex and $Vend::Util::SHA1
use vars qw($SHA1);
-## This block defines &Vend::Util::sha1_hex and $Vend::Util::SHA1
BEGIN {
$SHA1 = 1;
@@ -599,6 +593,12 @@ BEGIN {
}
}
+# To generate a unique key for caching
+# Not very good without MD5
+#
+my $Md;
+my $Keysub;
+
eval {require Digest::MD5 };
if(! $@) {
More information about the interchange-cvs
mailing list