Files
amnezia-client/client/configurators/cloak_configurator.cpp
T

54 lines
1.8 KiB
C++
Raw Normal View History

2021-04-04 23:12:36 +03:00
#include "cloak_configurator.h"
#include <QFile>
#include <QJsonObject>
#include <QJsonDocument>
#include "core/controllers/serverController.h"
2021-09-09 20:15:44 +03:00
#include "containers/containers_defs.h"
2021-04-04 23:12:36 +03:00
CloakConfigurator::CloakConfigurator(std::shared_ptr<Settings> settings, QObject *parent):
ConfiguratorBase(settings, parent)
2022-08-25 17:35:28 +03:00
{
}
2021-05-07 23:28:37 +03:00
QString CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
DockerContainer container, const QJsonObject &containerConfig, ErrorCode *errorCode)
2021-04-04 23:12:36 +03:00
{
ErrorCode e = ErrorCode::NoError;
ServerController serverController(m_settings);
2021-04-04 23:12:36 +03:00
QString cloakPublicKey = serverController.getTextFileFromContainer(container, credentials,
2021-04-26 22:54:31 +03:00
amnezia::protocols::cloak::ckPublicKeyPath, &e);
2021-04-04 23:12:36 +03:00
cloakPublicKey.replace("\n", "");
QString cloakBypassUid = serverController.getTextFileFromContainer(container, credentials,
2021-04-26 22:54:31 +03:00
amnezia::protocols::cloak::ckBypassUidKeyPath, &e);
2021-04-04 23:12:36 +03:00
cloakBypassUid.replace("\n", "");
if (e) {
if (errorCode) *errorCode = e;
2021-05-07 23:28:37 +03:00
return "";
2021-04-04 23:12:36 +03:00
}
QJsonObject config;
config.insert("Transport", "direct");
config.insert("ProxyMethod", "openvpn");
config.insert("EncryptionMethod", "aes-gcm");
config.insert("UID", cloakBypassUid);
config.insert("PublicKey", cloakPublicKey);
2021-05-07 23:28:37 +03:00
config.insert("ServerName", "$FAKE_WEB_SITE_ADDRESS");
config.insert("NumConn", 1);
2021-04-04 23:12:36 +03:00
config.insert("BrowserSig", "chrome");
config.insert("StreamTimeout", 300);
2023-05-20 18:44:19 +01:00
config.insert("RemoteHost", credentials.hostName);
config.insert("RemotePort", "$CLOAK_SERVER_PORT");
2021-04-04 23:12:36 +03:00
QString textCfg = serverController.replaceVars(QJsonDocument(config).toJson(),
serverController.genVarsForScript(credentials, container, containerConfig));
2021-05-07 23:28:37 +03:00
// qDebug().noquote() << textCfg;
return textCfg;
2021-04-04 23:12:36 +03:00
}