diff options
author | Kai Michaelis <[email protected]> | 2016-09-22 13:43:43 +0200 |
---|---|---|
committer | seu <[email protected]> | 2016-10-02 18:10:43 +0200 |
commit | 16eb674ecfc29102a0eef6c38929b78848c4467b (patch) | |
tree | b6495bcd82d6809f0bc24be7ad5671157a385d5d /src/tests | |
parent | 6c8998cb853605f17cebb76dd61496b05941d04f (diff) |
1st review round
Diffstat (limited to 'src/tests')
-rw-r--r-- | src/tests/test_certstor.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/tests/test_certstor.cpp b/src/tests/test_certstor.cpp index 02865c72c..5d894640b 100644 --- a/src/tests/test_certstor.cpp +++ b/src/tests/test_certstor.cpp @@ -12,9 +12,12 @@ #include <botan/internal/filesystem.h> #include <botan/pkcs8.h> #include <botan/auto_rng.h> + #include <sstream> + extern "C" { + #include <unistd.h> // unlink() + } #endif -#include <iostream> namespace Botan_Tests { @@ -53,6 +56,20 @@ Test::Result test_certstor_insert_find_remove_test( if(priv) { result.test_eq("Got wrong private key",key->pkcs8_private_key(),priv->pkcs8_private_key()); + + auto rev_certs = store.find_certs_for_key(*priv); + + if(rev_certs.empty()) + { + result.test_failure("No certificate"); + } + else + { + bool found = std::any_of(rev_certs.begin(),rev_certs.end(),[&](std::shared_ptr<const Botan::X509_Certificate> c) + { return c->fingerprint() == cert.fingerprint(); }); + + result.test_eq("Got wrong/no certificate",found,true); + } } if(certs[4] != cert_key && certs[5] != cert_key) @@ -193,7 +210,11 @@ class Certstor_Tests : public Test try { - Botan::Certificate_Store_In_SQLite store(fn.first + ".db","123"); + unlink((fn.first + ".db").c_str()); + + auto& rng = Test::rng(); + std::string passwd(reinterpret_cast<const char*>(rng.random_vec(8).data()),8); + Botan::Certificate_Store_In_SQLite store(fn.first + ".db",passwd); std::vector<std::pair<Botan::X509_Certificate,std::shared_ptr<Botan::Private_Key>>> retrieve; for(auto&& cert_key_pair : test_data) |