Beispiel #1
0
def test_syslog_ng_paths(fake_testcase_parameters):
    syslog_ng_paths = SyslogNgPaths(fake_testcase_parameters)
    syslog_ng_paths.set_syslog_ng_paths(instance_name="server")
    assert set(list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths)) == {
        "dirs", "file_paths", "binary_file_paths"
    }
    assert set(list(
        syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["dirs"])) == {
            "install_dir"
        }
    assert set(
        list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["file_paths"])
    ) == {
        "config_path",
        "persist_path",
        "pid_path",
        "control_socket_path",
        "stderr",
        "stdout",
    }
    assert set(
        list(syslog_ng_paths.
             _SyslogNgPaths__syslog_ng_paths["binary_file_paths"])) == {
                 "syslog_ng_binary",
                 "syslog_ng_ctl",
                 "loggen",
                 "slogkey",
                 "slogverify",
             }
def test_syslog_ng_paths(tc_unittest):
    syslog_ng_paths = SyslogNgPaths(tc_unittest.testcase_context,
                                    tc_unittest.get_fake_testcase_parameters())
    syslog_ng_paths.set_syslog_ng_paths(instance_name="server")
    assert set(list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths)) == {
        "dirs", "file_paths", "binary_file_paths"
    }
    assert set(list(
        syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["dirs"])) == {
            "working_dir", "install_dir"
        }
    assert set(
        list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["file_paths"])
    ) == {
        "config_path",
        "persist_path",
        "pid_path",
        "control_socket_path",
        "stderr",
        "stdout",
    }
    assert set(
        list(syslog_ng_paths.
             _SyslogNgPaths__syslog_ng_paths["binary_file_paths"])) == {
                 "syslog_ng_binary",
                 "syslog_ng_ctl",
             }
def test_instance_already_configured(tc_unittest):
    syslog_ng_paths_server = SyslogNgPaths(
        tc_unittest.testcase_context,
        tc_unittest.get_fake_testcase_parameters()).set_syslog_ng_paths(
            instance_name="server")
    with pytest.raises(Exception):
        syslog_ng_paths_server.set_syslog_ng_paths(instance_name="client")
Beispiel #4
0
def test_syslog_ng_paths_parent_class_of_paths(fake_testcase_parameters):
    syslog_ng_paths = SyslogNgPaths(fake_testcase_parameters)
    syslog_ng_paths.set_syslog_ng_paths(instance_name="server")
    for __key, value in syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["file_paths"].items():
        assert isinstance(value, PosixPath) is True

    for __key, value in syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["dirs"].items():
        assert isinstance(value, PosixPath) is True

    for __key, value in syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["binary_file_paths"].items():
        assert isinstance(value, PosixPath) is True
Beispiel #5
0
    def __init__(self, testcase_parameters):
        self.instance_paths = SyslogNgPaths(
            testcase_parameters).set_syslog_ng_paths("server")
        self.master_key = None
        self.derived_key = None
        self.decryption_key = None
        self.slogkey = self.instance_paths.get_slogkey_bin()
        self.slogverify = self.instance_paths.get_slogverify_bin()

        self.create_master_key()
        self.create_derived_key()
        self.create_decryption_key()
Beispiel #6
0
def test_syslog_ng_paths_client_relay_server(fake_testcase_parameters):
    syslog_ng_paths_server = SyslogNgPaths(
        fake_testcase_parameters, ).set_syslog_ng_paths(instance_name="server")
    syslog_ng_paths_relay = SyslogNgPaths(
        fake_testcase_parameters, ).set_syslog_ng_paths(instance_name="relay")
    syslog_ng_paths_client = SyslogNgPaths(
        fake_testcase_parameters, ).set_syslog_ng_paths(instance_name="client")

    assert syslog_ng_paths_client.get_instance_name() == "client"
    assert syslog_ng_paths_relay.get_instance_name() == "relay"
    assert syslog_ng_paths_server.get_instance_name() == "server"
Beispiel #7
0
 def new_syslog_ng(self, instance_name="server"):
     instance_paths = SyslogNgPaths(
         self.__testcase_context,
         self.__testcase_parameters).set_syslog_ng_paths(instance_name)
     syslog_ng = SyslogNg(self.__logger_factory, instance_paths,
                          self.__testcase_parameters)
     self.__teardown_actions.append(syslog_ng.stop)
     return syslog_ng
Beispiel #8
0
def test_syslog_ng_paths(fake_testcase_parameters):
    syslog_ng_paths = SyslogNgPaths(fake_testcase_parameters)
    syslog_ng_paths.set_syslog_ng_paths(instance_name="server")
    assert set(list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths)) == {"dirs", "file_paths", "binary_file_paths"}
    assert set(list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["dirs"])) == {"working_dir", "install_dir"}
    assert set(list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["file_paths"])) == {
        "config_path",
        "persist_path",
        "pid_path",
        "control_socket_path",
        "stderr",
        "stdout",
        "valgrind",
    }
    assert set(list(syslog_ng_paths._SyslogNgPaths__syslog_ng_paths["binary_file_paths"])) == {
        "syslog_ng_binary",
        "syslog_ng_ctl",
    }
def test_syslog_ng_paths_client_relay_server(tc_unittest):
    syslog_ng_paths_server = SyslogNgPaths(
        tc_unittest.testcase_context,
        tc_unittest.get_fake_testcase_parameters()).set_syslog_ng_paths(
            instance_name="server")
    syslog_ng_paths_relay = SyslogNgPaths(
        tc_unittest.testcase_context,
        tc_unittest.get_fake_testcase_parameters()).set_syslog_ng_paths(
            instance_name="relay")
    syslog_ng_paths_client = SyslogNgPaths(
        tc_unittest.testcase_context,
        tc_unittest.get_fake_testcase_parameters()).set_syslog_ng_paths(
            instance_name="client")

    assert syslog_ng_paths_client.get_instance_name() == "client"
    assert syslog_ng_paths_relay.get_instance_name() == "relay"
    assert syslog_ng_paths_server.get_instance_name() == "server"
Beispiel #10
0
 def __register_instance(self, instance_name):
     instance_paths = SyslogNgPaths(
         self.__testcase_context,
         self.__testcase_parameters).set_syslog_ng_paths(instance_name)
     syslog_ng_cli = SyslogNgCli(self.__logger_factory, instance_paths,
                                 self.__testcase_parameters)
     syslog_ng = SyslogNg(syslog_ng_cli)
     self.__teardown_actions.append(syslog_ng.stop)
     self.__instances.update({instance_name: {}})
     self.__instances[instance_name]["syslog-ng"] = syslog_ng
     self.__instances[instance_name]["config"] = SyslogNgConfig(
         self.__logger_factory, instance_paths, syslog_ng.get_version())
Beispiel #11
0
def test_syslog_ng_paths_client_relay_server(fake_testcase_parameters):
    syslog_ng_paths_server = SyslogNgPaths(
        fake_testcase_parameters
    ).set_syslog_ng_paths(instance_name="server")
    syslog_ng_paths_relay = SyslogNgPaths(
        fake_testcase_parameters
    ).set_syslog_ng_paths(instance_name="relay")
    syslog_ng_paths_client = SyslogNgPaths(
        fake_testcase_parameters
    ).set_syslog_ng_paths(instance_name="client")

    assert syslog_ng_paths_client.get_instance_name() == "client"
    assert syslog_ng_paths_relay.get_instance_name() == "relay"
    assert syslog_ng_paths_server.get_instance_name() == "server"
Beispiel #12
0
def syslog_ng(request, testcase_parameters):
    instance_paths = SyslogNgPaths(testcase_parameters).set_syslog_ng_paths(
        "server")
    syslog_ng = SyslogNg(instance_paths, testcase_parameters)
    request.addfinalizer(lambda: syslog_ng.stop())
    return syslog_ng
Beispiel #13
0
def syslog_ng(request, testcase_parameters):
    tc_parameters.INSTANCE_PATH = SyslogNgPaths(testcase_parameters).set_syslog_ng_paths("server")
    syslog_ng = SyslogNg(tc_parameters.INSTANCE_PATH, testcase_parameters)
    request.addfinalizer(lambda: syslog_ng.stop())
    return syslog_ng
Beispiel #14
0
def test_instance_already_configured(fake_testcase_parameters):
    syslog_ng_paths_server = SyslogNgPaths(
        fake_testcase_parameters, ).set_syslog_ng_paths(instance_name="server")
    with pytest.raises(Exception):
        syslog_ng_paths_server.set_syslog_ng_paths(instance_name="client")
Beispiel #15
0
class SecureLogging():
    def __init__(self, testcase_parameters):
        self.instance_paths = SyslogNgPaths(
            testcase_parameters).set_syslog_ng_paths("server")
        self.master_key = None
        self.derived_key = None
        self.decryption_key = None
        self.slogkey = self.instance_paths.get_slogkey_bin()
        self.slogverify = self.instance_paths.get_slogverify_bin()

        self.create_master_key()
        self.create_derived_key()
        self.create_decryption_key()

    def create_master_key(self):
        slogkey_stdout = Path(tc_parameters.WORKING_DIR,
                              "slogkey_stdout_master")
        slogkey_stderr = Path(tc_parameters.WORKING_DIR,
                              "slogkey_stderr_master")

        self.master_key = Path(tc_parameters.WORKING_DIR, "master.key")

        CommandExecutor().run(
            [self.slogkey, "-m", self.master_key],
            slogkey_stdout,
            slogkey_stderr,
        )

    def create_derived_key(self):
        slogkey_stdout = Path(tc_parameters.WORKING_DIR,
                              "slogkey_stdout_derived")
        slogkey_stderr = Path(tc_parameters.WORKING_DIR,
                              "slogkey_stderr_derived")

        self.derived_key = Path(tc_parameters.WORKING_DIR, "derived.key")
        self.cmac = Path(tc_parameters.WORKING_DIR, "cmac")

        CommandExecutor().run(
            [
                self.slogkey, "-d", self.master_key, "foo", "bar",
                self.derived_key
            ],
            slogkey_stdout,
            slogkey_stderr,
        )

    def create_decryption_key(self):
        self.decryption_key = Path(tc_parameters.WORKING_DIR, "decryption.key")
        copy_file(self.derived_key, self.decryption_key)

    def decrypt(self, input_file):
        slogverify_stdout = Path(tc_parameters.WORKING_DIR,
                                 "slogverify_stdout")
        slogverify_stderr = Path(tc_parameters.WORKING_DIR,
                                 "slogverify_stderr")
        encrypted = Path(tc_parameters.WORKING_DIR, input_file)
        decrypted = Path(tc_parameters.WORKING_DIR, "decrypted.txt")

        CommandExecutor().run(
            [
                self.slogverify,
                "-k",
                self.decryption_key,
                "-m",
                self.cmac,
                encrypted,
                decrypted,
            ],
            slogverify_stdout,
            slogverify_stderr,
        )
        return decrypted.read_text().rstrip("\n").split("\n")
Beispiel #16
0
def test_instance_already_configured(fake_testcase_parameters):
    syslog_ng_paths_server = SyslogNgPaths(
        fake_testcase_parameters
    ).set_syslog_ng_paths(instance_name="server")
    with pytest.raises(Exception):
        syslog_ng_paths_server.set_syslog_ng_paths(instance_name="client")