amnezia-client/client/configurators/openvpn_configurator.h
pokamest 85b6b06cc9 - no dockerhub
- trafic masking
2021-04-04 23:12:36 +03:00

48 lines
1.3 KiB
C++

#ifndef OPENVPN_CONFIGURATOR_H
#define OPENVPN_CONFIGURATOR_H
#include <QObject>
#include <QProcessEnvironment>
#include "core/defs.h"
#include "settings.h"
#include "core/servercontroller.h"
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
};
static QString genOpenVpnConfig(const ServerCredentials &credentials, Protocol proto,
ErrorCode *errorCode = nullptr);
static QString convertOpenSShKey(const QString &key);
static ErrorCode signCert(DockerContainer container,
const ServerCredentials &credentials, QString clientId);
private:
static QString getEasyRsaShPath();
static QProcessEnvironment prepareEnv();
static ErrorCode initPKI(const QString &path);
static ErrorCode genReq(const QString &path, const QString &clientId);
static ConnectionData createCertRequest();
static ConnectionData prepareOpenVpnConfig(const ServerCredentials &credentials,
Protocol proto, ErrorCode *errorCode = nullptr);
static Settings &m_settings();
};
#endif // OPENVPN_CONFIGURATOR_H