-sub run_reencode_test
- {
- my ($cmsdir, $tfile) = @_;
- unlink "tmp.der";
-
- system ("$cmscmd -cmsout -inform DER -outform DER" .
- " -in $cmsdir/$tfile -out tmp.der");
-
- if ($?)
- {
- print "\tReencode command FAILED!!\n";
- $badtest++;
- }
- elsif (!cmp_files("$cmsdir/$tfile", "tmp.der"))
- {
- print "\tReencode FAILED!!\n";
- $badtest++;
- }
- else
- {
- print "\tReencode passed\n" if $verbose;
- }
- }
-
-sub run_dataout_test
- {
- my ($cmsdir, $tfile) = @_;
- unlink "tmp.txt";
-
- system ("$cmscmd -data_out -inform DER" .
- " -in $cmsdir/$tfile -out tmp.txt");
-
- if ($?)
- {
- print "\tDataout command FAILED!!\n";
- $badtest++;
- }
- elsif (!cmp_files("$cmsdir/ExContent.bin", "tmp.txt"))
- {
- print "\tDataout compare FAILED!!\n";
- $badtest++;
- }
- else
- {
- print "\tDataout passed\n" if $verbose;
- }
- }
-
-sub run_verify_test
- {
- my ($cmsdir, $tlist, $tfile) = @_;
- unlink "tmp.txt";
-
- $form = "DER" if $tlist =~ /verifyder/;
- $form = "SMIME" if $tlist =~ /verifymime/;
- $cafile = "$cmsdir/CarlDSSSelf.pem" if $tlist =~ /dss/;
- $cafile = "$cmsdir/CarlRSASelf.pem" if $tlist =~ /rsa/;
-
- $cmd = "$cmscmd -verify -inform $form" .
- " -CAfile $cafile" .
- " -in $cmsdir/$tfile -out tmp.txt";
-
- $cmd .= " -content $cmsdir/ExContent.bin" if $tlist =~ /cont_extern/;
-
- system ("$cmd 2>cms.err 1>cms.out");
-
- if ($?)
- {
- print "\tVerify command FAILED!!\n";
- $badtest++;
- }
- elsif ($tlist =~ /cont/ &&
- !cmp_files("$cmsdir/ExContent.bin", "tmp.txt"))
- {
- print "\tVerify content compare FAILED!!\n";
- $badtest++;
- }
- else
- {
- print "\tVerify passed\n" if $verbose;
- }
- }
-
-sub run_envelope_test
- {
- my ($cmsdir, $tlist, $tfile) = @_;
- unlink "tmp.txt";
-
- $form = "DER" if $tlist =~ /envelopeder/;
- $form = "SMIME" if $tlist =~ /envelopemime/;
-
- $cmd = "$cmscmd -decrypt -inform $form" .
- " -recip $cmsdir/BobRSASignByCarl.pem" .
- " -inkey $cmsdir/BobPrivRSAEncrypt.pem" .
- " -in $cmsdir/$tfile -out tmp.txt";
-
- system ("$cmd 2>cms.err 1>cms.out");
-
- if ($?)
- {
- print "\tDecrypt command FAILED!!\n";
- $badtest++;
- }
- elsif ($tlist =~ /cont/ &&
- !cmp_files("$cmsdir/ExContent.bin", "tmp.txt"))
- {
- print "\tDecrypt content compare FAILED!!\n";
- $badtest++;
- }
- else
- {
- print "\tDecrypt passed\n" if $verbose;
- }
- }
-
-sub run_digest_test
- {
- my ($cmsdir, $tlist, $tfile) = @_;
- unlink "tmp.txt";
-
- my $cmd = "$cmscmd -digest_verify -inform DER" .
- " -in $cmsdir/$tfile -out tmp.txt";
-
- system ("$cmd 2>cms.err 1>cms.out");
-
- if ($?)
- {
- print "\tDigest verify command FAILED!!\n";
- $badtest++;
- }
- elsif ($tlist =~ /cont/ &&
- !cmp_files("$cmsdir/ExContent.bin", "tmp.txt"))
- {
- print "\tDigest verify content compare FAILED!!\n";
- $badtest++;
- }
- else
- {
- print "\tDigest verify passed\n" if $verbose;
- }
- }
-
-sub run_encrypted_test
- {
- my ($cmsdir, $tlist, $tfile, $key) = @_;
- unlink "tmp.txt";
-
- system ("$cmscmd -EncryptedData_decrypt -inform DER" .
- " -secretkey $key" .
- " -in $cmsdir/$tfile -out tmp.txt");
-
- if ($?)
- {
- print "\tEncrypted Data command FAILED!!\n";
- $badtest++;
- }
- elsif ($tlist =~ /cont/ &&
- !cmp_files("$cmsdir/ExContent.bin", "tmp.txt"))
- {
- print "\tEncrypted Data content compare FAILED!!\n";
- $badtest++;
- }
- else
- {
- print "\tEncryptedData verify passed\n" if $verbose;
- }
- }
-
-sub cmp_files
- {
- my ($f1, $f2) = @_;
- my ($fp1, $fp2);
-
- my ($rd1, $rd2);
-
- if (!open($fp1, "<$f1") ) {
- print STDERR "Can't Open file $f1\n";
- return 0;
- }
-
- if (!open($fp2, "<$f2") ) {
- print STDERR "Can't Open file $f2\n";
- return 0;
- }
-
- binmode $fp1;
- binmode $fp2;
-
- my $ret = 0;
-
- for (;;)
- {
- $n1 = sysread $fp1, $rd1, 4096;
- $n2 = sysread $fp2, $rd2, 4096;
- last if ($n1 != $n2);
- last if ($rd1 ne $rd2);
-
- if ($n1 == 0)
- {
- $ret = 1;
- last;
- }
-
- }
-
- close $fp1;
- close $fp2;
-
- return $ret;
-
- }
+sub run_dataout_test {
+ my ( $cmsdir, $tfile ) = @_;
+ unlink "tmp.txt";
+
+ system(
+ "$cmscmd -data_out -inform DER" . " -in $cmsdir/$tfile -out tmp.txt" );
+
+ if ($?) {
+ print "\tDataout command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) ) {
+ print "\tDataout compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tDataout passed\n" if $verbose;
+ }
+}
+
+sub run_verify_test {
+ my ( $cmsdir, $tlist, $tfile ) = @_;
+ unlink "tmp.txt";
+
+ $form = "DER" if $tlist =~ /verifyder/;
+ $form = "SMIME" if $tlist =~ /verifymime/;
+ $cafile = "$cmsdir/CarlDSSSelf.pem" if $tlist =~ /dss/;
+ $cafile = "$cmsdir/CarlRSASelf.pem" if $tlist =~ /rsa/;
+
+ $cmd =
+ "$cmscmd -verify -inform $form"
+ . " -CAfile $cafile"
+ . " -in $cmsdir/$tfile -out tmp.txt";
+
+ $cmd .= " -content $cmsdir/ExContent.bin" if $tlist =~ /cont_extern/;
+
+ system("$cmd 2>cms.err 1>cms.out");
+
+ if ($?) {
+ print "\tVerify command FAILED!!\n";
+ $badtest++;
+ }
+ elsif ( $tlist =~ /cont/
+ && !cmp_files( "$cmsdir/ExContent.bin", "tmp.txt" ) )
+ {
+ print "\tVerify content compare FAILED!!\n";
+ $badtest++;
+ }
+ else {
+ print "\tVerify passed\n" if $verbose;
+ }
+}