Compare commits

..

37 Commits

Author SHA1 Message Date
pokamest 330c341922 OpenVPN3 pluggable transport cloak for ios (#227)
OpenVPN3 pluggable transport cloak for ios
2023-05-23 19:14:28 +01:00
pokamest 4ddddec978 Merge branch 'dev' into android_pt_transport_source 2023-05-17 21:26:13 +01:00
Mykola Baibuz 77d46dfeb3 Update Cloak submodule 2023-05-08 13:15:36 -04:00
Mykola Baibuz 74caca67ee Remove unused library (libjbcrypto.so) 2023-05-06 19:42:15 -04:00
pokamest 71ec3336eb Merge pull request #222 from amnezia-vpn/fix/cloak_closing_issue
Turning off an ovpn thread before starting the new one
2023-04-18 17:43:40 +01:00
Dmitriy Karpushin 2f8f759765 Turning off an ovpn thread before starting the new one 2023-04-18 14:01:33 +03:00
pokamest f7004f62dd Merge branch 'dev' into android_pt_transport_source 2023-04-11 20:00:31 +01:00
Mykola Baibuz 7ea1677df6 Merge remote-tracking branch 'origin/dev' into android_pt_transport_source 2023-04-10 15:18:31 -04:00
Mykola Baibuz d5062674f2 Merge remote-tracking branch 'origin/dev' into android_pt_transport_source 2023-04-06 15:18:46 -04:00
pokamest 33efa56f25 Merge branch 'dev' into android_pt_transport_source 2023-03-31 19:20:09 +01:00
Mykola Baibuz 930e227a9e Update OpenVPN3 version
This changes the OpenVPN3 version number to 3.7.2
2023-03-12 17:59:26 -04:00
Mykola Baibuz bdaa56f734 Fix cloak plugin build 2023-03-12 08:25:19 -04:00
Mykola Baibuz c430cca538 Update OpenVPN3 repo
update openvpn3 submodule
2023-03-12 05:41:23 -04:00
pokamest fc8dfce90d Lib prefix added to cloak libs 2023-03-12 01:39:27 +00:00
Dmitriy Karpushin beca12ae40 Setting of minimum cmake version to 3.25 for cloak build 2023-03-10 12:09:46 +03:00
pokamest 109512d83e Merge branch 'dev' into android_pt_transport_source 2023-03-06 12:08:45 +00:00
pokamest 1fb21cfbfc Merge branch 'dev' into android_pt_transport_source 2023-03-05 12:05:43 +00:00
pokamest ff5fc4cd2a Merge branch 'dev' into android_pt_transport_source 2023-02-22 18:27:12 +00:00
pokamest 3f600c0088 Android pt refactor (#176)
Cloak build fix
2023-02-17 01:34:08 +00:00
Mykola Baibuz adc07a2b6a Build Cloak plugin with CMake 2023-02-05 09:25:36 -05:00
Dmitriy Karpushin 7e3134cdbb Proper destruction of ovpn thread 2023-01-31 14:32:42 +03:00
Dmitriy Karpushin 95b3b0eae3 Incorrect Pluggable Transport initialization fix 2023-01-31 10:20:36 +03:00
pokamest 61c27af17c Merge branch 'dev' into android_pt_transport_source 2023-01-30 20:48:59 +00:00
Dmitriy Karpushin 2fa82a05d9 * For the openvpn-cloak container, the choice of the transport protocol in the openvpn settings is blocked
* fixed warning with QFutureWatcher
2023-01-30 18:20:41 +03:00
Dmitriy Karpushin f8408e863a Support of cloak config inside of ovpn config 2023-01-30 18:08:45 +03:00
Mykola Baibuz 3c0ac8170d Pulled down update to openvpn3 2023-01-28 23:49:10 +02:00
Mykola Baibuz 591e0fea80 Remove lzo library and add it as a submodule 2023-01-20 16:15:43 +02:00
Mykola Baibuz 9a67d2684e Remove unused files 2023-01-20 15:13:08 +02:00
Mykola Baibuz 2d624b3b59 Add android plugin into apk 2023-01-20 09:33:15 +02:00
Mykola Baibuz cc93898c60 Add lzo module for Android build 2023-01-19 23:58:16 +02:00
Mykola Baibuz 3f265b899e Remove prebuilded native libraries from cmake 2023-01-19 23:56:10 +02:00
Mykola Baibuz 799c3ec6e6 Remove strip from plugin build script 2023-01-19 23:32:38 +02:00
Mykola Baibuz 32b355a54e Update deploy env for GO support 2023-01-19 23:08:39 +02:00
Mykola Baibuz 82e831f6d8 Add Cloak plugin android build script 2023-01-19 23:00:43 +02:00
Mykola Baibuz a19e69ae61 Update swig output 2023-01-19 22:54:47 +02:00
Mykola Baibuz 995a60c503 Remove prebuilded native libraries 2023-01-19 22:52:48 +02:00
Mykola Baibuz 0bb4ad2fbe Add android OpenVPN3 submodules
This submodules are needed by android native build from sources.
2023-01-19 22:49:01 +02:00
12 changed files with 31 additions and 166 deletions
-1
View File
@@ -2,4 +2,3 @@ deploy/data/windows/x64/tap/windows_7/OemVista.inf eol=crlf
deploy/data/windows/x64/tap/windows_10/OemVista.inf eol=crlf
deploy/data/windows/x32/tap/windows_7/OemVista.inf eol=crlf
deploy/data/windows/x32/tap/windows_10/OemVista.inf eol=crlf
client/3rd/* linguist-vendored
-47
View File
@@ -1,47 +0,0 @@
FROM gitpod/workspace-full-vnc
USER gitpod
RUN sudo apt-get -q update \
&& sudo apt-get install -yq \
build-essential \
libgl1-mesa-dev \
libgstreamer-gl1.0-0 \
libpulse-dev \
libsecret-1-dev \
libxcb-glx0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-render0 \
libxcb-shape0 \
libxcb-shm0 \
libxcb-sync1 \
libxcb-util1 \
libxcb-xfixes0 \
libxcb-xinerama0 \
libxcb1 \
libxkbcommon-dev \
libxkbcommon-x11-0 \
libxcb-xkb-dev \
p7zip-full \
&& sudo rm -rf /var/lib/apt/lists/*
RUN sudo pip3 install aqtinstall
ARG QT_VERSION=6.4.1
ARG QT_ARCH=gcc_64
ARG QT_DIR=/opt/qt
RUN sudo aqt install-qt --outputdir ${QT_DIR} linux desktop ${QT_VERSION} ${QT_ARCH} --modules \
qtremoteobjects \
qt5compat \
qtshadertools
ENV QT_BIN_DIR=${QT_DIR}/${QT_VERSION}/${QT_ARCH}/bin
ARG QIF_VERSION=4.5
ARG QIF_DIR=/opt/qif
RUN sudo aqt install-tool --outputdir ${QIF_DIR} linux desktop tools_ifw
ENV QIF_BIN_DIR=${QIF_DIR}/Tools/QtInstallerFramework/${QIF_VERSION}/bin
-8
View File
@@ -1,8 +0,0 @@
tasks:
- init: >-
deploy/build_linux.sh
image:
file: .gitpod.Dockerfile
vscode:
extensions:
- llvm-vs-code-extensions.vscode-clangd
+1 -2
View File
@@ -1,8 +1,7 @@
# Amnezia VPN
## _The best client for self-hosted VPN_
[![Build Status](https://github.com/amnezia-vpn/amnezia-client/actions/workflows/deploy.yml/badge.svg?branch=dev)](https://github.com/amnezia-vpn/amnezia-client/actions/workflows/deploy.yml?query=branch:dev)
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/amnezia-vpn/amnezia-client)
[![Build Status](https://github.com/amnezia-vpn/desktop-client/actions/workflows/deploy.yml/badge.svg?branch=dev)]
Amnezia is a VPN client with the key feature of deploying your own VPN server on you virtual server.
+5 -2
View File
@@ -42,8 +42,11 @@ QString CloakConfigurator::genCloakConfig(const ServerCredentials &credentials,
config.insert("NumConn", 1);
config.insert("BrowserSig", "chrome");
config.insert("StreamTimeout", 300);
config.insert("RemoteHost", credentials.hostName);
config.insert("RemotePort", "$CLOAK_SERVER_PORT");
// transfer params to protocol runner
config.insert(config_key::transport_proto, "tcp");
config.insert(config_key::remote, credentials.hostName);
config.insert(config_key::port, "$CLOAK_SERVER_PORT");
QString textCfg = serverController.replaceVars(QJsonDocument(config).toJson(),
serverController.genVarsForScript(credentials, container, containerConfig));
+1 -87
View File
@@ -80,92 +80,6 @@
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>WireGuard config</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>org.amnezia.AmneziaVPN.wireguard-config</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>conf</string>
<string>cfg</string>
</array>
<key>public.mime-type</key>
<array>
<string>text/plain</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>OpenVPN config</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>org.amnezia.AmneziaVPN.openvpn-config</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>ovpn</string>
</array>
<key>public.mime-type</key>
<array>
<string>text/plain</string>
</array>
</dict>
</dict>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string>AmneziaVPN backup file</string>
<key>UTTypeIconFiles</key>
<array/>
<key>UTTypeIdentifier</key>
<string>org.amnezia.AmneziaVPN.backup-config</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>backup</string>
</array>
<key>public.mime-type</key>
<array>
<string>text/plain</string>
</array>
</dict>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>Amnezia VPN config</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>org.amnezia.AmneziaVPN.amnezia-config</string>
<string>org.amnezia.AmneziaVPN.wireguard-config</string>
<string>org.amnezia.AmneziaVPN.openvpn-config</string>
<string>org.amnezia.AmneziaVPN.backup-config</string>
</array>
</dict>
</array>
</dict>
</plist>
</plist>
@@ -249,7 +249,7 @@ void AndroidController::cleanupBackendLogs() {
}
void AndroidController::importConfig(const QString& data){
m_startPageLogic->importAnyFile(data);
m_startPageLogic->selectConfigFormat(data);
}
const QJsonObject &AndroidController::vpnConfig() const
+3 -1
View File
@@ -73,13 +73,15 @@
NSLog(@"Application openURL: %@", url);
if (url.fileURL) {
QString filePath(url.path.UTF8String);
qDebug() << "filePath:" << filePath;
if (filePath.isEmpty()) return NO;
QFile file(filePath);
bool isOpenFile = file.open(QIODevice::ReadOnly);
qDebug() << "isOpenFile:" << isOpenFile;
QByteArray data = file.readAll();
[QtAppDelegate sharedQtAppDelegate].startPageLogic->importAnyFile(QString(data));
[QtAppDelegate sharedQtAppDelegate].startPageLogic->importConnectionFromCode(QString(data));
return YES;
}
return NO;
+14 -12
View File
@@ -18,7 +18,10 @@ OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol()
{
qDebug() << "OpenVpnOverCloakProtocol::~OpenVpnOverCloakProtocol";
OpenVpnOverCloakProtocol::stop();
QThread::msleep(200);
#ifndef Q_OS_IOS
m_ckProcess.close();
#endif
}
ErrorCode OpenVpnOverCloakProtocol::start()
@@ -27,17 +30,11 @@ ErrorCode OpenVpnOverCloakProtocol::start()
setLastError(ErrorCode::CloakExecutableMissing);
return lastError();
}
#ifndef Q_OS_IOS
if (Utils::processIsRunning(Utils::executable("ck-client", false))) {
Utils::killProcessByName(Utils::executable("ck-client", false));
}
// workaround for desktop releases >= 3.0.7
if (!m_cloakConfig.contains("RemoteHost") && m_cloakConfig.contains(config_key::remote)) {
m_cloakConfig["RemoteHost"] = m_cloakConfig.value(config_key::remote);
m_cloakConfig["RemotePort"] = m_cloakConfig.value(config_key::port);
}
#ifdef QT_DEBUG
m_cloakCfgFile.setAutoRemove(false);
#endif
@@ -46,8 +43,15 @@ ErrorCode OpenVpnOverCloakProtocol::start()
m_cloakCfgFile.close();
QStringList args = QStringList() << "-c" << m_cloakCfgFile.fileName()
<< "-s" << m_cloakConfig.value(config_key::remote).toString()
<< "-p" << m_cloakConfig.value(config_key::port).toString(amnezia::protocols::cloak::defaultPort)
<< "-l" << amnezia::protocols::openvpn::defaultPort;
ProtocolEnumNS::TransportProto tp = ProtocolProps::transportProtoFromString(m_cloakConfig.value(config_key::transport_proto).toString());
if (tp == ProtocolEnumNS::TransportProto::Udp) {
args << "-u";
}
qDebug().noquote() << "OpenVpnOverCloakProtocol::start()"
<< cloakExecPath() << args.join(" ");
@@ -82,6 +86,7 @@ ErrorCode OpenVpnOverCloakProtocol::start()
return OpenVpnProtocol::start();
}
else return ErrorCode::CloakExecutableMissing;
#endif
}
void OpenVpnOverCloakProtocol::stop()
@@ -95,12 +100,9 @@ void OpenVpnOverCloakProtocol::stop()
Utils::signalCtrl(m_ckProcess.processId(), CTRL_C_EVENT);
#endif
#ifndef Q_OS_IOS
m_ckProcess.terminate();
if (Utils::processIsRunning(Utils::executable("ck-client", false))) {
QThread::msleep(1000);
Utils::killProcessByName(Utils::executable("ck-client", false));
}
#endif
}
QString OpenVpnOverCloakProtocol::cloakExecPath()
+2 -2
View File
@@ -192,7 +192,7 @@ void StartPageLogic::onPushButtonImportOpenFile()
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
importAnyFile(QString(data));
selectConfigFormat(QString(data));
}
#ifdef Q_OS_ANDROID
@@ -202,7 +202,7 @@ void StartPageLogic::startQrDecoder()
}
#endif
void StartPageLogic::importAnyFile(const QString &configData)
void StartPageLogic::selectConfigFormat(QString configData)
{
auto configFormat = checkConfigFormat(configData);
if (configFormat == ConfigTypes::OpenVpn) {
+1 -1
View File
@@ -37,7 +37,7 @@ public:
Q_INVOKABLE void startQrDecoder();
#endif
void importAnyFile(const QString &configData);
void selectConfigFormat(QString configData);
bool importConnection(const QJsonObject &profile);
bool importConnectionFromCode(QString code);
+3 -2
View File
@@ -83,7 +83,7 @@ bool Utils::processIsRunning(const QString& fileName)
QProcess process;
process.setReadChannel(QProcess::StandardOutput);
process.setProcessChannelMode(QProcess::MergedChannels);
process.start("wmic.exe", QStringList() << "/OUTPUT:STDOUT" << "PROCESS" << "get" << "Caption");
process.start(QString("wmic.exe /OUTPUT:STDOUT PROCESS get %1").arg("Caption"));
process.waitForStarted();
process.waitForFinished();
QString processData(process.readAll());
@@ -165,8 +165,9 @@ bool Utils::checkIpSubnetFormat(const QString &ip)
void Utils::killProcessByName(const QString &name)
{
qDebug().noquote() << "Kill process" << name;
qDebug() << "Hello";
#ifdef Q_OS_WIN
QProcess::execute("taskkill", QStringList() << "/IM" << name << "/F");
QProcess::execute(QString("taskkill /im %1 /f").arg(name));
#elif defined Q_OS_IOS
return;
#else