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

41 lines
1.2 KiB
C++
Raw Normal View History

2021-06-12 11:59:36 +03:00
#ifndef WIREGUARD_CONFIGURATOR_H
#define WIREGUARD_CONFIGURATOR_H
#include <QObject>
#include <QProcessEnvironment>
#include "core/defs.h"
#include "settings.h"
#include "core/servercontroller.h"
class WireguardConfigurator
{
public:
struct ConnectionData {
QString clientPrivKey; // client private key
QString clientPubKey; // client public key
2021-12-25 21:14:55 +03:00
QString clientIP; // internal client IP address
2021-06-12 11:59:36 +03:00
QString serverPubKey; // tls-auth key
QString pskKey; // preshared key
QString host; // host ip
};
static QString genWireguardConfig(const ServerCredentials &credentials, DockerContainer container,
const QJsonObject &containerConfig, ErrorCode *errorCode = nullptr);
static QString processConfigWithLocalSettings(QString config);
static QString processConfigWithExportSettings(QString config);
private:
static ConnectionData prepareWireguardConfig(const ServerCredentials &credentials,
2021-12-25 21:14:55 +03:00
DockerContainer container, const QJsonObject &containerConfig, ErrorCode *errorCode = nullptr);
2021-06-12 11:59:36 +03:00
static ConnectionData genClientKeys();
static Settings &m_settings();
};
#endif // WIREGUARD_CONFIGURATOR_H