Index: openssl/fips/mkfipsscr.pl |
=================================================================== |
--- openssl/fips/mkfipsscr.pl (revision 105093) |
+++ openssl/fips/mkfipsscr.pl (working copy) |
@@ -1,632 +0,0 @@ |
-#!/usr/local/bin/perl -w |
-# Quick & dirty utility to generate a script for executing the |
-# FIPS 140-2 CMVP algorithm tests based on the pathnames of |
-# input algorithm test files actually present (the unqualified |
-# file names are consistent but the pathnames are not). |
-# |
- |
-# List of all the unqualified file names we expect. |
-my %fips_tests = ( |
- |
-# FIPS test definitions |
- |
-# DSA tests |
- |
-"PQGGen" => "fips_dssvs pqg", |
-"KeyPair" => "fips_dssvs keypair", |
-"SigGen" => "fips_dssvs siggen", |
-"SigVer" => "fips_dssvs sigver", |
- |
-# SHA tests |
- |
-"SHA1LongMsg" => "fips_shatest", |
-"SHA1Monte" => "fips_shatest", |
-"SHA1ShortMsg" => "fips_shatest", |
-"SHA224LongMsg" => "fips_shatest", |
-"SHA224Monte" => "fips_shatest", |
-"SHA224ShortMsg" => "fips_shatest", |
-"SHA256LongMsg" => "fips_shatest", |
-"SHA256Monte" => "fips_shatest", |
-"SHA256ShortMsg" => "fips_shatest", |
-"SHA384LongMsg" => "fips_shatest", |
-"SHA384Monte" => "fips_shatest", |
-"SHA384ShortMsg" => "fips_shatest", |
-"SHA512LongMsg" => "fips_shatest", |
-"SHA512Monte" => "fips_shatest", |
-"SHA512ShortMsg" => "fips_shatest", |
- |
-# HMAC |
- |
-"HMAC" => "fips_hmactest", |
- |
-# RAND tests |
- |
-"ANSI931_AES128MCT" => "fips_rngvs mct", |
-"ANSI931_AES192MCT" => "fips_rngvs mct", |
-"ANSI931_AES256MCT" => "fips_rngvs mct", |
-"ANSI931_AES128VST" => "fips_rngvs vst", |
-"ANSI931_AES192VST" => "fips_rngvs vst", |
-"ANSI931_AES256VST" => "fips_rngvs vst", |
- |
-# RSA tests |
- |
-"SigGen15" => "fips_rsastest", |
-"SigVer15" => "fips_rsavtest", |
-"SigGenPSS" => "fips_rsastest -saltlen SALT", |
-"SigVerPSS" => "fips_rsavtest -saltlen SALT", |
-"SigGenRSA" => "fips_rsastest -x931", |
-"SigVerRSA" => "fips_rsavtest -x931", |
-"KeyGenRSA" => "fips_rsagtest", |
- |
-# AES tests |
- |
-"CBCGFSbox128" => "fips_aesavs -f", |
-"CBCGFSbox192" => "fips_aesavs -f", |
-"CBCGFSbox256" => "fips_aesavs -f", |
-"CBCKeySbox128" => "fips_aesavs -f", |
-"CBCKeySbox192" => "fips_aesavs -f", |
-"CBCKeySbox256" => "fips_aesavs -f", |
-"CBCMCT128" => "fips_aesavs -f", |
-"CBCMCT192" => "fips_aesavs -f", |
-"CBCMCT256" => "fips_aesavs -f", |
-"CBCMMT128" => "fips_aesavs -f", |
-"CBCMMT192" => "fips_aesavs -f", |
-"CBCMMT256" => "fips_aesavs -f", |
-"CBCVarKey128" => "fips_aesavs -f", |
-"CBCVarKey192" => "fips_aesavs -f", |
-"CBCVarKey256" => "fips_aesavs -f", |
-"CBCVarTxt128" => "fips_aesavs -f", |
-"CBCVarTxt192" => "fips_aesavs -f", |
-"CBCVarTxt256" => "fips_aesavs -f", |
-"CFB128GFSbox128" => "fips_aesavs -f", |
-"CFB128GFSbox192" => "fips_aesavs -f", |
-"CFB128GFSbox256" => "fips_aesavs -f", |
-"CFB128KeySbox128" => "fips_aesavs -f", |
-"CFB128KeySbox192" => "fips_aesavs -f", |
-"CFB128KeySbox256" => "fips_aesavs -f", |
-"CFB128MCT128" => "fips_aesavs -f", |
-"CFB128MCT192" => "fips_aesavs -f", |
-"CFB128MCT256" => "fips_aesavs -f", |
-"CFB128MMT128" => "fips_aesavs -f", |
-"CFB128MMT192" => "fips_aesavs -f", |
-"CFB128MMT256" => "fips_aesavs -f", |
-"CFB128VarKey128" => "fips_aesavs -f", |
-"CFB128VarKey192" => "fips_aesavs -f", |
-"CFB128VarKey256" => "fips_aesavs -f", |
-"CFB128VarTxt128" => "fips_aesavs -f", |
-"CFB128VarTxt192" => "fips_aesavs -f", |
-"CFB128VarTxt256" => "fips_aesavs -f", |
-"CFB8GFSbox128" => "fips_aesavs -f", |
-"CFB8GFSbox192" => "fips_aesavs -f", |
-"CFB8GFSbox256" => "fips_aesavs -f", |
-"CFB8KeySbox128" => "fips_aesavs -f", |
-"CFB8KeySbox192" => "fips_aesavs -f", |
-"CFB8KeySbox256" => "fips_aesavs -f", |
-"CFB8MCT128" => "fips_aesavs -f", |
-"CFB8MCT192" => "fips_aesavs -f", |
-"CFB8MCT256" => "fips_aesavs -f", |
-"CFB8MMT128" => "fips_aesavs -f", |
-"CFB8MMT192" => "fips_aesavs -f", |
-"CFB8MMT256" => "fips_aesavs -f", |
-"CFB8VarKey128" => "fips_aesavs -f", |
-"CFB8VarKey192" => "fips_aesavs -f", |
-"CFB8VarKey256" => "fips_aesavs -f", |
-"CFB8VarTxt128" => "fips_aesavs -f", |
-"CFB8VarTxt192" => "fips_aesavs -f", |
-"CFB8VarTxt256" => "fips_aesavs -f", |
-#"CFB1GFSbox128" => "fips_aesavs -f", |
-#"CFB1GFSbox192" => "fips_aesavs -f", |
-#"CFB1GFSbox256" => "fips_aesavs -f", |
-#"CFB1KeySbox128" => "fips_aesavs -f", |
-#"CFB1KeySbox192" => "fips_aesavs -f", |
-#"CFB1KeySbox256" => "fips_aesavs -f", |
-#"CFB1MCT128" => "fips_aesavs -f", |
-#"CFB1MCT192" => "fips_aesavs -f", |
-#"CFB1MCT256" => "fips_aesavs -f", |
-#"CFB1MMT128" => "fips_aesavs -f", |
-#"CFB1MMT192" => "fips_aesavs -f", |
-#"CFB1MMT256" => "fips_aesavs -f", |
-#"CFB1VarKey128" => "fips_aesavs -f", |
-#"CFB1VarKey192" => "fips_aesavs -f", |
-#"CFB1VarKey256" => "fips_aesavs -f", |
-#"CFB1VarTxt128" => "fips_aesavs -f", |
-#"CFB1VarTxt192" => "fips_aesavs -f", |
-#"CFB1VarTxt256" => "fips_aesavs -f", |
-"ECBGFSbox128" => "fips_aesavs -f", |
-"ECBGFSbox192" => "fips_aesavs -f", |
-"ECBGFSbox256" => "fips_aesavs -f", |
-"ECBKeySbox128" => "fips_aesavs -f", |
-"ECBKeySbox192" => "fips_aesavs -f", |
-"ECBKeySbox256" => "fips_aesavs -f", |
-"ECBMCT128" => "fips_aesavs -f", |
-"ECBMCT192" => "fips_aesavs -f", |
-"ECBMCT256" => "fips_aesavs -f", |
-"ECBMMT128" => "fips_aesavs -f", |
-"ECBMMT192" => "fips_aesavs -f", |
-"ECBMMT256" => "fips_aesavs -f", |
-"ECBVarKey128" => "fips_aesavs -f", |
-"ECBVarKey192" => "fips_aesavs -f", |
-"ECBVarKey256" => "fips_aesavs -f", |
-"ECBVarTxt128" => "fips_aesavs -f", |
-"ECBVarTxt192" => "fips_aesavs -f", |
-"ECBVarTxt256" => "fips_aesavs -f", |
-"OFBGFSbox128" => "fips_aesavs -f", |
-"OFBGFSbox192" => "fips_aesavs -f", |
-"OFBGFSbox256" => "fips_aesavs -f", |
-"OFBKeySbox128" => "fips_aesavs -f", |
-"OFBKeySbox192" => "fips_aesavs -f", |
-"OFBKeySbox256" => "fips_aesavs -f", |
-"OFBMCT128" => "fips_aesavs -f", |
-"OFBMCT192" => "fips_aesavs -f", |
-"OFBMCT256" => "fips_aesavs -f", |
-"OFBMMT128" => "fips_aesavs -f", |
-"OFBMMT192" => "fips_aesavs -f", |
-"OFBMMT256" => "fips_aesavs -f", |
-"OFBVarKey128" => "fips_aesavs -f", |
-"OFBVarKey192" => "fips_aesavs -f", |
-"OFBVarKey256" => "fips_aesavs -f", |
-"OFBVarTxt128" => "fips_aesavs -f", |
-"OFBVarTxt192" => "fips_aesavs -f", |
-"OFBVarTxt256" => "fips_aesavs -f", |
- |
-# Triple DES tests |
- |
-"TCBCinvperm" => "fips_desmovs -f", |
-"TCBCMMT1" => "fips_desmovs -f", |
-"TCBCMMT2" => "fips_desmovs -f", |
-"TCBCMMT3" => "fips_desmovs -f", |
-"TCBCMonte1" => "fips_desmovs -f", |
-"TCBCMonte2" => "fips_desmovs -f", |
-"TCBCMonte3" => "fips_desmovs -f", |
-"TCBCpermop" => "fips_desmovs -f", |
-"TCBCsubtab" => "fips_desmovs -f", |
-"TCBCvarkey" => "fips_desmovs -f", |
-"TCBCvartext" => "fips_desmovs -f", |
-"TCFB64invperm" => "fips_desmovs -f", |
-"TCFB64MMT1" => "fips_desmovs -f", |
-"TCFB64MMT2" => "fips_desmovs -f", |
-"TCFB64MMT3" => "fips_desmovs -f", |
-"TCFB64Monte1" => "fips_desmovs -f", |
-"TCFB64Monte2" => "fips_desmovs -f", |
-"TCFB64Monte3" => "fips_desmovs -f", |
-"TCFB64permop" => "fips_desmovs -f", |
-"TCFB64subtab" => "fips_desmovs -f", |
-"TCFB64varkey" => "fips_desmovs -f", |
-"TCFB64vartext" => "fips_desmovs -f", |
-"TCFB8invperm" => "fips_desmovs -f", |
-"TCFB8MMT1" => "fips_desmovs -f", |
-"TCFB8MMT2" => "fips_desmovs -f", |
-"TCFB8MMT3" => "fips_desmovs -f", |
-"TCFB8Monte1" => "fips_desmovs -f", |
-"TCFB8Monte2" => "fips_desmovs -f", |
-"TCFB8Monte3" => "fips_desmovs -f", |
-"TCFB8permop" => "fips_desmovs -f", |
-"TCFB8subtab" => "fips_desmovs -f", |
-"TCFB8varkey" => "fips_desmovs -f", |
-"TCFB8vartext" => "fips_desmovs -f", |
-"TECBinvperm" => "fips_desmovs -f", |
-"TECBMMT1" => "fips_desmovs -f", |
-"TECBMMT2" => "fips_desmovs -f", |
-"TECBMMT3" => "fips_desmovs -f", |
-"TECBMonte1" => "fips_desmovs -f", |
-"TECBMonte2" => "fips_desmovs -f", |
-"TECBMonte3" => "fips_desmovs -f", |
-"TECBpermop" => "fips_desmovs -f", |
-"TECBsubtab" => "fips_desmovs -f", |
-"TECBvarkey" => "fips_desmovs -f", |
-"TECBvartext" => "fips_desmovs -f", |
-"TOFBinvperm" => "fips_desmovs -f", |
-"TOFBMMT1" => "fips_desmovs -f", |
-"TOFBMMT2" => "fips_desmovs -f", |
-"TOFBMMT3" => "fips_desmovs -f", |
-"TOFBMonte1" => "fips_desmovs -f", |
-"TOFBMonte2" => "fips_desmovs -f", |
-"TOFBMonte3" => "fips_desmovs -f", |
-"TOFBpermop" => "fips_desmovs -f", |
-"TOFBsubtab" => "fips_desmovs -f", |
-"TOFBvarkey" => "fips_desmovs -f", |
-"TOFBvartext" => "fips_desmovs -f", |
-"TCBCinvperm" => "fips_desmovs -f", |
-"TCBCMMT1" => "fips_desmovs -f", |
-"TCBCMMT2" => "fips_desmovs -f", |
-"TCBCMMT3" => "fips_desmovs -f", |
-"TCBCMonte1" => "fips_desmovs -f", |
-"TCBCMonte2" => "fips_desmovs -f", |
-"TCBCMonte3" => "fips_desmovs -f", |
-"TCBCpermop" => "fips_desmovs -f", |
-"TCBCsubtab" => "fips_desmovs -f", |
-"TCBCvarkey" => "fips_desmovs -f", |
-"TCBCvartext" => "fips_desmovs -f", |
-"TCFB64invperm" => "fips_desmovs -f", |
-"TCFB64MMT1" => "fips_desmovs -f", |
-"TCFB64MMT2" => "fips_desmovs -f", |
-"TCFB64MMT3" => "fips_desmovs -f", |
-"TCFB64Monte1" => "fips_desmovs -f", |
-"TCFB64Monte2" => "fips_desmovs -f", |
-"TCFB64Monte3" => "fips_desmovs -f", |
-"TCFB64permop" => "fips_desmovs -f", |
-"TCFB64subtab" => "fips_desmovs -f", |
-"TCFB64varkey" => "fips_desmovs -f", |
-"TCFB64vartext" => "fips_desmovs -f", |
-"TCFB8invperm" => "fips_desmovs -f", |
-"TCFB8MMT1" => "fips_desmovs -f", |
-"TCFB8MMT2" => "fips_desmovs -f", |
-"TCFB8MMT3" => "fips_desmovs -f", |
-"TCFB8Monte1" => "fips_desmovs -f", |
-"TCFB8Monte2" => "fips_desmovs -f", |
-"TCFB8Monte3" => "fips_desmovs -f", |
-"TCFB8permop" => "fips_desmovs -f", |
-"TCFB8subtab" => "fips_desmovs -f", |
-"TCFB8varkey" => "fips_desmovs -f", |
-"TCFB8vartext" => "fips_desmovs -f", |
-"TECBinvperm" => "fips_desmovs -f", |
-"TECBMMT1" => "fips_desmovs -f", |
-"TECBMMT2" => "fips_desmovs -f", |
-"TECBMMT3" => "fips_desmovs -f", |
-"TECBMonte1" => "fips_desmovs -f", |
-"TECBMonte2" => "fips_desmovs -f", |
-"TECBMonte3" => "fips_desmovs -f", |
-"TECBpermop" => "fips_desmovs -f", |
-"TECBsubtab" => "fips_desmovs -f", |
-"TECBvarkey" => "fips_desmovs -f", |
-"TECBvartext" => "fips_desmovs -f", |
-"TOFBinvperm" => "fips_desmovs -f", |
-"TOFBMMT1" => "fips_desmovs -f", |
-"TOFBMMT2" => "fips_desmovs -f", |
-"TOFBMMT3" => "fips_desmovs -f", |
-"TOFBMonte1" => "fips_desmovs -f", |
-"TOFBMonte2" => "fips_desmovs -f", |
-"TOFBMonte3" => "fips_desmovs -f", |
-"TOFBpermop" => "fips_desmovs -f", |
-"TOFBsubtab" => "fips_desmovs -f", |
-"TOFBvarkey" => "fips_desmovs -f", |
-"TOFBvartext" => "fips_desmovs -f" |
- |
-); |
-my %salt_names = ( |
-"SigVerPSS (salt 0)" => "SigVerPSS", |
-"SigVerPSS (salt 62)" => "SigVerPSS", |
-"SigGenPSS (salt 0)" => "SigGenPSS", |
-"SigGenPSS (salt 62)" => "SigGenPSS", |
-); |
- |
- |
-my $win32 = $^O =~ m/mswin/i; |
-my $onedir = 0; |
-my $filter = ""; |
-my $tvdir; |
-my $tprefix; |
-my $shwrap_prefix; |
-my $debug = 0; |
-my $quiet = 0; |
-my $rspdir = "rsp"; |
-my $rspignore = 0; |
-my @bogus = (); # list of unmatched *.rsp files |
-my $bufout = ''; |
-my %_programs = (); # list of external programs to check |
- |
-foreach (@ARGV) |
- { |
- if ($_ eq "--win32") |
- { |
- $win32 = 1; |
- } |
- elsif ($_ eq "--onedir") |
- { |
- $onedir = 1; |
- } |
- elsif ($_ eq "--debug") |
- { |
- $debug = 1; |
- } |
- elsif ($_ eq "--quiet") |
- { |
- $quiet = 1; |
- } |
- elsif (/--dir=(.*)$/) |
- { |
- $tvdir = $1; |
- } |
- elsif (/--rspdir=(.*)$/) |
- { |
- $rspdir = $1; |
- } |
- elsif (/--rspignore$/) |
- { |
- $rspignore = 1; |
- } |
- elsif (/--tprefix=(.*)$/) |
- { |
- $tprefix = $1; |
- } |
- elsif (/--shwrap_prefix=(.*)$/) |
- { |
- $shwrap_prefix = $1; |
- } |
- elsif (/--filter=(.*)$/) |
- { |
- $filter = $1; |
- } |
- elsif (/--outfile=(.*)$/) |
- { |
- $outfile = $1; |
- } |
- else |
- { |
- &Help(); |
- exit(1); |
- } |
- } |
- |
-$tvdir = "." unless defined $tvdir; |
- |
-if ($win32) |
- { |
- if (!defined $tprefix) |
- { |
- if ($onedir) |
- { |
- $tprefix = ".\\"; |
- } |
- else |
- { |
- $tprefix = "..\\out32dll\\"; |
- } |
- } |
- |
- $bufinit .= <<END; |
-\@echo off |
-rem Test vector run script |
-rem Auto generated by mkfipsscr.pl script |
-rem Do not edit |
- |
-END |
- |
- } |
-else |
- { |
- if ($onedir) |
- { |
- $tprefix = "./" unless defined $tprefix; |
- $shwrap_prefix = "./" unless defined $shwrap_prefix; |
- } |
- else |
- { |
- $tprefix = "../test/" unless defined $tprefix; |
- $shwrap_prefix = "../util/" unless defined $shwrap_prefix; |
- } |
- |
- $bufinit .= <<END; |
-#!/bin/sh |
- |
-# Test vector run script |
-# Auto generated by mkfipsscr.pl script |
-# Do not edit |
- |
-END |
- |
- } |
-my %fips_found; |
-foreach (keys %fips_tests) |
- { |
- $fips_found{$_} = 0; |
- } |
-my %saltPSS; |
-for (keys %salt_names) |
- { |
- $salt_found{$_} = 0; |
- } |
- |
-recurse_test($win32, $tprefix, $filter, $tvdir); |
- |
-while (($key, $value) = each %salt_found) |
- { |
- &countentry($key, $value); |
- delete $fips_found{$salt_names{$key}}; |
- } |
-while (($key, $value) = each %fips_found) |
- { |
- &countentry($key, $value); |
- } |
- |
-# If no fatal errors write out the script file |
- $outfile = "fipstests.sh" unless defined $outfile; |
- open(OUT, ">$outfile") || die "Error opening $outfile: $!"; |
- print OUT $bufinit; |
- if (!$rspignore && @bogus) |
- { |
- print STDERR "ERROR: please remove bogus *.rsp files\n"; |
- print OUT <<EOF; |
-echo $outfile generation failed due to presence of bogus *.rsp files |
-EOF |
- } |
- else |
- { |
- print OUT $bufout; |
- } |
- close OUT; |
- |
-# Check for external programs |
- for (keys %_programs) |
- { |
- s/ .*$//; |
- -x $_ || print STDERR "WARNING: program $_ not found\n"; |
- } |
- |
-#-------------------------------- |
-sub Help { |
-(my $cmd) = ($0 =~ m#([^/]+)$#); |
- print <<EOF; |
-$cmd: generate script for CMVP algorithm tests |
- --debug Enable debug output |
- --dir=<dirname> Optional root for *.req file search |
- --filter=<regexp> |
- --onedir <dirname> Assume all components in current directory |
- --outfile=<filename> Optional name of output script, default fipstests.{sh|bat} |
- --rspdir=<dirname> Name of subdirectories containing *.rsp files, default "resp" |
- --rspignore Ignore any bogus *.rsp files |
- --shwrap_prefix=<prefix> |
- --tprefix=<prefix> |
- --quiet Shhh.... |
- --win32 Generate script for Win32 environment |
-EOF |
-} |
- |
-#-------------------------------- |
-sub countentry { |
- my ($key,$value) = @_; |
- if ($value == 0) |
- { |
- print STDERR "WARNING: test file $key not found\n" unless $quiet; |
- } |
- elsif ($value > 1) |
- { |
- print STDERR "WARNING: test file $key found $value times\n" unless $quiet; |
- } |
- else |
- { |
- print STDERR "Found test file $key\n" if $debug; |
- } |
- } |
- |
-#-------------------------------- |
-sub recurse_test |
- { |
- my ($win32, $tprefix, $filter, $dir) = @_; |
- my $dirh; |
- opendir($dirh, $dir); |
- while ($_ = readdir($dirh)) |
- { |
- next if ($_ eq "." || $_ eq ".."); |
- $_ = "$dir/$_"; |
- if (-f "$_") |
- { |
- if (/\/([^\/]*)\.rsp$/) |
- { |
- if (exists $fips_tests{$1}) |
- { |
- $debug && print "DEBUG: $1 found, will be overwritten\n"; |
- } |
- else |
- { |
- print STDERR "ERROR: bogus file $_\n"; |
- push @bogus, $_; |
- } |
- } |
- next unless /$filter.*\.req$/i; |
- if (/\/([^\/]*)\.req$/ && exists $fips_tests{$1}) |
- { |
- $fips_found{$1}++; |
- test_line($win32, $_, $tprefix, $1); |
- } |
- elsif (! /SHAmix\.req$/) |
- { |
- print STDERR "WARNING: unrecognized filename $_\n"; |
- } |
- } |
- elsif (-d "$_") |
- { |
- if (/$filter.*req$/i) |
- { |
- test_dir($win32, $_); |
- } |
- recurse_test($win32, $tprefix, $filter, $_); |
- } |
- } |
- closedir($dirh); |
- } |
- |
-#-------------------------------- |
-sub test_dir |
- { |
- my ($win32, $req) = @_; |
- my $rsp = $req; |
- $rsp =~ s/req$/$rspdir/; |
- if ($win32) |
- { |
- $rsp =~ tr|/|\\|; |
- $req =~ tr|/|\\|; |
- $bufout .= <<END; |
- |
-echo Running tests in $req |
-if exist "$rsp" rd /s /q "$rsp" |
-md "$rsp" |
-END |
- } |
- else |
- { |
- $bufout .= <<END; |
- |
-echo Running tests in "$req" |
-rm -rf "$rsp" |
-mkdir "$rsp" |
- |
-END |
- } |
- } |
- |
-#-------------------------------- |
-sub test_line |
- { |
- my ($win32, $req, $tprefix, $tnam) = @_; |
- my $rsp = $req; |
- my $tcmd = $fips_tests{$tnam}; |
- $rsp =~ s/req\/([^\/]*).req$/$rspdir\/$1.rsp/; |
- if ($tcmd =~ /-f$/) |
- { |
- if ($win32) |
- { |
- $req =~ tr|/|\\|; |
- $rsp =~ tr|/|\\|; |
- $bufout .= "$tprefix$tcmd \"$req\" \"$rsp\"\n"; |
- $_programs{"$tprefix$tcmd.exe"} = 1; |
- } |
- else |
- { |
- $bufout .= <<END; |
-${shwrap_prefix}shlib_wrap.sh $tprefix$tcmd "$req" "$rsp" || { echo "$req failure" ; exit 1 |
-} |
-END |
- $_programs{"${shwrap_prefix}shlib_wrap.sh"} = 1; |
- $_programs{"$tprefix$tcmd"} = 1; |
- } |
- return; |
- } |
- if ($tcmd =~ /SALT$/) |
- { |
- open (IN, $req) || die "Can't Open File $req"; |
- my $saltlen; |
- while (<IN>) |
- { |
- if (/^\s*#\s*salt\s+len:\s+(\d+)\s*$/i) |
- { |
- my $sl = $1; |
- print STDERR "$req salt length $sl\n" if $debug; |
- $tcmd =~ s/SALT$/$sl/; |
- $salt_found{"$tnam (salt $sl)"}++; |
- last; |
- } |
- } |
- close IN; |
- if ($tcmd =~ /SALT$/) |
- { |
- die "Can't detect salt length for $req"; |
- } |
- } |
- |
- if ($win32) |
- { |
- $req =~ tr|/|\\|; |
- $rsp =~ tr|/|\\|; |
- $bufout .= "$tprefix$tcmd < \"$req\" > \"$rsp\"\n"; |
- $_programs{"$tprefix$tcmd.exe"} = 1; |
- } |
- else |
- { |
- $bufout .= <<END; |
-${shwrap_prefix}shlib_wrap.sh $tprefix$tcmd < "$req" > "$rsp" || { echo "$req failure" ; exit 1; } |
-END |
- $_programs{"$tprefix$tcmd"} = 1; |
- } |
- } |
- |