#ifndef IKEV2_CONFIGURATOR_H #define IKEV2_CONFIGURATOR_H #include #include #include "configuratorBase.h" #include "core/utils/errorCodes.h" #include "core/utils/routeModes.h" #include "core/utils/commonStructs.h" class Ikev2Configurator : public ConfiguratorBase { Q_OBJECT public: Ikev2Configurator(SshSession* sshSession, QObject *parent = nullptr); struct ConnectionData { QByteArray clientCert; // p12 client cert QByteArray caCert; // p12 server cert QString clientId; QString password; // certificate password QString host; // host ip }; amnezia::ProtocolConfig createConfig(const amnezia::ServerCredentials &credentials, amnezia::DockerContainer container, const amnezia::ContainerConfig &containerConfig, const amnezia::DnsSettings &dnsSettings, amnezia::ErrorCode &errorCode) override; QString genIkev2Config(const ConnectionData &connData); QString genMobileConfig(const ConnectionData &connData); QString genStrongSwanConfig(const ConnectionData &connData); ConnectionData prepareIkev2Config(const amnezia::ServerCredentials &credentials, amnezia::DockerContainer container, amnezia::ErrorCode &errorCode); }; #endif // IKEV2_CONFIGURATOR_H