"DSA",
- [ "PQGGen", "fips_dssvs pqg", "path:/DSA/.*PQGGen" ],
- [ "KeyPair", "fips_dssvs keypair", "path:/DSA/.*KeyPair" ],
- [ "SigGen", "fips_dssvs siggen", "path:/DSA/.*SigGen" ],
- [ "SigVer", "fips_dssvs sigver", "path:/DSA/.*SigVer" ]
+ [ "PQGGen", "fips_dssvs pqg", "path:[^C]DSA/.*PQGGen" ],
+ [ "KeyPair", "fips_dssvs keypair", "path:[^C]DSA/.*KeyPair" ],
+ [ "SigGen", "fips_dssvs siggen", "path:[^C]DSA/.*SigGen" ],
+ [ "SigVer", "fips_dssvs sigver", "path:[^C]DSA/.*SigVer" ]
);
my @fips_dsa_pqgver_test_list = (
- [ "PQGVer", "fips_dssvs pqgver", "path:/DSA/.*PQGVer" ]
+ [ "PQGVer", "fips_dssvs pqgver", "path:[^C]DSA/.*PQGVer" ]
);
"DSA2",
- [ "PQGGen", "fips_dssvs pqg", "path:/DSA2/.*PQGGen" ],
- [ "KeyPair", "fips_dssvs keypair", "path:/DSA2/.*KeyPair" ],
- [ "SigGen", "fips_dssvs siggen", "path:/DSA2/.*SigGen" ],
- [ "SigVer", "fips_dssvs sigver", "path:/DSA2/.*SigVer" ],
- [ "PQGVer", "fips_dssvs pqgver", "path:/DSA2/.*PQGVer" ]
+ [ "PQGGen", "fips_dssvs pqg", "path:[^C]DSA2/.*PQGGen" ],
+ [ "KeyPair", "fips_dssvs keypair", "path:[^C]DSA2/.*KeyPair" ],
+ [ "SigGen", "fips_dssvs siggen", "path:[^C]DSA2/.*SigGen" ],
+ [ "SigVer", "fips_dssvs sigver", "path:[^C]DSA2/.*SigVer" ],
+ [ "PQGVer", "fips_dssvs pqgver", "path:[^C]DSA2/.*PQGVer" ]
);
# SP800-90 DRBG tests
"SP800-90 DRBG",
[ "CTR_DRBG", "fips_drbgvs" ],
+ [ "Dual_EC_DRBG", "fips_drbgvs" ],
[ "Hash_DRBG", "fips_drbgvs" ],
[ "HMAC_DRBG", "fips_drbgvs" ]
# ECDH
"ECDH Ephemeral Primitives Only",
- [ "KAS_ECC_CDH_PrimitiveTest", "fips_ecdhvs WTF" ],
+ [ "KAS_ECC_CDH_PrimitiveTest", "fips_ecdhvs ecdhgen" ],
# [ "KASValidityTest_ECCEphemeralUnified_NOKC_ZZOnly_init",
# "fips_ecdhvs ecdhver" ],
# [ "KASValidityTest_ECCEphemeralUnified_NOKC_ZZOnly_resp",
my $quiet = 0;
my $notest = 0;
my $verify = 1;
-my $rspdir = "rsp";
+my $rspdir = "resp";
my $ignore_missing = 0;
my $ignore_bogus = 0;
my $bufout = '';
--dir=<dirname> Optional root for *.req file search
--filter=<regexp>
--onedir <dirname> Assume all components in current directory
- --rspdir=<dirname> Name of subdirectories containing *.rsp files, default "rsp"
+ --rspdir=<dirname> Name of subdirectories containing *.rsp files, default "resp"
--tprefix=<prefix>
--ignore-bogus Ignore duplicate or bogus files
--ignore-missing Ignore missing test files
my ( $tname, $rsp, $tst ) = @_;
my ( $rspf, $tstf );
my ( $rspline, $tstline );
+ my $monte = 0;
if ( !open( $rspf, $rsp ) ) {
print STDERR "ERROR: can't open request file $rsp\n";
return 0;
print STDERR "ERROR: can't open output file $tst\n";
return 0;
}
+ $monte = 1 if ($rsp =~ /Monte[123]/);
for ( ; ; ) {
$rspline = next_line($rspf);
$tstline = next_line($tstf);
print STDERR "DEBUG: $tname file comparison OK\n" if $debug;
return 1;
}
+ # Workaround for old broken DES3 MCT format which added bogus
+ # extra lines: after [ENCRYPT] or [DECRYPT] skip until first
+ # COUNT line.
+ if ($monte) {
+ if ($rspline =~ /CRYPT/) {
+ do {
+ $rspline = next_line($rspf);
+ } while (defined($rspline) && $rspline !~ /COUNT/);
+ }
+ if ($tstline =~ /CRYPT/) {
+ do {
+ $tstline = next_line($tstf);
+ } while (defined($tstline) && $tstline !~ /COUNT/);
+ }
+ }
if ( !defined($rspline) ) {
print STDERR "ERROR: $tname EOF on $rsp\n";
return 0;