diff options
Diffstat (limited to 'src/tests/test_hash.cpp')
-rw-r--r-- | src/tests/test_hash.cpp | 102 |
1 files changed, 6 insertions, 96 deletions
diff --git a/src/tests/test_hash.cpp b/src/tests/test_hash.cpp index aca9d7ef6..dc93bb4d1 100644 --- a/src/tests/test_hash.cpp +++ b/src/tests/test_hash.cpp @@ -8,10 +8,6 @@ #include <botan/hash.h> -#if defined (BOTAN_HAS_PARALLEL_HASH) - #include <botan/par_hash.h> -#endif - namespace Botan_Tests { namespace { @@ -46,14 +42,19 @@ class Hash_Function_Tests : public Text_Based_Test continue; } + std::unique_ptr<Botan::HashFunction> clone(hash->clone()); + const std::string provider(hash->provider()); result.test_is_nonempty("provider", provider); result.test_eq(provider, hash->name(), algo); + result.test_eq(provider, hash->name(), clone->name()); hash->update(input); - result.test_eq(provider, "hashing", hash->final(), expected); + clone->update(input); + result.test_eq(provider, "hashing (clone)", clone->final(), expected); + // Test to make sure clear() resets what we need it to hash->update("some discarded input"); hash->clear(); @@ -77,97 +78,6 @@ class Hash_Function_Tests : public Text_Based_Test BOTAN_REGISTER_TEST("hash", Hash_Function_Tests); -#if defined(BOTAN_HAS_PARALLEL_HASH) - -Test::Result test_clone() - { - Test::Result result("Parallel hash"); - - std::string algo = "Parallel(MD5,SHA-160)"; - std::unique_ptr<Botan::HashFunction> hash(Botan::HashFunction::create(algo)); - - if(!hash) - { - result.note_missing(algo); - return result; - } - - hash->update(""); - result.test_eq("Parallel hashing", hash->final(), "D41D8CD98F00B204E9800998ECF8427EDA39A3EE5E" - "6B4B0D3255BFEF95601890AFD80709"); - - std::unique_ptr<Botan::HashFunction> hash_clone(hash->clone()); - - hash_clone->clear(); - hash_clone->update(""); - result.test_eq("Parallel hashing (clone)", hash_clone->final(), "D41D8CD98F00B204E9800998ECF8427" - "EDA39A3EE5E6B4B0D3255BFEF95601890AFD80709"); - - return result; - } - -Test::Result test_ctor() - { - Test::Result result("Parallel hash"); - - std::unique_ptr<Botan::HashFunction> sha256(Botan::HashFunction::create("SHA-256")); - if(!sha256) - { - result.note_missing("SHA-256"); - return result; - } - - std::unique_ptr<Botan::HashFunction> sha512(Botan::HashFunction::create("SHA-512")); - if(!sha512) - { - result.note_missing("SHA-512"); - return result; - } - - std::vector<Botan::HashFunction*> hashes = { sha256.get(), sha512.get() }; - Botan::Parallel par_hash(hashes); - - par_hash.update(""); - result.test_eq("Parallel hashing", par_hash.final(), "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B" - "934CA495991B7852B855CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9C" - "E47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E"); - - return result; - } - -class Parallel_Hash_Tests : public Test - { - public: - std::vector<Test::Result> run() override - { - std::vector<Test::Result> results; - - std::vector<std::function<Test::Result()>> fns = - { - test_clone, - test_ctor - }; - - for(size_t i = 0; i != fns.size(); ++i) - { - try - { - results.push_back(fns[ i ]()); - } - catch(std::exception& e) - { - results.push_back(Test::Result::Failure("Parallel hash tests " + std::to_string(i), e.what())); - } - } - - return results; - } - }; - -BOTAN_REGISTER_TEST("par_hash", Parallel_Hash_Tests); - -#endif - } } |