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

36 lines
1.1 KiB
C++
Raw Normal View History

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"
2022-08-25 17:35:28 +03:00
class Ikev2Configurator : 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:
Ikev2Configurator(std::shared_ptr<Settings> settings, 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
};
2022-08-25 17:35:28 +03:00
QString genIkev2Config(const ServerCredentials &credentials, DockerContainer container,
2021-10-04 19:07:49 +03:00
const QJsonObject &containerConfig, ErrorCode *errorCode = nullptr);
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,
2021-10-04 19:07:49 +03:00
DockerContainer container, ErrorCode *errorCode = nullptr);
};
#endif // IKEV2_CONFIGURATOR_H