+ } elsif ($params{algorithm} =~ m/^SHA1/) {
+ if (eval { require Digest::SHA; 1 }) {
+ return '{' . $params{algorithm} . '}' . Digest::SHA::sha1_hex($salt . $params{password});
+
+ } elsif (eval { require Digest::SHA1; 1 }) {
+ return '{' . $params{algorithm} . '}' . Digest::SHA1::sha1_hex($salt . $params{password});
+
+ } elsif ($params{fallback_algorithm}) {
+ return $class->hash_password(%params, algorithm => $params{fallback_algorithm});
+
+ } else {
+ die 'Neither Digest::SHA nor Digest::SHA1 is available';
+ }
+
+ } elsif ($params{algorithm} =~ m/^MD5/) {