2021-10-04 19:07:49 +03:00
|
|
|
#ifndef IKEV2_CONFIGURATOR_H
|
|
|
|
|
#define IKEV2_CONFIGURATOR_H
|
|
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
#include <QProcessEnvironment>
|
|
|
|
|
|
2022-08-25 17:35:28 +03:00
|
|
|
#include "configurator_base.h"
|
2021-10-04 19:07:49 +03:00
|
|
|
#include "core/defs.h"
|
|
|
|
|
|
2024-04-01 20:20:02 +07:00
|
|
|
class Ikev2Configurator : public ConfiguratorBase
|
2021-10-04 19:07:49 +03:00
|
|
|
{
|
2022-08-25 17:35:28 +03:00
|
|
|
Q_OBJECT
|
2021-10-04 19:07:49 +03:00
|
|
|
public:
|
2024-04-12 20:00:21 +05:00
|
|
|
Ikev2Configurator(std::shared_ptr<Settings> settings, const QSharedPointer<ServerController> &serverController, QObject *parent = nullptr);
|
2021-10-04 19:07:49 +03:00
|
|
|
|
|
|
|
|
struct ConnectionData {
|
2021-11-15 18:17:28 +03:00
|
|
|
QByteArray clientCert; // p12 client cert
|
|
|
|
|
QByteArray caCert; // p12 server cert
|
2021-10-04 19:07:49 +03:00
|
|
|
QString clientId;
|
|
|
|
|
QString password; // certificate password
|
|
|
|
|
QString host; // host ip
|
|
|
|
|
};
|
|
|
|
|
|
2024-04-01 20:20:02 +07:00
|
|
|
QString createConfig(const ServerCredentials &credentials, DockerContainer container,
|
2024-05-09 20:56:52 +03:00
|
|
|
const QJsonObject &containerConfig, ErrorCode &errorCode);
|
2021-10-04 19:07:49 +03:00
|
|
|
|
2022-08-25 17:35:28 +03:00
|
|
|
QString genIkev2Config(const ConnectionData &connData);
|
|
|
|
|
QString genMobileConfig(const ConnectionData &connData);
|
|
|
|
|
QString genStrongSwanConfig(const ConnectionData &connData);
|
2021-10-04 19:07:49 +03:00
|
|
|
|
2022-08-25 17:35:28 +03:00
|
|
|
ConnectionData prepareIkev2Config(const ServerCredentials &credentials,
|
2024-05-09 20:56:52 +03:00
|
|
|
DockerContainer container, ErrorCode &errorCode);
|
2021-10-04 19:07:49 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // IKEV2_CONFIGURATOR_H
|