X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Ffips-186-test-harness.pl;h=622615969252d8d98dd90f4ceece2c4f2786eb4d;hb=0166704599d99e8ebe91b1b3542c0e0c2a81ee77;hp=16a82312022ed1dd905affec87ce3cbbb30aaf3f;hpb=2d0f4af2b7815eed9bdc1292f9059025eb2380d7;p=asdcplib.git diff --git a/src/fips-186-test-harness.pl b/src/fips-186-test-harness.pl index 16a8231..6226159 100755 --- a/src/fips-186-test-harness.pl +++ b/src/fips-186-test-harness.pl @@ -1,26 +1,73 @@ -#!/usr/bin/perl +#!/usr/bin/env perl # +# Copyright (c) 2003-2009, John Hurst +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# +# +# $Id$ # + + use strict; my $rng_prog = $ARGV[0]; die "Expecting RNG program name as argument" unless ( -x $rng_prog ); my $test_count = 0; +my $rounds = 2; +my $i = 0; while ( my $line = ) { - if ( $line =~ /^XKey = (\w{40})/ ) { - my $XKey = $1; - my $XSeed = ; - my $Xval = ; - die if ( $Xval !~ /^X = (\w{80})/ ); - $Xval = $1; - system("$rng_prog $XKey $Xval"); - die "Test vector failure at test $test_count: $XKey $ Xval\n" if ( $? != 0 ); - print STDERR '.'; - $test_count++; - } + if ( $line =~ /^/ ) { + $rounds = 10000; + next; + } + +# next if ($rounds == 2); + + if ( $line =~ /^b = (\d+)/ ) { + my $vlen = $1; + + my $XKey = ; + die if ( $XKey !~ /^XKey = (\w+)/ ); + $XKey = $1; + + my $XSeed = ; + + my $Xval = ; + die if ( $Xval !~ /^X = (\w+)/ ); + $Xval = $1; + + system("$rng_prog $rounds $vlen $XKey $Xval"); + my $ret = $?; + die "\nTest vector failure at test $test_count: r=$rounds b=$vlen k=$XKey v=$Xval ($ret)\n" if ( $ret != 0 ); + print STDERR '.'; + $test_count++; + } } print STDERR "\nfound $test_count test cases\n" @@ -990,3 +1037,282 @@ XKey = ffffffffffffffffffffffffffffffffffffffff XSeed = 0000000000000000000000000000000000000000 X = ce8dd97eb53de8b8997d71af15eed31ffc822deb269cb566a0a9645811a3d9c977c5d8fbe8ddf6bb +# CAVS 5.0 +# "FIPS 186 - General Purpose" information for "rngtestvalues" +# Generators selected: Xorg Xchange +# G-Functions selected: SHA-1 DES +# Generated on Wed Feb 08 15:20:53 2006 + + +[Xorg - SHA1] + +COUNT = 0 +b = 160 +XKey = 1c670cfd3b421f21fdb0f3885a204eb659ca9740 +XSeed = 0000000000000000000000000000000000000000 +X = e5121116d1a99e62902ffd279261500e0e16b0f3 + +COUNT = 1 +b = 168 +XKey = d87f639afea75ba44bbc6bd0fb5ac84a12c2c6ed95 +XSeed = 000000000000000000000000000000000000000000 +X = 09328f082e48135784d39f9f0ec67911ef708788 + +COUNT = 2 +b = 176 +XKey = f0ecfa38f93823dcf6c918432d1d72731f02d74cbafa +XSeed = 00000000000000000000000000000000000000000000 +X = 1675536299b8a05236cc460944e691e952adbb80 + +COUNT = 3 +b = 184 +XKey = 574508895ccfdcf4a1ad8284ad94eb3321f5d1a4a6244b +XSeed = 0000000000000000000000000000000000000000000000 +X = f90c11ae695df29ae707a187a2eeeea92dcbd84b + +COUNT = 4 +b = 192 +XKey = 6e9d90254b9534d3ae680c9ab38d434114a58715fd00758b +XSeed = 000000000000000000000000000000000000000000000000 +X = d562e8d50a86de701d6fb076a378282bae721849 + +COUNT = 5 +b = 200 +XKey = 3477f6949b5278183169e9decf0010e683be87afe3b1b357a1 +XSeed = 00000000000000000000000000000000000000000000000000 +X = d954bc9c0537484f8ec13f4dde1905e3441dbac0 + +COUNT = 6 +b = 208 +XKey = 533acb38c61100b152c326c7b4ea027df73b07c94309ca3cf60a +XSeed = 0000000000000000000000000000000000000000000000000000 +X = 14b266d8c1fd4871104dd4f91c6d6d15c8e76c37 + +COUNT = 7 +b = 216 +XKey = 21392b55c4e3af82523cdf81eaf1868055bd3e3ea18236c30b9833 +XSeed = 000000000000000000000000000000000000000000000000000000 +X = 7318576beb22084349f749d7ca615f1333f6bff4 + +COUNT = 8 +b = 224 +XKey = b33ba749e3057b7a8aa61f3c78771655710157323bc1fecef62842d5 +XSeed = 00000000000000000000000000000000000000000000000000000000 +X = a24fa133c2e5ae5a2378af37e6097e1b5f503dd0 + +COUNT = 9 +b = 232 +XKey = 2c685c7482c85777d9de02ee550fc2f5aa0e0f76319f27043ba10407a5 +XSeed = 0000000000000000000000000000000000000000000000000000000000 +X = fceae60fcdda5782a43916d23c133d4aa59588f9 + +COUNT = 10 +b = 240 +XKey = aaa6e9a6525a0dbebf306a487f168bb31411ac5b3d761e5b775deda2c253 +XSeed = 000000000000000000000000000000000000000000000000000000000000 +X = c87d4f6f1dfff1c7c0517a3ba478ea3db40c915d + +COUNT = 11 +b = 248 +XKey = 5061d23eb06b7844fcad7e0b55d6abd6455775cca2bc0cf1b53d9a559c90c9 +XSeed = 00000000000000000000000000000000000000000000000000000000000000 +X = 96116ca45240c44249b8265d736572a3555d4bd8 + +COUNT = 12 +b = 256 +XKey = b436c1e06d76015c85d145cfb2f513f2dbffa7682b3ea09f6539f8f777f33926 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000 +X = 8123d23bdb6379a8383a25fda023af25ec0dd8d0 + +COUNT = 13 +b = 264 +XKey = b6fb9e128dc5985f3a49ab84ee0336f8954318a9b681bbef9bf052beb3555e2134 +XSeed = 000000000000000000000000000000000000000000000000000000000000000000 +X = dcbd4dc592d2eadff08c532614ae28c030e9b60c + +COUNT = 14 +b = 272 +XKey = fe9e57d121e2bd431c41f1f757d2bd5b141c98daa47e795fdbcfed15c14168728a8b +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000 +X = 1945ac66fd792852da50b72e33bac69ed3ce9bbd + +COUNT = 15 +b = 280 +XKey = 635debc0f6a35bea4b6de3db176b06600370d9840375feb1e3e1d6172308f35104f1cc +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000 +X = 72b363e7676288180c41d42a0934714c745bdbb0 + +COUNT = 16 +b = 288 +XKey = 66682eeb3ba396a7654d5e3e1230376d9c8d710f00bb13e493112a92f00661e93597d26b +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000 +X = 1d7d5a287a2198fc2ed407838521c6be1d7cd11d + +COUNT = 17 +b = 296 +XKey = 575289a193c212b874e690bf22d807b568c63a66b9eaccf871bca5c05e66975a7f7841f80b +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000 +X = 5c9f11ba4939c6ce67bdc0c35aaa418151b0b9d0 + +COUNT = 18 +b = 304 +XKey = 6df2a963884ec9a615e398d010cc91026060845b01c0de2362ac2b490c9bd910850a3f057414 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 6a244d9944384feb512d4e080d308096ddfe8066 + +COUNT = 19 +b = 312 +XKey = 2c4b6df63cb790996f0c032657e608a76b2af9d9ff30df77732841bbaab63a23bde0ce71f12a7e +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = f2c6c8fe88d73a1940d0de419ffebc5b2070c5c7 + +COUNT = 20 +b = 320 +XKey = dfb6bfe8d24fd6395c811928a7953aee1a2de5d6e484f69fd9f7e9227ec591355f130dcea933f96c +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 54c4809627894c7be99d752be77a41a71e1177bc + +COUNT = 21 +b = 328 +XKey = 5ae22f47f7301856ada0553c6191977adfb39b64791df5d4f19a0d1f9a446748b95527743139d49e60 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 44ed62cc4a46740532b1178c75919e55598a3094 + +COUNT = 22 +b = 336 +XKey = ee2ef8ae409bc544bda6637166568b93721db4d7a9b194ac0e17e378c000628922591c4e3a1eebc7576f +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 98e18826178499f6b5e9f7dbbc7fbb5ea8ece400 + +COUNT = 23 +b = 344 +XKey = d071c39a5d2e9a2aaf716f1ad84c16ba74411d3597615dcd04b6cf68a0dfa14c26fa89271bc75a520509d5 +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 5f8264026559da35e0bea1fdab8bc967079b1fd9 + +COUNT = 24 +b = 352 +XKey = 369b80c1a1c6fb9d69a01c727cece3547371544418631d4a252079c44f1d54fd831fb00170ae47b045c67212 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 148e0ecee150cb59b1ee70586e0f493b74dda65d + +COUNT = 25 +b = 360 +XKey = d0a014bda380b171255b36e40f20a69821957dae52eff01229a077f36b708976f6cfa6abed699bc015fc02747f +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 1a67a8bcdffd0e07606288fb0bb0726b36b259bf + +COUNT = 26 +b = 368 +XKey = aae6ae0f2eb856f812733764e7ec1cfc7d49e92e61703738a5c03f83dffef933749285fc17f3c9378c605c35b2d1 +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 10b3ebf6cd54131ce1e902829a0ab251f193eb24 + +COUNT = 27 +b = 376 +XKey = f36b395eb02579985875f6183210e452b91c20bd58e4172772d1e44ba596b8a550aa7f8552fbc06315e1c572cc50fd +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 110bb9281f2e1ffac8252473be9f1ef2629513f0 + +COUNT = 28 +b = 384 +XKey = 7af1449287ffbf7428814dd6217aee8695d7f463760a121e40f6b642e70b98720db293f279ebb56ac53492e656aedd20 +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 08ea8feab6b529788d904bdbd43b9db583c95b3c + +COUNT = 29 +b = 392 +XKey = 94a62f890e754bda69b6d2a71a9c7cda337b99902d80f76ee4a00638e3ce3a9fe271b15b8d15167a8760c5f8af482f8fa2 +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = c65ba4525e3bb1f083ac1bd971d952d8fb4ea820 + +COUNT = 30 +b = 400 +XKey = 417891bdbf562d87c93ca9c53aac522161c793e8a762bcbe725b0391492dc9cb38c31ecc768a869745cafdcb1a363ad6fec2 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 09ffcbaca867d86fb5a90e44ad5d60b96b52e090 + +COUNT = 31 +b = 408 +XKey = 999a1eeca775bdbe61f3772f6cfc28ff95f13745ac35100e95ecd4479c024edd096f2a22f4ba61735bbcf81872a7ea6b3a4763 +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = f2fef1651d92847c0facc14799153aac54289afc + +COUNT = 32 +b = 416 +XKey = 41f80eca8e883ceb6a772453131c922d542749c2a93248a4a4994c2c8f8c96275362eecd9930e8f32e9b6681acea5e255760de49 +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = e750fd8a3815189e7b1ffba65760c6896773195f + +COUNT = 33 +b = 424 +XKey = 7eae482dcfa5e02acf05e105db48283f440640439a24ca3b2a482228c58f3f32c383db3c4847d4bcc615d3cac3eb2b77dd80045f0b +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 26e00f1ea68d5bde0c820837c18f564347507dc9 + +COUNT = 34 +b = 432 +XKey = d8143b6190d098d8c0b9af5c175344b602e6d086732e6b96e054ef688e1d5b110f62754a0ac0b4c53a905cbdb919ebd17f05b4122512 +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 60ac25c92a8c7da14edfebde25a97646474c9009 + +COUNT = 35 +b = 440 +XKey = 6f54f8051f7c172493f282be71942d4a65285560bca1b61b2f9effc1fc3483a63ced314d7010c6d15d2341831aaf97d56743a97740bb73 +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 1130c281c88ecad60736ac5bf6c9db4fc2e8334a + +COUNT = 36 +b = 448 +XKey = ca82c17fc3ac423e00c8b7c6f48bd0976d9e60c973f460fe735c37959d5239208a1b6d18221193d0bd3b65a888201e832bdd397ba8767bd3 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 8da6754cadeb3f9121239381de1ff40061abe07e + +COUNT = 37 +b = 456 +XKey = 058f0d2e2a8b17581ab00d8b7ed2fef2e21dfaa60b120fd28acc771591880f2706640bc0d667e8b58cc2a3642255295316750e14c1ed816ce5 +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 5fd13163fb1fe4417fe96d7fb13ef2577f5868b2 + +COUNT = 38 +b = 464 +XKey = a8806c3e36700c4b8b45555dc9679bcb036fa3924fe85a3d1d57c708c77a3f4469ced8fdf25320db7b930e46d8e138cd6ddf47c94343a83d5cda +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 5704c42642beaa28896816eb196d2cf6b3de61f6 + +COUNT = 39 +b = 472 +XKey = 1a02d007f03b34ed427631283eb614db4d521f555136e7e42b4cfbee8134c63dbe3bb79b5a8b9f9f5b9f5ac61cfab1c54d197f1e3ba613f251eed6 +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = f6f672ba423d82f4e86d1c7a41b4547972e859de + +COUNT = 40 +b = 480 +XKey = 28c1adb2742ac3b9c15d22f737ac5ffd34d0e5d79ee6ea3677b7a2cfb13cb2fe4462e7af7f0a287e9b54a91d961d62f63fc6c0128d379a3a3424665c +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 4596045105a7e36296b9ad7353723ba306353004 + +COUNT = 41 +b = 488 +XKey = 195adc728e0ec4f0b210b57658b448860e219231ad9d56812e0b7815bfb1b50b163f9223060d922050a5ac72bb81fc136716b9af5e1167076ce04e9731 +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 3e573f2a097c3568c9cf52f20eb141e63f9f776e + +COUNT = 42 +b = 496 +XKey = 866db552cf4745908fdf35d4c0967428d56039b1f223df315c61f2d12f178a1e4fe5d751a06efed37a022300577bc72ccf6455e3c761f775e5caaeb2479a +XSeed = 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 0077207b39f67aa80cb2ea90818440d4e5ccc414 + +COUNT = 43 +b = 504 +XKey = 641846ce2ba4396a391651179231d553c9061c6619bd4545b29228b6511e8bb513d89a168bdb916d12eabc2b5eb1a109574d7caa250feb7b8e7debdf7f9a03 +XSeed = 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = 2166c4e99be5dc0cdc747c7c6d27105a8e115ba5 + +COUNT = 44 +b = 512 +XKey = 5cbb6d193c13bd62f5658ed4304774c6b1faf5b3dce432487840cabab415fb5d67640a739ca6e5414e760869708a9d7331e7e7ad7d55e035c711215406c3030d +XSeed = 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +X = a2322c754fe789af3afae00b9fbbbd613076ea9f +