From: Ludwig Nussel Date: Wed, 21 Apr 2010 15:52:10 +0200 Subject: [PATCH] also create old hash for compatibility --- tools/c_rehash.in | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tools/c_rehash.in b/tools/c_rehash.in index b086ff9cf0d9..92cb50383c72 100644 --- a/tools/c_rehash.in +++ b/tools/c_rehash.in @@ -8,8 +8,6 @@ my $prefix; my $openssl = $ENV{OPENSSL} || "openssl"; my $pwd; -my $x509hash = "-subject_hash"; -my $crlhash = "-hash"; my $verbose = 0; my $symlink_exists=eval {symlink("",""); 1}; my $removelinks = 1; @@ -18,10 +16,7 @@ my $removelinks = 1; while ( $ARGV[0] =~ /^-/ ) { my $flag = shift @ARGV; last if ( $flag eq '--'); - if ( $flag eq '-old') { - $x509hash = "-subject_hash_old"; - $crlhash = "-hash_old"; - } elsif ( $flag eq '-h') { + if ( $flag eq '-h') { help(); } elsif ( $flag eq '-n' ) { $removelinks = 0; @@ -113,7 +108,9 @@ sub hash_dir { next; } link_hash_cert($fname) if($cert); + link_hash_cert_old($fname) if($cert); link_hash_crl($fname) if($crl); + link_hash_crl_old($fname) if($crl); } } @@ -146,6 +143,7 @@ sub check_file { sub link_hash_cert { my $fname = $_[0]; + my $x509hash = $_[1] || '-subject_hash'; $fname =~ s/'/'\\''/g; my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`; chomp $hash; @@ -177,10 +175,20 @@ sub link_hash_cert { $hashlist{$hash} = $fprint; } +sub link_hash_cert_old { + link_hash_cert($_[0], '-subject_hash_old'); +} + +sub link_hash_crl_old { + link_hash_crl($_[0], '-hash_old'); +} + + # Same as above except for a CRL. CRL links are of the form .r sub link_hash_crl { my $fname = $_[0]; + my $crlhash = $_[1] || "-hash"; $fname =~ s/'/'\\''/g; my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`; chomp $hash;