Commit 2be6941f authored by Guenter Knauf's avatar Guenter Knauf
Browse files

Remove dependency on openssl and cut.

Prefer usage of Perl modules for sha1 calculation since there
might be systems where openssl is not installed or not in path.
If openssl is used for sha1 calculation then dont rely on cut
since it is usually not available on other systems than Linux.
parent c4f240de
Loading
Loading
Loading
Loading
+28 −12
Original line number Diff line number Diff line
@@ -37,6 +37,12 @@ use strict;
use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_l $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w);
use List::Util;
use Text::Wrap;
my $MOD_SHA = "Digest::SHA";
eval "require $MOD_SHA";
if ($@) {
  $MOD_SHA = "Digest::SHA::PurePerl";
  eval "require $MOD_SHA";
}

my %urls = (
  'nss' =>
@@ -56,7 +62,7 @@ $opt_d = 'release';
# If the OpenSSL commandline is not in search path you can configure it here!
my $openssl = 'openssl';

my $version = '1.24';
my $version = '1.25';

$opt_w = 76; # default base64 encoded lines length

@@ -124,6 +130,8 @@ if ($opt_i) {
  print "MIME::Base64.pm Version          : ${MIME::Base64::VERSION}\n";
  print "LWP::UserAgent.pm Version        : ${LWP::UserAgent::VERSION}\n";
  print "LWP.pm Version                   : ${LWP::VERSION}\n";
  print "Digest::SHA.pm Version           : ${Digest::SHA::VERSION}\n" if ($Digest::SHA::VERSION);
  print "Digest::SHA::PurePerl.pm Version : ${Digest::SHA::PurePerl::VERSION}\n" if ($Digest::SHA::PurePerl::VERSION);
  print ("=" x 78 . "\n");
}

@@ -211,11 +219,19 @@ sub PARSE_CSV_PARAM($$@) {
}

sub sha1 {
    my ($txt)=@_;
    my $sha1 = `$openssl dgst -sha1 $txt | cut '-d ' -f2`;
    chomp $sha1;
    return $sha1;
  my $result;
  if ($Digest::SHA::VERSION || $Digest::SHA::PurePerl::VERSION) {
    open(FILE, $_[0]) or die "Can't open '$_[0]': $!";
    binmode(FILE);
    $result = $MOD_SHA->new(1)->addfile(*FILE)->hexdigest;
    close(FILE);
  } else {
    # Use OpenSSL command if Perl Digest::SHA modules not available
    $result = (split(/ |\r|\n/,`$openssl dgst -sha1 $_[0]`))[1];
  }
  return $result;
}


sub oldsha1 {
    my ($crt)=@_;