Files
amnezia-client/client/configurators/openvpn_configurator.h
T

44 lines
1.6 KiB
C++
Raw Normal View History

2021-04-04 23:12:36 +03:00
#ifndef OPENVPN_CONFIGURATOR_H
#define OPENVPN_CONFIGURATOR_H
2020-12-18 14:57:22 +03:00
#include <QObject>
#include <QProcessEnvironment>
2021-01-06 17:12:24 +03:00
2022-08-25 17:35:28 +03:00
#include "configurator_base.h"
2021-04-04 23:12:36 +03:00
#include "core/defs.h"
2020-12-18 14:57:22 +03:00
class OpenVpnConfigurator : public ConfiguratorBase
2020-12-18 14:57:22 +03:00
{
2022-08-25 17:35:28 +03:00
Q_OBJECT
2020-12-18 14:57:22 +03:00
public:
OpenVpnConfigurator(std::shared_ptr<Settings> settings, QObject *parent = nullptr);
2020-12-18 14:57:22 +03:00
struct ConnectionData
{
2020-12-18 14:57:22 +03:00
QString clientId;
QString request; // certificate request
QString privKey; // client private key
2020-12-18 14:57:22 +03:00
QString clientCert; // client signed certificate
QString caCert; // server certificate
QString taKey; // tls-auth key
QString host; // host ip
2020-12-18 14:57:22 +03:00
};
QString createConfig(const ServerCredentials &credentials, DockerContainer container,
const QJsonObject &containerConfig, ErrorCode errorCode);
2020-12-18 14:57:22 +03:00
QString processConfigWithLocalSettings(const QPair<QString, QString> &dns, const bool isApiConfig,
QString &protocolConfigString);
QString processConfigWithExportSettings(const QPair<QString, QString> &dns, const bool isApiConfig,
QString &protocolConfigString);
2021-04-04 23:12:36 +03:00
static ConnectionData createCertRequest();
2020-12-18 14:57:22 +03:00
private:
ConnectionData prepareOpenVpnConfig(const ServerCredentials &credentials, DockerContainer container,
ErrorCode errorCode);
ErrorCode signCert(DockerContainer container, const ServerCredentials &credentials, QString clientId);
2020-12-18 14:57:22 +03:00
};
2021-04-04 23:12:36 +03:00
#endif // OPENVPN_CONFIGURATOR_H