Make botan’s policy configurable from a file

fix #3244
This commit is contained in:
louiz’
2017-04-30 15:14:54 +02:00
parent 1472adfa77
commit 7b3e0e0cf3
15 changed files with 207 additions and 24 deletions
+42
View File
@@ -0,0 +1,42 @@
#include "catch.hpp"
#include <network/tls_policy.hpp>
TEST_CASE("tls_policy")
{
BiboumiTLSPolicy policy;
const auto default_minimum_signature_strength = policy.minimum_signature_strength();
const auto default_session_ticket_lifetime = policy.session_ticket_lifetime();
const auto default_minimum_rsa_bits = policy.minimum_rsa_bits();
policy.load("does not exist");
WHEN("we fail to load the file")
{
THEN("all values are the default ones")
{
CHECK(policy.minimum_signature_strength() == default_minimum_signature_strength);
CHECK(policy.minimum_rsa_bits() == default_minimum_rsa_bits);
}
AND_WHEN("we load a valid first file")
{
std::istringstream iss("minimum_signature_strength = 128\nminimum_rsa_bits=12\n");
policy.load(iss);
THEN("the specified values are updated, and the rest is still the default")
{
CHECK(policy.minimum_signature_strength() == 128);
CHECK(policy.minimum_rsa_bits() == 12);
CHECK(policy.session_ticket_lifetime() == default_session_ticket_lifetime);
}
AND_WHEN("we load a second file")
{
std::istringstream iss("minimum_signature_strength = 15");
policy.load(iss);
THEN("the specified values are updated, and the rest is untouched")
{
CHECK(policy.minimum_signature_strength() == 15);
CHECK(policy.minimum_rsa_bits() == 12);
CHECK(policy.session_ticket_lifetime() == default_session_ticket_lifetime);
}
}
}
}
}
+14 -1
View File
@@ -10,6 +10,7 @@
#include <utils/time.hpp>
#include <utils/system.hpp>
#include <utils/scopeguard.hpp>
#include <utils/dirname.hpp>
using namespace std::string_literals;
@@ -157,4 +158,16 @@ TEST_CASE("system_name")
{
CHECK(utils::get_system_name() != "Unknown");
CHECK(!utils::get_system_name().empty());
}
}
TEST_CASE("dirname")
{
CHECK(utils::dirname("/") == "/");
CHECK(utils::dirname("coucou.txt") == "./");
CHECK(utils::dirname("../coucou.txt") == "../");
CHECK(utils::dirname("/etc/biboumi/coucou.txt") == "/etc/biboumi/");
CHECK(utils::dirname("..") == "..");
CHECK(utils::dirname("../") == "../");
CHECK(utils::dirname(".") == ".");
CHECK(utils::dirname("./") == "./");
}