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

44 lines
1.3 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
2021-04-04 23:12:36 +03:00
#include "core/defs.h"
2021-02-18 15:00:41 +03:00
#include "settings.h"
2021-04-04 23:12:36 +03:00
#include "core/servercontroller.h"
2020-12-18 14:57:22 +03:00
class OpenVpnConfigurator
{
public:
struct ConnectionData {
QString clientId;
QString request; // certificate request
QString privKey; // client private key
QString clientCert; // client signed certificate
QString caCert; // server certificate
QString taKey; // tls-auth key
QString host; // host ip
};
2021-04-26 23:19:19 +03:00
static QString genOpenVpnConfig(const ServerCredentials &credentials, DockerContainer container,
2021-05-07 23:28:37 +03:00
const QJsonObject &containerConfig, ErrorCode *errorCode = nullptr);
2020-12-18 14:57:22 +03:00
2021-05-10 02:33:31 +03:00
static QString processConfigWithLocalSettings(QString config);
2021-05-20 15:59:58 +03:00
static QString processConfigWithExportSettings(QString config);
2021-05-10 02:33:31 +03:00
2021-04-04 23:12:36 +03:00
static ErrorCode signCert(DockerContainer container,
const ServerCredentials &credentials, QString clientId);
2020-12-18 14:57:22 +03:00
private:
static ConnectionData createCertRequest();
2021-01-15 23:36:35 +03:00
static ConnectionData prepareOpenVpnConfig(const ServerCredentials &credentials,
2021-04-26 23:19:19 +03:00
DockerContainer container, ErrorCode *errorCode = nullptr);
2021-02-18 15:00:41 +03:00
static Settings &m_settings();
2020-12-18 14:57:22 +03:00
};
2021-04-04 23:12:36 +03:00
#endif // OPENVPN_CONFIGURATOR_H