diff --git a/bench2.cpp b/bench2.cpp index 308136ca..2f40919f 100644 --- a/bench2.cpp +++ b/bench2.cpp @@ -257,44 +257,44 @@ void BenchmarkAll2(double t, double hertz) cout << "OperationMilliseconds/Operation" << (g_hertz ? "Megacycles/Operation" : "") << endl; cout << "\n"; - BenchMarkCrypto > >("TestData/rsa1024.dat", "RSA 1024", t); - BenchMarkCrypto > >("TestData/luc1024.dat", "LUC 1024", t); - BenchMarkCrypto >("TestData/dlie1024.dat", "DLIES 1024", t); - BenchMarkCrypto >("TestData/lucc512.dat", "LUCELG 512", t); + BenchMarkCrypto > >(CRYPTOPP_DATA_DIR "TestData/rsa1024.dat", "RSA 1024", t); + BenchMarkCrypto > >(CRYPTOPP_DATA_DIR "TestData/luc1024.dat", "LUC 1024", t); + BenchMarkCrypto >(CRYPTOPP_DATA_DIR "TestData/dlie1024.dat", "DLIES 1024", t); + BenchMarkCrypto >(CRYPTOPP_DATA_DIR "TestData/lucc512.dat", "LUCELG 512", t); cout << "\n"; - BenchMarkCrypto > >("TestData/rsa2048.dat", "RSA 2048", t); - BenchMarkCrypto > >("TestData/luc2048.dat", "LUC 2048", t); - BenchMarkCrypto >("TestData/dlie2048.dat", "DLIES 2048", t); - BenchMarkCrypto >("TestData/lucc1024.dat", "LUCELG 1024", t); + BenchMarkCrypto > >(CRYPTOPP_DATA_DIR "TestData/rsa2048.dat", "RSA 2048", t); + BenchMarkCrypto > >(CRYPTOPP_DATA_DIR "TestData/luc2048.dat", "LUC 2048", t); + BenchMarkCrypto >(CRYPTOPP_DATA_DIR "TestData/dlie2048.dat", "DLIES 2048", t); + BenchMarkCrypto >(CRYPTOPP_DATA_DIR "TestData/lucc1024.dat", "LUCELG 1024", t); cout << "\n"; - BenchMarkSignature >("TestData/rsa1024.dat", "RSA 1024", t); - BenchMarkSignature >("TestData/rw1024.dat", "RW 1024", t); - BenchMarkSignature >("TestData/luc1024.dat", "LUC 1024", t); - BenchMarkSignature >("TestData/nr1024.dat", "NR 1024", t); - BenchMarkSignature("TestData/dsa1024.dat", "DSA 1024", t); - BenchMarkSignature >("TestData/lucs512.dat", "LUC-HMP 512", t); - BenchMarkSignature >("TestData/esig1023.dat", "ESIGN 1023", t); - BenchMarkSignature >("TestData/esig1536.dat", "ESIGN 1536", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/rsa1024.dat", "RSA 1024", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/rw1024.dat", "RW 1024", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/luc1024.dat", "LUC 1024", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/nr1024.dat", "NR 1024", t); + BenchMarkSignature(CRYPTOPP_DATA_DIR "TestData/dsa1024.dat", "DSA 1024", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/lucs512.dat", "LUC-HMP 512", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/esig1023.dat", "ESIGN 1023", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/esig1536.dat", "ESIGN 1536", t); cout << "\n"; - BenchMarkSignature >("TestData/rsa2048.dat", "RSA 2048", t); - BenchMarkSignature >("TestData/rw2048.dat", "RW 2048", t); - BenchMarkSignature >("TestData/luc2048.dat", "LUC 2048", t); - BenchMarkSignature >("TestData/nr2048.dat", "NR 2048", t); - BenchMarkSignature >("TestData/lucs1024.dat", "LUC-HMP 1024", t); - BenchMarkSignature >("TestData/esig2046.dat", "ESIGN 2046", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/rsa2048.dat", "RSA 2048", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/rw2048.dat", "RW 2048", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/luc2048.dat", "LUC 2048", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/nr2048.dat", "NR 2048", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/lucs1024.dat", "LUC-HMP 1024", t); + BenchMarkSignature >(CRYPTOPP_DATA_DIR "TestData/esig2046.dat", "ESIGN 2046", t); cout << "\n"; - BenchMarkKeyAgreement("TestData/xtrdh171.dat", "XTR-DH 171", t); - BenchMarkKeyAgreement("TestData/xtrdh342.dat", "XTR-DH 342", t); - BenchMarkKeyAgreement("TestData/dh1024.dat", "DH 1024", t); - BenchMarkKeyAgreement("TestData/dh2048.dat", "DH 2048", t); - BenchMarkKeyAgreement("TestData/lucd512.dat", "LUCDIF 512", t); - BenchMarkKeyAgreement("TestData/lucd1024.dat", "LUCDIF 1024", t); - BenchMarkKeyAgreement("TestData/mqv1024.dat", "MQV 1024", t); - BenchMarkKeyAgreement("TestData/mqv2048.dat", "MQV 2048", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/xtrdh171.dat", "XTR-DH 171", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/xtrdh342.dat", "XTR-DH 342", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/dh1024.dat", "DH 1024", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/dh2048.dat", "DH 2048", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/lucd512.dat", "LUCDIF 512", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/lucd1024.dat", "LUCDIF 1024", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/mqv1024.dat", "MQV 1024", t); + BenchMarkKeyAgreement(CRYPTOPP_DATA_DIR "TestData/mqv2048.dat", "MQV 2048", t); cout << "\n"; { diff --git a/config.h b/config.h index dad4e619..41647a6f 100644 --- a/config.h +++ b/config.h @@ -48,10 +48,17 @@ // Library version #define CRYPTOPP_VERSION 563 +// Define this if you want to set a prefix for TestData/ and TestVectors/ +// Be mindful of the trailing slash since its simple concatenation. +// g++ ... -DCRYPTOPP_DATA_DIR='"/tmp/cryptopp_test/share/"' +#ifndef CRYPTOPP_DATA_DIR +# define CRYPTOPP_DATA_DIR "" +#endif + // define this to retain (as much as possible) old deprecated function and class names // #define CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY -// define this to retain (as much as possible) ABI and binary compatibility with Crypto++ 5.6.2. +// Define this to retain (as much as possible) ABI and binary compatibility with Crypto++ 5.6.2. // Also see https://cryptopp.com/wiki/Config.h#Avoid_MAINTAIN_BACKWARDS_COMPATIBILITY #if (CRYPTOPP_VERSION <= 600) # if !defined(CRYPTOPP_NO_BACKWARDS_COMPATIBILITY_562) && !defined(CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562) diff --git a/config.recommend b/config.recommend index 6901e0fb..cf8e0860 100644 --- a/config.recommend +++ b/config.recommend @@ -28,7 +28,7 @@ # error "IS_LITTLE_ENDIAN is set, but __BYTE_ORDER__ does not equal __ORDER_LITTLE_ENDIAN__" #endif -// define this if you want to disable all OS-dependent features, +// Define this if you want to disable all OS-dependent features, // such as sockets and OS-provided random number generators // #define NO_OS_DEPENDENCE @@ -48,6 +48,13 @@ // Library version #define CRYPTOPP_VERSION 563 +// Define this if you want to set a prefix for TestData/ and TestVectors/ +// Be mindful of the trailing slash since its simple concatenation. +// g++ ... -DCRYPTOPP_DATA_DIR='"/tmp/cryptopp_test/share/"' +#ifndef CRYPTOPP_DATA_DIR +# define CRYPTOPP_DATA_DIR "" +#endif + // define this to retain (as much as possible) old deprecated function and class names // #define CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY diff --git a/cryptest.sh b/cryptest.sh index e07a5b43..de59d338 100755 --- a/cryptest.sh +++ b/cryptest.sh @@ -780,7 +780,7 @@ if [ "$HAVE_CXX03" -ne "0" ]; then "$MAKE" clean > /dev/null 2>&1 export CXXFLAGS="-DNDEBUG -O3 -std=c++03 $ADD_CXXFLAGS" "$MAKE" static cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" - ./cryptest.exe b 3 2.4+1e9 2>&1 | tee -a "$BENCHMARK_RESULTS" + ./cryptest.exe b 1 2.4+1e9 2>&1 | tee -a "$BENCHMARK_RESULTS" fi ############################################ @@ -795,7 +795,7 @@ if [ "$HAVE_CXX11" -ne "0" ]; then "$MAKE" clean > /dev/null 2>&1 export CXXFLAGS="-DNDEBUG -O3 -std=c++11 $ADD_CXXFLAGS" "$MAKE" static cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" - ./cryptest.exe b 3 2.4+1e9 2>&1 | tee -a "$BENCHMARK_RESULTS" + ./cryptest.exe b 1 2.4+1e9 2>&1 | tee -a "$BENCHMARK_RESULTS" fi # For Cygwin, we need to test both PREFER_BERKELEY_STYLE_SOCKETS @@ -865,7 +865,6 @@ if [ "$HAVE_VALGRIND" -ne "0" ] && [ "$HAVE_CXX11" -ne "0" ]; then valgrind --track-origins=yes ./cryptest.exe tv all 2>&1 | tee -a "$TEST_RESULTS" fi -############################################ ############################################ if [ "$CXX" == "g++" ] && [ "$HAVE_CXX11" -ne "0" ]; then @@ -895,14 +894,14 @@ if [ "$CXX" == "g++" ] && [ "$HAVE_CXX11" -ne "0" ]; then "$MAKE" static dynamic cryptest.exe 2>&1 | tee -a "$WARN_RESULTS" fi -############################################ ############################################ # If using GCC (likely Linux), then perform a quick check with Clang. # This check was added after testing on Ubuntu 14.04 with Clang 3.4. if [ "$CXX" == "g++" ]; then - $(which clang++ | head -1) -x c++ -c adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 + CLANG_COMPILER=$(which clang++) + "$CLANG_COMPILER" -x c++ -c adhoc.cpp.proto -o $TMP/adhoc > /dev/null 2>&1 if [ "$?" -eq "0" ]; then ############################################ @@ -912,15 +911,66 @@ if [ "$CXX" == "g++" ]; then echo "Testing: Clang" | tee -a "$TEST_RESULTS" echo - unset CXX unset CXXFLAGS - export CXX="clang++" - "$MAKE" clean > /dev/null 2>&1 - "$MAKE" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" + "$MAKE" CXX="$CLANG_COMPILER" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" + + ./cryptest.exe v 2>&1 | tee -a "$TEST_RESULTS" + ./cryptest.exe tv all 2>&1 | tee -a "$TEST_RESULTS" fi fi +############################################ + +# Test an install with CRYPTOPP_DATA_DIR + +echo +echo "************************************" | tee -a "$TEST_RESULTS" +echo "Testing: Test install with data directory" | tee -a "$TEST_RESULTS" +echo + +unset CXXFLAGS +"$MAKE" clean > /dev/null 2>&1 +rm -rf /tmp/cryptopp_test/ > /dev/null 2>&1 + +export CXXFLAGS="-DNDEBUG -g2 -O2 -DCRYPTOPP_DATA_DIR='\"/tmp/cryptopp_test/share/\"' " +"$MAKE" static dynamic cryptest.exe 2>&1 | tee -a "$TEST_RESULTS" + +# Still need to manulally place TestData and TestVectors +mkdir -p /tmp/cryptopp_test/share/TestData /tmp/cryptopp_test/share/TestVectors +cp -r TestData /tmp/cryptopp_test/share/ +cp -r TestVectors /tmp/cryptopp_test/share/ + +OLD_DIR=$(pwd) +make install PREFIX=/tmp/cryptopp_test/ 2>&1 | tee -a "$TEST_RESULTS" +cd /tmp/cryptopp_test/bin + +echo +echo "************************************" | tee -a "$TEST_RESULTS" +echo "Testing: Test install (validation suite)" | tee -a "$TEST_RESULTS" +echo +./cryptest.exe v 2>&1 | tee -a "$TEST_RESULTS" + +echo +echo "************************************" | tee -a "$TEST_RESULTS" +echo "Testing: Test install (test vectors)" | tee -a "$TEST_RESULTS" +echo +./cryptest.exe tv all 2>&1 | tee -a "$TEST_RESULTS" + +echo +echo "************************************" | tee -a "$TEST_RESULTS" +echo "Testing: Test install (benchmarks)" | tee -a "$TEST_RESULTS" +echo +./cryptest.exe b 1 2.4+1e9 2>&1 | tee -a "$BENCHMARK_RESULTS" + +echo +echo "************************************" | tee -a "$TEST_RESULTS" +echo "Testing: Test install (help file)" | tee -a "$TEST_RESULTS" +echo +./cryptest.exe h 2>&1 | tee -a "$BENCHMARK_RESULTS" + +cd "$OLD_DIR" + ############################################ ############################################ diff --git a/datatest.cpp b/datatest.cpp index 98b5b642..c99e2dbd 100644 --- a/datatest.cpp +++ b/datatest.cpp @@ -721,8 +721,15 @@ void OutputNameValuePairs(const NameValuePairs &v) } } -void TestDataFile(const std::string &filename, const NameValuePairs &overrideParameters, unsigned int &totalTests, unsigned int &failedTests) +void TestDataFile(std::string filename, const NameValuePairs &overrideParameters, unsigned int &totalTests, unsigned int &failedTests) { + static const std::string dataDirectory(CRYPTOPP_DATA_DIR); + if (!dataDirectory.empty()) + { + if(dataDirectory != filename.substr(0, dataDirectory.length())) + filename.insert(0, dataDirectory); + } + std::ifstream file(filename.c_str()); if (!file.good()) throw Exception(Exception::OTHER_ERROR, "Can not open file " + filename + " for reading"); @@ -805,7 +812,7 @@ bool RunTestDataFile(const char *filename, const NameValuePairs &overrideParamet { s_thorough = thorough; unsigned int totalTests = 0, failedTests = 0; - TestDataFile(filename, overrideParameters, totalTests, failedTests); + TestDataFile((filename ? filename : ""), overrideParameters, totalTests, failedTests); cout << dec << "\nTests complete. Total tests = " << totalTests << ". Failed tests = " << failedTests << ".\n"; if (failedTests != 0) cout << "SOME TESTS FAILED!\n"; diff --git a/test.cpp b/test.cpp index 646f09ea..a6a27005 100644 --- a/test.cpp +++ b/test.cpp @@ -279,6 +279,7 @@ int CRYPTOPP_API main(int argc, char *argv[]) DigestFile(argv[2]); else if (command == "tv") { + // TestDataFile() adds CRYPTOPP_DATA_DIR as required std::string fname = (argv[2] ? argv[2] : "all"); if (fname.find(".txt") == std::string::npos) fname = "TestVectors/" + fname + ".txt"; @@ -369,7 +370,7 @@ int CRYPTOPP_API main(int argc, char *argv[]) AES_CTR_Encrypt(argv[2], argv[3], argv[4], argv[5]); else if (command == "h") { - FileSource usage("TestData/usage.dat", true, new FileSink(cout)); + FileSource usage(CRYPTOPP_DATA_DIR "TestData/usage.dat", true, new FileSink(cout)); return 1; } else if (command == "V") diff --git a/validat1.cpp b/validat1.cpp index 144bdbf0..ba04cdc0 100644 --- a/validat1.cpp +++ b/validat1.cpp @@ -84,7 +84,7 @@ bool ValidateAll(bool thorough) pass=ValidateMD2() && pass; pass=ValidateMD5() && pass; pass=ValidateSHA() && pass; - pass=RunTestDataFile("TestVectors/sha3.txt") && pass; + pass=RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/sha3.txt") && pass; pass=ValidateTiger() && pass; pass=ValidateRIPEMD() && pass; pass=ValidatePanama() && pass; @@ -124,8 +124,8 @@ bool ValidateAll(bool thorough) pass=ValidateCCM() && pass; pass=ValidateGCM() && pass; pass=ValidateCMAC() && pass; - pass=RunTestDataFile("TestVectors/eax.txt") && pass; - pass=RunTestDataFile("TestVectors/seed.txt") && pass; + pass=RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/eax.txt") && pass; + pass=RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/seed.txt") && pass; pass=ValidateBBS() && pass; pass=ValidateDH() && pass; @@ -742,12 +742,12 @@ bool ValidateDES() { cout << "\nDES validation suite running...\n\n"; - FileSource valdata("TestData/descert.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/descert.dat", true, new HexDecoder); bool pass = BlockTransformationTest(FixedRoundsCipherFactory(), valdata); cout << "\nTesting EDE2, EDE3, and XEX3 variants...\n\n"; - FileSource valdata1("TestData/3desval.dat", true, new HexDecoder); + FileSource valdata1(CRYPTOPP_DATA_DIR "TestData/3desval.dat", true, new HexDecoder); pass = BlockTransformationTest(FixedRoundsCipherFactory(), valdata1, 1) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(), valdata1, 1) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(), valdata1, 1) && pass; @@ -1091,7 +1091,7 @@ bool ValidateIDEA() { cout << "\nIDEA validation suite running...\n\n"; - FileSource valdata("TestData/ideaval.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/ideaval.dat", true, new HexDecoder); return BlockTransformationTest(FixedRoundsCipherFactory(), valdata); } @@ -1099,7 +1099,7 @@ bool ValidateSAFER() { cout << "\nSAFER validation suite running...\n\n"; - FileSource valdata("TestData/saferval.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/saferval.dat", true, new HexDecoder); bool pass = true; pass = BlockTransformationTest(VariableRoundsCipherFactory(8,6), valdata, 4) && pass; pass = BlockTransformationTest(VariableRoundsCipherFactory(16,12), valdata, 4) && pass; @@ -1112,7 +1112,7 @@ bool ValidateRC2() { cout << "\nRC2 validation suite running...\n\n"; - FileSource valdata("TestData/rc2val.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/rc2val.dat", true, new HexDecoder); HexEncoder output(new FileSink(cout)); SecByteBlock plain(RC2Encryption::BLOCKSIZE), cipher(RC2Encryption::BLOCKSIZE), out(RC2Encryption::BLOCKSIZE), outplain(RC2Encryption::BLOCKSIZE); SecByteBlock key(128); @@ -1322,7 +1322,7 @@ bool ValidateRC5() { cout << "\nRC5 validation suite running...\n\n"; - FileSource valdata("TestData/rc5val.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/rc5val.dat", true, new HexDecoder); return BlockTransformationTest(VariableRoundsCipherFactory(16, 12), valdata); } @@ -1330,7 +1330,7 @@ bool ValidateRC6() { cout << "\nRC6 validation suite running...\n\n"; - FileSource valdata("TestData/rc6val.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/rc6val.dat", true, new HexDecoder); bool pass = true; pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 2) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), valdata, 2) && pass; @@ -1342,7 +1342,7 @@ bool ValidateMARS() { cout << "\nMARS validation suite running...\n\n"; - FileSource valdata("TestData/marsval.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/marsval.dat", true, new HexDecoder); bool pass = true; pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 4) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), valdata, 3) && pass; @@ -1354,12 +1354,12 @@ bool ValidateRijndael() { cout << "\nRijndael (AES) validation suite running...\n\n"; - FileSource valdata("TestData/rijndael.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/rijndael.dat", true, new HexDecoder); bool pass = true; pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 4) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), valdata, 3) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(32), valdata, 2) && pass; - pass = RunTestDataFile("TestVectors/aes.txt") && pass; + pass = RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/aes.txt") && pass; return pass; } @@ -1367,7 +1367,7 @@ bool ValidateTwofish() { cout << "\nTwofish validation suite running...\n\n"; - FileSource valdata("TestData/twofishv.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/twofishv.dat", true, new HexDecoder); bool pass = true; pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 4) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), valdata, 3) && pass; @@ -1379,7 +1379,7 @@ bool ValidateSerpent() { cout << "\nSerpent validation suite running...\n\n"; - FileSource valdata("TestData/serpentv.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/serpentv.dat", true, new HexDecoder); bool pass = true; pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 5) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), valdata, 4) && pass; @@ -1425,7 +1425,7 @@ bool ValidateThreeWay() { cout << "\n3-WAY validation suite running...\n\n"; - FileSource valdata("TestData/3wayval.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/3wayval.dat", true, new HexDecoder); return BlockTransformationTest(FixedRoundsCipherFactory(), valdata); } @@ -1433,7 +1433,7 @@ bool ValidateGOST() { cout << "\nGOST validation suite running...\n\n"; - FileSource valdata("TestData/gostval.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/gostval.dat", true, new HexDecoder); return BlockTransformationTest(FixedRoundsCipherFactory(), valdata); } @@ -1441,7 +1441,7 @@ bool ValidateSHARK() { cout << "\nSHARK validation suite running...\n\n"; - FileSource valdata("TestData/sharkval.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/sharkval.dat", true, new HexDecoder); return BlockTransformationTest(FixedRoundsCipherFactory(), valdata); } @@ -1451,14 +1451,14 @@ bool ValidateCAST() cout << "\nCAST-128 validation suite running...\n\n"; - FileSource val128("TestData/cast128v.dat", true, new HexDecoder); + FileSource val128(CRYPTOPP_DATA_DIR "TestData/cast128v.dat", true, new HexDecoder); pass = BlockTransformationTest(FixedRoundsCipherFactory(16), val128, 1) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(10), val128, 1) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(5), val128, 1) && pass; cout << "\nCAST-256 validation suite running...\n\n"; - FileSource val256("TestData/cast256v.dat", true, new HexDecoder); + FileSource val256(CRYPTOPP_DATA_DIR "TestData/cast256v.dat", true, new HexDecoder); pass = BlockTransformationTest(FixedRoundsCipherFactory(16), val256, 1) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), val256, 1) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(32), val256, 1) && pass; @@ -1470,7 +1470,7 @@ bool ValidateSquare() { cout << "\nSquare validation suite running...\n\n"; - FileSource valdata("TestData/squareva.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/squareva.dat", true, new HexDecoder); return BlockTransformationTest(FixedRoundsCipherFactory(), valdata); } @@ -1478,7 +1478,7 @@ bool ValidateSKIPJACK() { cout << "\nSKIPJACK validation suite running...\n\n"; - FileSource valdata("TestData/skipjack.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/skipjack.dat", true, new HexDecoder); return BlockTransformationTest(FixedRoundsCipherFactory(), valdata); } @@ -1582,7 +1582,7 @@ bool ValidateSHACAL2() cout << "\nSHACAL-2 validation suite running...\n\n"; bool pass = true; - FileSource valdata("TestData/shacal2v.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/shacal2v.dat", true, new HexDecoder); pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 4) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(64), valdata, 10) && pass; return pass; @@ -1593,7 +1593,7 @@ bool ValidateCamellia() cout << "\nCamellia validation suite running...\n\n"; bool pass = true; - FileSource valdata("TestData/camellia.dat", true, new HexDecoder); + FileSource valdata(CRYPTOPP_DATA_DIR "TestData/camellia.dat", true, new HexDecoder); pass = BlockTransformationTest(FixedRoundsCipherFactory(16), valdata, 15) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(24), valdata, 15) && pass; pass = BlockTransformationTest(FixedRoundsCipherFactory(32), valdata, 15) && pass; @@ -1604,38 +1604,38 @@ bool ValidateSalsa() { cout << "\nSalsa validation suite running...\n"; - return RunTestDataFile("TestVectors/salsa.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/salsa.txt"); } bool ValidateSosemanuk() { cout << "\nSosemanuk validation suite running...\n"; - return RunTestDataFile("TestVectors/sosemanuk.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/sosemanuk.txt"); } bool ValidateVMAC() { cout << "\nVMAC validation suite running...\n"; - return RunTestDataFile("TestVectors/vmac.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/vmac.txt"); } bool ValidateCCM() { cout << "\nAES/CCM validation suite running...\n"; - return RunTestDataFile("TestVectors/ccm.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/ccm.txt"); } bool ValidateGCM() { cout << "\nAES/GCM validation suite running...\n"; cout << "\n2K tables:"; - bool pass = RunTestDataFile("TestVectors/gcm.txt", MakeParameters(Name::TableSize(), (int)2048)); + bool pass = RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/gcm.txt", MakeParameters(Name::TableSize(), (int)2048)); cout << "\n64K tables:"; - return RunTestDataFile("TestVectors/gcm.txt", MakeParameters(Name::TableSize(), (int)64*1024)) && pass; + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/gcm.txt", MakeParameters(Name::TableSize(), (int)64*1024)) && pass; } bool ValidateCMAC() { cout << "\nCMAC validation suite running...\n"; - return RunTestDataFile("TestVectors/cmac.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/cmac.txt"); } diff --git a/validat2.cpp b/validat2.cpp index 3c6cd456..fd6d244a 100644 --- a/validat2.cpp +++ b/validat2.cpp @@ -74,10 +74,10 @@ bool ValidateBBS() bool pass = true, fail; int j; - const byte output1[] = { + static const byte output1[] = { 0x49,0xEA,0x2C,0xFD,0xB0,0x10,0x64,0xA0,0xBB,0xB9, 0x2A,0xF1,0x01,0xDA,0xC1,0x8A,0x94,0xF7,0xB7,0xCE}; - const byte output2[] = { + static const byte output2[] = { 0x74,0x45,0x48,0xAE,0xAC,0xB7,0x0E,0xDF,0xAF,0xD7, 0xD5,0x0E,0x8E,0x29,0x83,0x75,0x6B,0x27,0x46,0xA1}; @@ -283,7 +283,7 @@ bool ValidateRSA() "\x69\x94\xac\x04\xf3\x41\xb5\x7d\x05\x20\x2d\x42\x8f\xb2\xa2\x7b" "\x5c\x77\xdf\xd9\xb1\x5b\xfc\x3d\x55\x93\x53\x50\x34\x10\xc1\xe1"; - FileSource keys("TestData/rsa512a.dat", true, new HexDecoder); + FileSource keys(CRYPTOPP_DATA_DIR "TestData/rsa512a.dat", true, new HexDecoder); Weak::RSASSA_PKCS1v15_MD2_Signer rsaPriv(keys); Weak::RSASSA_PKCS1v15_MD2_Verifier rsaPub(rsaPriv); @@ -308,7 +308,7 @@ bool ValidateRSA() cout << "invalid signature verification\n"; } { - FileSource keys("TestData/rsa1024.dat", true, new HexDecoder); + FileSource keys(CRYPTOPP_DATA_DIR "TestData/rsa1024.dat", true, new HexDecoder); RSAES_PKCS1v15_Decryptor rsaPriv(keys); RSAES_PKCS1v15_Encryptor rsaPub(rsaPriv); @@ -335,8 +335,8 @@ bool ValidateRSA() bq.Put(oaepSeed, 20); FixedRNG rng(bq); - FileSource privFile("TestData/rsa400pv.dat", true, new HexDecoder); - FileSource pubFile("TestData/rsa400pb.dat", true, new HexDecoder); + FileSource privFile(CRYPTOPP_DATA_DIR "TestData/rsa400pv.dat", true, new HexDecoder); + FileSource pubFile(CRYPTOPP_DATA_DIR "TestData/rsa400pb.dat", true, new HexDecoder); RSAES_OAEP_SHA_Decryptor rsaPriv; rsaPriv.AccessKey().BERDecodePrivateKey(privFile, false, 0); RSAES_OAEP_SHA_Encryptor rsaPub(pubFile); @@ -359,7 +359,7 @@ bool ValidateDH() { cout << "\nDH validation suite running...\n\n"; - FileSource f("TestData/dh1024.dat", true, new HexDecoder()); + FileSource f(CRYPTOPP_DATA_DIR "TestData/dh1024.dat", true, new HexDecoder()); DH dh(f); return SimpleKeyAgreementValidate(dh); } @@ -368,7 +368,7 @@ bool ValidateMQV() { cout << "\nMQV validation suite running...\n\n"; - FileSource f("TestData/mqv1024.dat", true, new HexDecoder()); + FileSource f(CRYPTOPP_DATA_DIR "TestData/mqv1024.dat", true, new HexDecoder()); MQV mqv(f); return AuthenticatedKeyAgreementValidate(mqv); } @@ -377,7 +377,7 @@ bool ValidateLUC_DH() { cout << "\nLUC-DH validation suite running...\n\n"; - FileSource f("TestData/lucd512.dat", true, new HexDecoder()); + FileSource f(CRYPTOPP_DATA_DIR "TestData/lucd512.dat", true, new HexDecoder()); LUC_DH dh(f); return SimpleKeyAgreementValidate(dh); } @@ -386,7 +386,7 @@ bool ValidateXTR_DH() { cout << "\nXTR-DH validation suite running...\n\n"; - FileSource f("TestData/xtrdh171.dat", true, new HexDecoder()); + FileSource f(CRYPTOPP_DATA_DIR "TestData/xtrdh171.dat", true, new HexDecoder()); XTR_DH dh(f); return SimpleKeyAgreementValidate(dh); } @@ -396,7 +396,7 @@ bool ValidateElGamal() cout << "\nElGamal validation suite running...\n\n"; bool pass = true; { - FileSource fc("TestData/elgc1024.dat", true, new HexDecoder); + FileSource fc(CRYPTOPP_DATA_DIR "TestData/elgc1024.dat", true, new HexDecoder); ElGamalDecryptor privC(fc); ElGamalEncryptor pubC(privC); privC.AccessKey().Precompute(); @@ -414,7 +414,7 @@ bool ValidateDLIES() cout << "\nDLIES validation suite running...\n\n"; bool pass = true; { - FileSource fc("TestData/dlie1024.dat", true, new HexDecoder); + FileSource fc(CRYPTOPP_DATA_DIR "TestData/dlie1024.dat", true, new HexDecoder); DLIES<>::Decryptor privC(fc); DLIES<>::Encryptor pubC(privC); pass = CryptoSystemValidate(privC, pubC) && pass; @@ -437,7 +437,7 @@ bool ValidateNR() cout << "\nNR validation suite running...\n\n"; bool pass = true; { - FileSource f("TestData/nr2048.dat", true, new HexDecoder); + FileSource f(CRYPTOPP_DATA_DIR "TestData/nr2048.dat", true, new HexDecoder); NR::Signer privS(f); privS.AccessKey().Precompute(); NR::Verifier pubS(privS); @@ -459,14 +459,14 @@ bool ValidateDSA(bool thorough) cout << "\nDSA validation suite running...\n\n"; bool pass = true; - FileSource fs1("TestData/dsa1024.dat", true, new HexDecoder()); + FileSource fs1(CRYPTOPP_DATA_DIR "TestData/dsa1024.dat", true, new HexDecoder()); DSA::Signer priv(fs1); DSA::Verifier pub(priv); - FileSource fs2("TestData/dsa1024b.dat", true, new HexDecoder()); + FileSource fs2(CRYPTOPP_DATA_DIR "TestData/dsa1024b.dat", true, new HexDecoder()); DSA::Verifier pub1(fs2); assert(pub.GetKey() == pub1.GetKey()); pass = SignatureValidate(priv, pub, thorough) && pass; - pass = RunTestDataFile("TestVectors/dsa.txt", g_nullNameValuePairs, thorough) && pass; + pass = RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/dsa.txt", g_nullNameValuePairs, thorough) && pass; return pass; } @@ -477,7 +477,7 @@ bool ValidateLUC() bool pass=true; { - FileSource f("TestData/luc1024.dat", true, new HexDecoder); + FileSource f(CRYPTOPP_DATA_DIR "TestData/luc1024.dat", true, new HexDecoder); LUCSSA_PKCS1v15_SHA_Signer priv(f); LUCSSA_PKCS1v15_SHA_Verifier pub(priv); pass = SignatureValidate(priv, pub) && pass; @@ -494,14 +494,14 @@ bool ValidateLUC_DL() { cout << "\nLUC-HMP validation suite running...\n\n"; - FileSource f("TestData/lucs512.dat", true, new HexDecoder); + FileSource f(CRYPTOPP_DATA_DIR "TestData/lucs512.dat", true, new HexDecoder); LUC_HMP::Signer privS(f); LUC_HMP::Verifier pubS(privS); bool pass = SignatureValidate(privS, pubS); cout << "\nLUC-IES validation suite running...\n\n"; - FileSource fc("TestData/lucc512.dat", true, new HexDecoder); + FileSource fc(CRYPTOPP_DATA_DIR "TestData/lucc512.dat", true, new HexDecoder); LUC_IES<>::Decryptor privC(fc); LUC_IES<>::Encryptor pubC(privC); pass = CryptoSystemValidate(privC, pubC) && pass; @@ -515,7 +515,7 @@ bool ValidateRabin() bool pass=true; { - FileSource f("TestData/rabi1024.dat", true, new HexDecoder); + FileSource f(CRYPTOPP_DATA_DIR "TestData/rabi1024.dat", true, new HexDecoder); RabinSS::Signer priv(f); RabinSS::Verifier pub(priv); pass = SignatureValidate(priv, pub) && pass; @@ -532,7 +532,7 @@ bool ValidateRW() { cout << "\nRW validation suite running...\n\n"; - FileSource f("TestData/rw1024.dat", true, new HexDecoder); + FileSource f(CRYPTOPP_DATA_DIR "TestData/rw1024.dat", true, new HexDecoder); RWSS::Signer priv(f); RWSS::Verifier pub(priv); @@ -544,7 +544,7 @@ bool ValidateBlumGoldwasser() { cout << "\nBlumGoldwasser validation suite running...\n\n"; - FileSource f("TestData/blum512.dat", true, new HexDecoder); + FileSource f(CRYPTOPP_DATA_DIR "TestData/blum512.dat", true, new HexDecoder); BlumGoldwasserPrivateKey priv(f); BlumGoldwasserPublicKey pub(priv); @@ -828,7 +828,7 @@ bool ValidateESIGN() "\x74\x02\x37\x0E\xED\x0A\x06\xAD\xF4\x15\x65\xB8\xE1\xD1\x45\xAE\x39\x19\xB4\xFF\x5D\xF1\x45\x7B\xE0\xFE\x72\xED\x11\x92\x8F\x61\x41\x4F\x02\x00\xF2\x76\x6F\x7C" "\x79\xA2\xE5\x52\x20\x5D\x97\x5E\xFE\x39\xAE\x21\x10\xFB\x35\xF4\x80\x81\x41\x13\xDD\xE8\x5F\xCA\x1E\x4F\xF8\x9B\xB2\x68\xFB\x28"; - FileSource keys("TestData/esig1536.dat", true, new HexDecoder); + FileSource keys(CRYPTOPP_DATA_DIR "TestData/esig1536.dat", true, new HexDecoder); ESIGN::Signer signer(keys); ESIGN::Verifier verifier(signer); diff --git a/validat3.cpp b/validat3.cpp index 2ab2d624..84f18f49 100644 --- a/validat3.cpp +++ b/validat3.cpp @@ -187,13 +187,13 @@ bool ValidateMD5() bool ValidateSHA() { cout << "\nSHA validation suite running...\n\n"; - return RunTestDataFile("TestVectors/sha.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/sha.txt"); } bool ValidateSHA2() { cout << "\nSHA validation suite running...\n\n"; - return RunTestDataFile("TestVectors/sha.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/sha.txt"); } bool ValidateTiger() @@ -340,12 +340,12 @@ bool ValidateHAVAL() bool ValidatePanama() { - return RunTestDataFile("TestVectors/panama.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/panama.txt"); } bool ValidateWhirlpool() { - return RunTestDataFile("TestVectors/whrlpool.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/whrlpool.txt"); } #ifdef CRYPTOPP_REMOVED @@ -412,7 +412,7 @@ bool ValidateMD5MAC() bool ValidateHMAC() { - return RunTestDataFile("TestVectors/hmac.txt"); + return RunTestDataFile(CRYPTOPP_DATA_DIR "TestVectors/hmac.txt"); } #ifdef CRYPTOPP_REMOVED