aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2016-02-09 07:08:47 -0500
committerJack Lloyd <[email protected]>2016-02-09 07:08:47 -0500
commit2becd2b8b7fe1cda319789fd96ddd7bf51b433cb (patch)
treec98a7556095da5008751cc62dc18cf86bc84a039
parent32753defe9e49ba7dac457210ee0617313cb1b7b (diff)
Removes randomization from choice of keys in X509 test.
Would be better to iterate over all of the key types for this type of coverage. Avoids Coverity dead code warning on the error-case throw.
-rw-r--r--src/tests/unit_x509.cpp32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/tests/unit_x509.cpp b/src/tests/unit_x509.cpp
index da36459c4..93e26eee2 100644
--- a/src/tests/unit_x509.cpp
+++ b/src/tests/unit_x509.cpp
@@ -82,27 +82,17 @@ Botan::X509_Cert_Options req_opts2()
std::unique_ptr<Botan::Private_Key> make_a_private_key()
{
-#if defined(BOTAN_HAS_DSA)
- if(Test::rng().next_byte() < 32)
- {
- Botan::DL_Group grp("dsa/botan/2048");
- return std::unique_ptr<Botan::Private_Key>(new Botan::DSA_PrivateKey(Test::rng(), grp));
- }
-#endif
-
-#if defined(BOTAN_HAS_RSA)
- if(Test::rng().next_byte() < 32)
- {
- return std::unique_ptr<Botan::Private_Key>(new Botan::RSA_PrivateKey(Test::rng(), 1536));
- }
-#endif
-
#if defined(BOTAN_HAS_ECDSA)
Botan::EC_Group grp("secp256r1");
return std::unique_ptr<Botan::Private_Key>(new Botan::ECDSA_PrivateKey(Test::rng(), grp));
+#elif defined(BOTAN_HAS_RSA)
+ return std::unique_ptr<Botan::Private_Key>(new Botan::RSA_PrivateKey(Test::rng(), 1024));
+#elif defined(BOTAN_HAS_DSA)
+ Botan::DL_Group grp("dsa/botan/2048");
+ return std::unique_ptr<Botan::Private_Key>(new Botan::DSA_PrivateKey(Test::rng(), grp));
+#else
+ return std::unique_ptr<Botan::Private_Key>(nullptr);
#endif
-
- throw Test_Error("Skipping X.509 cert test due to missing algos");
}
class X509_Cert_Unit_Tests : public Test
@@ -227,6 +217,14 @@ std::vector<Test::Result> X509_Cert_Unit_Tests::run()
/* Create the CA's key and self-signed cert */
std::unique_ptr<Botan::Private_Key> ca_key(make_a_private_key());
+ if(!ca_key)
+ {
+ // Failure because X.509 enabled but no RSA or ECDSA seems off
+ result.test_failure("Skipping due to no enabled signature algorithms");
+ results.push_back(result);
+ return results;
+ }
+
Botan::X509_Certificate ca_cert =
Botan::X509::create_self_signed_cert(ca_opts(),
*ca_key,