From bca3141e059baa24f3bc34f845d7c0424de35096 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 15 May 2023 10:37:43 +0200 Subject: [PATCH 01/63] refactor: use shared ApiService in IVPNWidget.swift --- IVPNClient.xcodeproj/project.pbxproj | 4 ++++ IVPNClient/Managers/APIClient.swift | 2 +- IVPNClient/Managers/ApiService.swift | 14 -------------- IVPNWidget/IVPNWidget.swift | 2 +- IVPNWidget/Service/APIService.swift | 4 ++-- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 0d77b1adc..0c87cc347 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -130,6 +130,8 @@ 8270D266241A477900B17B65 /* InfoAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8270D265241A477900B17B65 /* InfoAlertView.swift */; }; 8270D268241BB3D100B17B65 /* InfoAlertViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8270D267241BB3D000B17B65 /* InfoAlertViewModel.swift */; }; 8271D2E32A092F7B0052AF61 /* UIDevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8271D2E22A092F7B0052AF61 /* UIDevice.swift */; }; + 8271D2E42A1224530052AF61 /* ApiService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C2833891D9D41A60024C553 /* ApiService.swift */; }; + 8271D2E52A1224A70052AF61 /* ErrorResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8232FBF32240DE19006B81D2 /* ErrorResult.swift */; }; 827694F3263C04C40058B4DC /* LoginConfirmation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 827694F2263C04C40058B4DC /* LoginConfirmation.swift */; }; 82774855237596DF0061BD46 /* OpenVPNConf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82774854237596DF0061BD46 /* OpenVPNConf.swift */; }; 8277F1CD22118D08007C6F15 /* ProofsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8277F1CC22118D08007C6F15 /* ProofsViewModel.swift */; }; @@ -2042,12 +2044,14 @@ 82C61DA229E6C3F100AF972A /* UserDefaults+Ext.swift in Sources */, 8206BAFF29ED6FFF00F916B7 /* ConnectionInfoView.swift in Sources */, 82E3B20F29DDCC6400998F67 /* IVPNWidgetBundle.swift in Sources */, + 8271D2E52A1224A70052AF61 /* ErrorResult.swift in Sources */, 82C61DAB29E6C56400AF972A /* APIPublicKeyPin.swift in Sources */, 82C61DA529E6C48100AF972A /* OpenVPNProtocol.swift in Sources */, 82C61DA429E6C46900AF972A /* ConnectionSettings.swift in Sources */, 82C61D9D29E6C2D200AF972A /* APIService.swift in Sources */, 82152C9929F14B4C007FCECC /* KeyChain.swift in Sources */, 82C61D9E29E6C32400AF972A /* ApiRequestDI.swift in Sources */, + 8271D2E42A1224530052AF61 /* ApiService.swift in Sources */, 8206BAFA29ED69D300F916B7 /* DataService.swift in Sources */, 82C61DB429E6C72700AF972A /* LocationViewModel.swift in Sources */, 82C61DA629E6C48700AF972A /* WireGuardProtocol.swift in Sources */, diff --git a/IVPNClient/Managers/APIClient.swift b/IVPNClient/Managers/APIClient.swift index 5b2a3bd31..1477f4c10 100644 --- a/IVPNClient/Managers/APIClient.swift +++ b/IVPNClient/Managers/APIClient.swift @@ -193,7 +193,7 @@ class APIClient: NSObject { do { urlRequest.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) - } catch let error { + } catch { } diff --git a/IVPNClient/Managers/ApiService.swift b/IVPNClient/Managers/ApiService.swift index 40e10eb76..e7d84126b 100644 --- a/IVPNClient/Managers/ApiService.swift +++ b/IVPNClient/Managers/ApiService.swift @@ -40,15 +40,12 @@ class ApiService { // MARK: - Methods - func request(_ requestDI: ApiRequestDI, completion: @escaping (Result) -> Void) { - let requestName = "\(requestDI.method.description) \(requestDI.endpoint)" let request = APIRequest(method: requestDI.method, path: requestDI.endpoint, contentType: requestDI.contentType, addressType: requestDI.addressType) if let params = requestDI.params { request.queryItems = params } - log(.info, message: "\(requestName) started") - APIClient().perform(request) { result in DispatchQueue.main.async { switch result { @@ -60,7 +57,6 @@ class ApiService { do { let successResponse = try decoder.decode(T.self, from: data) completion(.success(successResponse)) - log(.info, message: "\(requestName) success") return } catch {} @@ -68,15 +64,12 @@ class ApiService { let errorResponse = try decoder.decode(ErrorResult.self, from: data) let error = self.getServiceError(message: errorResponse.message, code: errorResponse.status) completion(.failure(error)) - log(.info, message: "\(requestName) error response") return } catch {} } completion(.failure(nil)) - log(.info, message: "\(requestName) parse error") case .failure(let error): - log(.info, message: "\(requestName) failure") completion(.failure(error)) } } @@ -84,15 +77,12 @@ class ApiService { } func requestCustomError(_ requestDI: ApiRequestDI, completion: @escaping (ResultCustomError) -> Void) { - let requestName = "\(requestDI.method.description) \(requestDI.endpoint)" let request = APIRequest(method: requestDI.method, path: requestDI.endpoint, contentType: requestDI.contentType, addressType: requestDI.addressType) if let params = requestDI.params { request.queryItems = params } - log(.info, message: "\(requestName) started") - APIClient().perform(request) { result in DispatchQueue.main.async { switch result { @@ -104,22 +94,18 @@ class ApiService { do { let successResponse = try decoder.decode(T.self, from: data) completion(.success(successResponse)) - log(.info, message: "\(requestName) success") return } catch {} do { let errorResponse = try decoder.decode(E.self, from: data) completion(.failure(errorResponse)) - log(.info, message: "\(requestName) error response") return } catch {} } completion(.failure(nil)) - log(.info, message: "\(requestName) parse error") case .failure: - log(.info, message: "\(requestName) failure") completion(.failure(nil)) } } diff --git a/IVPNWidget/IVPNWidget.swift b/IVPNWidget/IVPNWidget.swift index c524f7994..36b3a206e 100644 --- a/IVPNWidget/IVPNWidget.swift +++ b/IVPNWidget/IVPNWidget.swift @@ -61,7 +61,7 @@ struct Provider: TimelineProvider { let apiService = WidgetAPIService() let requestIPv4 = ApiRequestDI(method: .get, endpoint: Config.apiGeoLookup, addressType: .IPv4) - apiService.request(requestIPv4) { (result: Result) in + ApiService.shared.request(requestIPv4) { (result: Result) in switch result { case .success(let model): let status: NEVPNStatus = model.isIvpnServer ? .connected : .disconnected diff --git a/IVPNWidget/Service/APIService.swift b/IVPNWidget/Service/APIService.swift index e2824cf68..c20fde89e 100644 --- a/IVPNWidget/Service/APIService.swift +++ b/IVPNWidget/Service/APIService.swift @@ -23,12 +23,12 @@ import Foundation -protocol APIService { +protocol APIServiceProtocol { func request(_ requestDI: ApiRequestDI, completion: @escaping (Result) -> Void) func getServiceError(message: String, code: Int) -> NSError } -class WidgetAPIService: APIService { +class WidgetAPIService: APIServiceProtocol { func request(_ requestDI: ApiRequestDI, completion: @escaping (Result) -> Void) { let request = APIRequest(method: requestDI.method, path: requestDI.endpoint, addressType: requestDI.addressType) From 7d3e2bdad2fd53d1af6bfa22850877281bc058e0 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 15 May 2023 10:48:50 +0200 Subject: [PATCH 02/63] refactor: remove IVPNWidget/Service/APIService.swift --- IVPNClient.xcodeproj/project.pbxproj | 4 -- IVPNWidget/IVPNWidget.swift | 1 - IVPNWidget/Service/APIService.swift | 71 ---------------------------- 3 files changed, 76 deletions(-) delete mode 100644 IVPNWidget/Service/APIService.swift diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 0c87cc347..1054067ea 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -211,7 +211,6 @@ 82C34D6F26FB02F900F06016 /* WireGuardEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C34D6D26FB02F900F06016 /* WireGuardEndpoint.swift */; }; 82C61D9629E6ADEF00AF972A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9CDDD5B51D9D2F9F00D39924 /* Assets.xcassets */; }; 82C61D9929E6B4C600AF972A /* LocationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C61D9829E6B4C600AF972A /* LocationView.swift */; }; - 82C61D9D29E6C2D200AF972A /* APIService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C61D9C29E6C2D200AF972A /* APIService.swift */; }; 82C61D9E29E6C32400AF972A /* ApiRequestDI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821429BA22FC36100056B8FF /* ApiRequestDI.swift */; }; 82C61D9F29E6C33700AF972A /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821429B622FC2BE90056B8FF /* Result.swift */; }; 82C61DA029E6C37300AF972A /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82DC75BB22B277D200D3C73C /* APIClient.swift */; }; @@ -598,7 +597,6 @@ 82C2E5DE21620FF100C5A09F /* UIDevice+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDevice+Ext.swift"; sourceTree = ""; }; 82C34D6D26FB02F900F06016 /* WireGuardEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WireGuardEndpoint.swift; sourceTree = ""; }; 82C61D9829E6B4C600AF972A /* LocationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationView.swift; sourceTree = ""; }; - 82C61D9C29E6C2D200AF972A /* APIService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIService.swift; sourceTree = ""; }; 82C61DA829E6C4CF00AF972A /* Widget-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Widget-Bridging-Header.h"; sourceTree = ""; }; 82C61DB329E6C72700AF972A /* LocationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationViewModel.swift; sourceTree = ""; }; 82C61DB629E6CA7600AF972A /* widget-staging.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "widget-staging.xcconfig"; sourceTree = ""; }; @@ -1245,7 +1243,6 @@ isa = PBXGroup; children = ( 8206BAF929ED69D300F916B7 /* DataService.swift */, - 82C61D9C29E6C2D200AF972A /* APIService.swift */, ); path = Service; sourceTree = ""; @@ -2048,7 +2045,6 @@ 82C61DAB29E6C56400AF972A /* APIPublicKeyPin.swift in Sources */, 82C61DA529E6C48100AF972A /* OpenVPNProtocol.swift in Sources */, 82C61DA429E6C46900AF972A /* ConnectionSettings.swift in Sources */, - 82C61D9D29E6C2D200AF972A /* APIService.swift in Sources */, 82152C9929F14B4C007FCECC /* KeyChain.swift in Sources */, 82C61D9E29E6C32400AF972A /* ApiRequestDI.swift in Sources */, 8271D2E42A1224530052AF61 /* ApiService.swift in Sources */, diff --git a/IVPNWidget/IVPNWidget.swift b/IVPNWidget/IVPNWidget.swift index 36b3a206e..b3343d036 100644 --- a/IVPNWidget/IVPNWidget.swift +++ b/IVPNWidget/IVPNWidget.swift @@ -59,7 +59,6 @@ struct Provider: TimelineProvider { UserDefaults.shared.set(Date(), forKey: UserDefaults.Key.lastWidgetUpdate) - let apiService = WidgetAPIService() let requestIPv4 = ApiRequestDI(method: .get, endpoint: Config.apiGeoLookup, addressType: .IPv4) ApiService.shared.request(requestIPv4) { (result: Result) in switch result { diff --git a/IVPNWidget/Service/APIService.swift b/IVPNWidget/Service/APIService.swift deleted file mode 100644 index c20fde89e..000000000 --- a/IVPNWidget/Service/APIService.swift +++ /dev/null @@ -1,71 +0,0 @@ -// -// APIService.swift -// IVPN iOS app -// https://github.com/ivpn/ios-app -// -// Created by Juraj Hilje on 2023-04-12. -// Copyright (c) 2023 Privatus Limited. -// -// This file is part of the IVPN iOS app. -// -// The IVPN iOS app is free software: you can redistribute it and/or -// modify it under the terms of the GNU General Public License as published by the Free -// Software Foundation, either version 3 of the License, or (at your option) any later version. -// -// The IVPN iOS app is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License -// along with the IVPN iOS app. If not, see . -// - -import Foundation - -protocol APIServiceProtocol { - func request(_ requestDI: ApiRequestDI, completion: @escaping (Result) -> Void) - func getServiceError(message: String, code: Int) -> NSError -} - -class WidgetAPIService: APIServiceProtocol { - - func request(_ requestDI: ApiRequestDI, completion: @escaping (Result) -> Void) { - let request = APIRequest(method: requestDI.method, path: requestDI.endpoint, addressType: requestDI.addressType) - - if let params = requestDI.params { - request.queryItems = params - } - - APIClient().perform(request) { result in - DispatchQueue.main.async { - switch result { - case .success(let response): - if let data = response.body { - let decoder = JSONDecoder() - decoder.keyDecodingStrategy = .convertFromSnakeCase - - do { - let successResponse = try decoder.decode(T.self, from: data) - completion(.success(successResponse)) - return - } catch {} - } - - completion(.failure(nil)) - case .failure: - completion(.failure(nil)) - } - } - } - } - - func getServiceError(message: String, code: Int = 99) -> NSError { - return NSError( - domain: "ApiServiceDomain", - code: code, - userInfo: [NSLocalizedDescriptionKey: message] - ) - } - -} From d7ac3af8e84c9417ed2e37941c910c56fb4528c5 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 15 May 2023 14:21:37 +0200 Subject: [PATCH 03/63] refactor: use shared ApiService in WireGuard tunnel extension --- IVPNClient.xcodeproj/project.pbxproj | 27 ++++-- .../OpenVPNNetworkExtension-Bridging-Header.h | 3 + wireguard-tunnel-provider/ApiManager.swift | 86 ------------------- .../ExtensionKeyManager.swift | 4 +- 4 files changed, 26 insertions(+), 94 deletions(-) create mode 100644 openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h delete mode 100644 wireguard-tunnel-provider/ApiManager.swift diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 1054067ea..b081ebc08 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -92,11 +92,9 @@ 824B86BF26D3D16100D0101A /* ringlogger.c in Sources */ = {isa = PBXBuildFile; fileRef = 824B86B526D3D16100D0101A /* ringlogger.c */; }; 824B86C526D3D7B600D0101A /* ExtensionKeyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C226D3D7B500D0101A /* ExtensionKeyManager.swift */; }; 824B86C626D3D7B600D0101A /* TimerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C326D3D7B600D0101A /* TimerManager.swift */; }; - 824B86C726D3D7B600D0101A /* ApiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C426D3D7B600D0101A /* ApiManager.swift */; }; 824B86C826D3D7DE00D0101A /* Interface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8292E1A82174C11600123538 /* Interface.swift */; }; 824B86C926D3D7FB00D0101A /* CIDRAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82F638CB217DC25600410318 /* CIDRAddress.swift */; }; 824B86CB26D3E8D100D0101A /* ExtensionKeyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C226D3D7B500D0101A /* ExtensionKeyManager.swift */; }; - 824B86CC26D3E8F600D0101A /* ApiManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C426D3D7B600D0101A /* ApiManager.swift */; }; 824B86D226D40E7800D0101A /* FileManager+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86AD26D3D16100D0101A /* FileManager+Extension.swift */; }; 824B86D426D40E9700D0101A /* ringlogger.c in Sources */ = {isa = PBXBuildFile; fileRef = 824B86B526D3D16100D0101A /* ringlogger.c */; }; 824B86DF26D42A4600D0101A /* WireGuardKit in Frameworks */ = {isa = PBXBuildFile; productRef = 824B86DE26D42A4600D0101A /* WireGuardKit */; }; @@ -292,6 +290,14 @@ 82EC884129A12D170024CC40 /* ActiveLabel in Frameworks */ = {isa = PBXBuildFile; productRef = 82EC884029A12D170024CC40 /* ActiveLabel */; }; 82EC884429A12D370024CC40 /* FloatingPanel in Frameworks */ = {isa = PBXBuildFile; productRef = 82EC884329A12D370024CC40 /* FloatingPanel */; }; 82EC884729A12D510024CC40 /* SnapKit in Frameworks */ = {isa = PBXBuildFile; productRef = 82EC884629A12D510024CC40 /* SnapKit */; }; + 82ED173F2A1258E100E7926D /* ApiService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C2833891D9D41A60024C553 /* ApiService.swift */; }; + 82ED17402A1258EA00E7926D /* ApiService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C2833891D9D41A60024C553 /* ApiService.swift */; }; + 82ED17412A12594000E7926D /* ApiRequestDI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821429BA22FC36100056B8FF /* ApiRequestDI.swift */; }; + 82ED17422A12595900E7926D /* APIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82DC75BB22B277D200D3C73C /* APIClient.swift */; }; + 82ED17432A12596E00E7926D /* AddressType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82F638C1217DA89000410318 /* AddressType.swift */; }; + 82ED17442A12598000E7926D /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821429B622FC2BE90056B8FF /* Result.swift */; }; + 82ED17462A125A3000E7926D /* APIAccessManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 820535272302B9D7007BDD58 /* APIAccessManager.swift */; }; + 82ED17472A125A4700E7926D /* APIPublicKeyPin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825E836225A4834200938240 /* APIPublicKeyPin.swift */; }; 82EEB6C625F9398600915837 /* DNSProtocolType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82EEB6C525F9398600915837 /* DNSProtocolType.swift */; }; 82EEB6CD25F9422900915837 /* DNSProtocolType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82EEB6C525F9398600915837 /* DNSProtocolType.swift */; }; 82EEB6DB25F961BC00915837 /* URL+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82CE598F25ED3C7A0078099D /* URL+Ext.swift */; }; @@ -490,7 +496,6 @@ 824B86B726D3D16100D0101A /* ringlogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ringlogger.h; sourceTree = ""; }; 824B86C226D3D7B500D0101A /* ExtensionKeyManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExtensionKeyManager.swift; sourceTree = ""; }; 824B86C326D3D7B600D0101A /* TimerManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimerManager.swift; sourceTree = ""; }; - 824B86C426D3D7B600D0101A /* ApiManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiManager.swift; sourceTree = ""; }; 824BC465240906ED00A61B29 /* VPNStatusViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNStatusViewModel.swift; sourceTree = ""; }; 824F56072233FE6F00BCDD5C /* libwg-go.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libwg-go.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 82526BEE24123D2900E00880 /* NetworkViewTableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkViewTableCell.swift; sourceTree = ""; }; @@ -647,6 +652,7 @@ 82E81AE62449C44F00D81FB7 /* PaymentComponentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentComponentView.swift; sourceTree = ""; }; 82E96A4A224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionKeyManagerTests.swift; sourceTree = ""; }; 82EA857921DCF0C300EB0EC9 /* StorageManager+OnDemandRuleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "StorageManager+OnDemandRuleTests.swift"; sourceTree = ""; }; + 82ED17452A1259CB00E7926D /* OpenVPNNetworkExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OpenVPNNetworkExtension-Bridging-Header.h"; sourceTree = ""; }; 82EEB6C525F9398600915837 /* DNSProtocolType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DNSProtocolType.swift; sourceTree = ""; }; 82F189A1225CE8A90038ABA0 /* UIView+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Ext.swift"; sourceTree = ""; }; 82F638C1217DA89000410318 /* AddressType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressType.swift; sourceTree = ""; }; @@ -1266,7 +1272,6 @@ 824B86AA26D3D16100D0101A /* WireGuard */, 829FCCDE230D23FE009C63DF /* Config */, 82B605252170840C004B40E6 /* PacketTunnelProvider.swift */, - 824B86C426D3D7B600D0101A /* ApiManager.swift */, 824B86C226D3D7B500D0101A /* ExtensionKeyManager.swift */, 824B86C326D3D7B600D0101A /* TimerManager.swift */, 82B605272170840C004B40E6 /* Info.plist */, @@ -1509,6 +1514,7 @@ children = ( 9C7840AA20CD8A8A00335736 /* PacketTunnelProvider.swift */, 9C7840AC20CD8A8A00335736 /* Info.plist */, + 82ED17452A1259CB00E7926D /* OpenVPNNetworkExtension-Bridging-Header.h */, 9C7840AD20CD8A8A00335736 /* openvpn_tunnel_provider.entitlements */, ); path = "openvpn-tunnel-provider"; @@ -1994,6 +2000,7 @@ 8264CFFC22422F6700E1721E /* Date+Ext.swift in Sources */, 82E716822181E8AF00D6B7C2 /* TunnelType.swift in Sources */, 820EA86B232242F800E16B2D /* ApiRequestDI.swift in Sources */, + 82ED173F2A1258E100E7926D /* ApiService.swift in Sources */, 8270753722AFC7E70067C323 /* StringProtocol+Ext.swift in Sources */, 82B605262170840C004B40E6 /* PacketTunnelProvider.swift in Sources */, 82E7168E2181E8E900D6B7C2 /* WireGuardProtocol.swift in Sources */, @@ -2004,7 +2011,6 @@ 824B86C926D3D7FB00D0101A /* CIDRAddress.swift in Sources */, 826C56D422FD551900D2B76A /* ServiceStatus.swift in Sources */, 82968A37298A98C900077E0A /* KeyChain.swift in Sources */, - 824B86C726D3D7B600D0101A /* ApiManager.swift in Sources */, 82EEB6CD25F9422900915837 /* DNSProtocolType.swift in Sources */, 820EA86C2322430700E16B2D /* Result.swift in Sources */, 824B86C526D3D7B600D0101A /* ExtensionKeyManager.swift in Sources */, @@ -2071,17 +2077,24 @@ buildActionMask = 2147483647; files = ( 823BD9E3231D4C8E002E631D /* ErrorResult.swift in Sources */, + 82ED17422A12595900E7926D /* APIClient.swift in Sources */, + 82ED17442A12598000E7926D /* Result.swift in Sources */, 82E7168D2181E8E900D6B7C2 /* WireGuardProtocol.swift in Sources */, 9CF7E37820F7ABE3008E0EC5 /* PacketTunnelProvider.swift in Sources */, 82D90474216C7DAF0032F3BE /* Date+Ext.swift in Sources */, 82E716992181E96F00D6B7C2 /* OpenVPNProtocol.swift in Sources */, 822EE96C215CE0E300BE77F6 /* UserDefaults+Ext.swift in Sources */, 8223C54F22EAEC7000CD283D /* Session.swift in Sources */, + 82ED17432A12596E00E7926D /* AddressType.swift in Sources */, 826C56D322FD551800D2B76A /* ServiceStatus.swift in Sources */, 82E716932181E90500D6B7C2 /* ConnectionSettings.swift in Sources */, 823FFB082338E09900F91A5D /* Capability.swift in Sources */, 826F7F4323A7AAD200777DB9 /* Array+Ext.swift in Sources */, + 82ED17402A1258EA00E7926D /* ApiService.swift in Sources */, 82968A36298A98C600077E0A /* KeyChain.swift in Sources */, + 82ED17462A125A3000E7926D /* APIAccessManager.swift in Sources */, + 82ED17412A12594000E7926D /* ApiRequestDI.swift in Sources */, + 82ED17472A125A4700E7926D /* APIPublicKeyPin.swift in Sources */, 82E716812181E8AF00D6B7C2 /* TunnelType.swift in Sources */, 82A208C121BAAC6C00C9AD44 /* Config.swift in Sources */, ); @@ -2176,7 +2189,6 @@ 82D598C821A6ADF1000FABDE /* NetworkType.swift in Sources */, 9CC29DF81E1D59E90080F799 /* Alerts+Ext.swift in Sources */, 9CB2CE1F1DAA5258007A4D2D /* Authentication.swift in Sources */, - 824B86CC26D3E8F600D0101A /* ApiManager.swift in Sources */, 82DAB37B2457013900302F4C /* Service.swift in Sources */, 82C2E5DF21620FF100C5A09F /* UIDevice+Ext.swift in Sources */, 824B86CB26D3E8D100D0101A /* ExtensionKeyManager.swift in Sources */, @@ -2742,6 +2754,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "net.ivpn.clients.ios.openvpn-tunnel-provider"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -2926,6 +2939,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "net.ivpn.clients.ios.openvpn-tunnel-provider"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -2971,6 +2985,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "net.ivpn.clients.ios.openvpn-tunnel-provider"; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h b/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h new file mode 100644 index 000000000..0e468a3ee --- /dev/null +++ b/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h @@ -0,0 +1,3 @@ +#include +#include +#include diff --git a/wireguard-tunnel-provider/ApiManager.swift b/wireguard-tunnel-provider/ApiManager.swift deleted file mode 100644 index dc34a3861..000000000 --- a/wireguard-tunnel-provider/ApiManager.swift +++ /dev/null @@ -1,86 +0,0 @@ -// -// ApiManager.swift -// IVPN iOS app -// https://github.com/ivpn/ios-app -// -// Created by Juraj Hilje on 2019-03-08. -// Copyright (c) 2020 Privatus Limited. -// -// This file is part of the IVPN iOS app. -// -// The IVPN iOS app is free software: you can redistribute it and/or -// modify it under the terms of the GNU General Public License as published by the Free -// Software Foundation, either version 3 of the License, or (at your option) any later version. -// -// The IVPN iOS app is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License -// along with the IVPN iOS app. If not, see . -// - -import Foundation - -class ApiManager { - - // MARK: - Properties - - - static let shared = ApiManager() - - static var authParams: [URLQueryItem] { - guard let sessionToken = KeyChain.sessionToken else { - return [] - } - - return [URLQueryItem(name: "session_token", value: sessionToken)] - } - - // MARK: - Methods - - - func request(_ requestDI: ApiRequestDI, completion: @escaping (Result) -> Void) { - let requestName = "\(requestDI.method.description) \(requestDI.endpoint)" - let request = APIRequest(method: requestDI.method, path: requestDI.endpoint) - - if let params = requestDI.params { - request.queryItems = params - } - - wg_log(.info, message: "\(requestName) started") - - APIClient().perform(request) { result in - switch result { - case .success(let response): - if let data = response.body { - let decoder = JSONDecoder() - decoder.keyDecodingStrategy = .convertFromSnakeCase - - do { - let successResponse = try decoder.decode(T.self, from: data) - completion(.success(successResponse)) - wg_log(.info, message: "\(requestName) success") - return - } catch {} - } - - completion(.failure(nil)) - wg_log(.info, message: "\(requestName) parse error") - case .failure: - wg_log(.info, message: "\(requestName) failure") - completion(.failure(nil)) - } - } - } - - // MARK: - Helper methods - - - func getServiceError(message: String, code: Int = 99) -> NSError { - return NSError( - domain: "ApiServiceDomain", - code: code, - userInfo: [NSLocalizedDescriptionKey: message] - ) - } - -} diff --git a/wireguard-tunnel-provider/ExtensionKeyManager.swift b/wireguard-tunnel-provider/ExtensionKeyManager.swift index 7607536bf..1bd82c4a2 100644 --- a/wireguard-tunnel-provider/ExtensionKeyManager.swift +++ b/wireguard-tunnel-provider/ExtensionKeyManager.swift @@ -58,14 +58,14 @@ struct ExtensionKeyManager { var interface = Interface() interface.privateKey = Interface.generatePrivateKey() - let params = ApiManager.authParams + [ + let params = ApiService.authParams + [ URLQueryItem(name: "connected_public_key", value: KeyChain.wgPublicKey ?? ""), URLQueryItem(name: "public_key", value: interface.publicKey ?? "") ] let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionWGKeySet, params: params) - ApiManager.shared.request(request) { (result: Result) in + ApiService.shared.request(request) { (result: Result) in switch result { case .success(let model): var ipAddress = model.ipAddress From 21f8bdf86079b2082e75d7504a91d28570abe582 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 15 May 2023 14:57:34 +0200 Subject: [PATCH 04/63] feat(openvpn): include ExtensionKeyManager in OpenVPN extension --- IVPNClient.xcodeproj/project.pbxproj | 24 +++ IVPNClient/Models/WireGuard/Interface.swift | 1 - openvpn-tunnel-provider/Curve25519/x25519.c | 178 ++++++++++++++++++ openvpn-tunnel-provider/Curve25519/x25519.h | 7 + .../OpenVPNNetworkExtension-Bridging-Header.h | 1 + .../ExtensionKeyManager.swift | 4 +- 6 files changed, 213 insertions(+), 2 deletions(-) create mode 100644 openvpn-tunnel-provider/Curve25519/x25519.c create mode 100644 openvpn-tunnel-provider/Curve25519/x25519.h diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index b081ebc08..d46440366 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -298,6 +298,12 @@ 82ED17442A12598000E7926D /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 821429B622FC2BE90056B8FF /* Result.swift */; }; 82ED17462A125A3000E7926D /* APIAccessManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 820535272302B9D7007BDD58 /* APIAccessManager.swift */; }; 82ED17472A125A4700E7926D /* APIPublicKeyPin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825E836225A4834200938240 /* APIPublicKeyPin.swift */; }; + 82ED17482A125C9100E7926D /* TimerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C326D3D7B600D0101A /* TimerManager.swift */; }; + 82ED174B2A125D0900E7926D /* InterfaceResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 820EA86723223F7900E16B2D /* InterfaceResult.swift */; }; + 82ED17542A1261A000E7926D /* x25519.c in Sources */ = {isa = PBXBuildFile; fileRef = 82ED17512A1261A000E7926D /* x25519.c */; }; + 82ED17552A1262BA00E7926D /* Interface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8292E1A82174C11600123538 /* Interface.swift */; }; + 82ED17592A1262F800E7926D /* Data+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 828E9C94231E5780001E1FCF /* Data+Ext.swift */; }; + 82ED175A2A12632700E7926D /* ExtensionKeyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86C226D3D7B500D0101A /* ExtensionKeyManager.swift */; }; 82EEB6C625F9398600915837 /* DNSProtocolType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82EEB6C525F9398600915837 /* DNSProtocolType.swift */; }; 82EEB6CD25F9422900915837 /* DNSProtocolType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82EEB6C525F9398600915837 /* DNSProtocolType.swift */; }; 82EEB6DB25F961BC00915837 /* URL+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82CE598F25ED3C7A0078099D /* URL+Ext.swift */; }; @@ -653,6 +659,8 @@ 82E96A4A224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionKeyManagerTests.swift; sourceTree = ""; }; 82EA857921DCF0C300EB0EC9 /* StorageManager+OnDemandRuleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "StorageManager+OnDemandRuleTests.swift"; sourceTree = ""; }; 82ED17452A1259CB00E7926D /* OpenVPNNetworkExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OpenVPNNetworkExtension-Bridging-Header.h"; sourceTree = ""; }; + 82ED17512A1261A000E7926D /* x25519.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = x25519.c; sourceTree = ""; }; + 82ED17522A1261A000E7926D /* x25519.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x25519.h; sourceTree = ""; }; 82EEB6C525F9398600915837 /* DNSProtocolType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DNSProtocolType.swift; sourceTree = ""; }; 82F189A1225CE8A90038ABA0 /* UIView+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Ext.swift"; sourceTree = ""; }; 82F638C1217DA89000410318 /* AddressType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressType.swift; sourceTree = ""; }; @@ -1468,6 +1476,15 @@ path = View; sourceTree = ""; }; + 82ED17502A12618E00E7926D /* Curve25519 */ = { + isa = PBXGroup; + children = ( + 82ED17512A1261A000E7926D /* x25519.c */, + 82ED17522A1261A000E7926D /* x25519.h */, + ); + path = Curve25519; + sourceTree = ""; + }; 82F81A33224CF36000CB778B /* WireGuard */ = { isa = PBXGroup; children = ( @@ -1512,6 +1529,7 @@ 9C7840A920CD8A8A00335736 /* openvpn-tunnel-provider */ = { isa = PBXGroup; children = ( + 82ED17502A12618E00E7926D /* Curve25519 */, 9C7840AA20CD8A8A00335736 /* PacketTunnelProvider.swift */, 9C7840AC20CD8A8A00335736 /* Info.plist */, 82ED17452A1259CB00E7926D /* OpenVPNNetworkExtension-Bridging-Header.h */, @@ -2083,20 +2101,26 @@ 9CF7E37820F7ABE3008E0EC5 /* PacketTunnelProvider.swift in Sources */, 82D90474216C7DAF0032F3BE /* Date+Ext.swift in Sources */, 82E716992181E96F00D6B7C2 /* OpenVPNProtocol.swift in Sources */, + 82ED175A2A12632700E7926D /* ExtensionKeyManager.swift in Sources */, 822EE96C215CE0E300BE77F6 /* UserDefaults+Ext.swift in Sources */, 8223C54F22EAEC7000CD283D /* Session.swift in Sources */, 82ED17432A12596E00E7926D /* AddressType.swift in Sources */, 826C56D322FD551800D2B76A /* ServiceStatus.swift in Sources */, 82E716932181E90500D6B7C2 /* ConnectionSettings.swift in Sources */, + 82ED17592A1262F800E7926D /* Data+Ext.swift in Sources */, 823FFB082338E09900F91A5D /* Capability.swift in Sources */, + 82ED17482A125C9100E7926D /* TimerManager.swift in Sources */, 826F7F4323A7AAD200777DB9 /* Array+Ext.swift in Sources */, + 82ED17542A1261A000E7926D /* x25519.c in Sources */, 82ED17402A1258EA00E7926D /* ApiService.swift in Sources */, 82968A36298A98C600077E0A /* KeyChain.swift in Sources */, 82ED17462A125A3000E7926D /* APIAccessManager.swift in Sources */, 82ED17412A12594000E7926D /* ApiRequestDI.swift in Sources */, 82ED17472A125A4700E7926D /* APIPublicKeyPin.swift in Sources */, + 82ED17552A1262BA00E7926D /* Interface.swift in Sources */, 82E716812181E8AF00D6B7C2 /* TunnelType.swift in Sources */, 82A208C121BAAC6C00C9AD44 /* Config.swift in Sources */, + 82ED174B2A125D0900E7926D /* InterfaceResult.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/IVPNClient/Models/WireGuard/Interface.swift b/IVPNClient/Models/WireGuard/Interface.swift index 8310f3802..acc3a5e56 100644 --- a/IVPNClient/Models/WireGuard/Interface.swift +++ b/IVPNClient/Models/WireGuard/Interface.swift @@ -62,7 +62,6 @@ struct Interface { if let ipAddress = dict.value(forKey: "ip_address") as? String { self.addresses = ipAddress } else { - log(.error, message: "Cannot create Interface: no 'ip_address' field specified") return nil } diff --git a/openvpn-tunnel-provider/Curve25519/x25519.c b/openvpn-tunnel-provider/Curve25519/x25519.c new file mode 100644 index 000000000..7793299e0 --- /dev/null +++ b/openvpn-tunnel-provider/Curve25519/x25519.c @@ -0,0 +1,178 @@ +/* SPDX-License-Identifier: MIT + * + * Copyright (C) 2015-2019 Jason A. Donenfeld . All Rights Reserved. + * + * Curve25519 ECDH functions, based on TweetNaCl but cleaned up. + */ + +#include +#include +#include +#include + +#include "x25519.h" + +typedef int64_t fe[16]; + +static inline void carry(fe o) +{ + int i; + + for (i = 0; i < 16; ++i) { + o[(i + 1) % 16] += (i == 15 ? 38 : 1) * (o[i] >> 16); + o[i] &= 0xffff; + } +} + +static inline void cswap(fe p, fe q, int b) +{ + int i; + int64_t t, c = ~(b - 1); + + for (i = 0; i < 16; ++i) { + t = c & (p[i] ^ q[i]); + p[i] ^= t; + q[i] ^= t; + } +} + +static inline void pack(uint8_t *o, const fe n) +{ + int i, j, b; + fe m, t; + + memcpy(t, n, sizeof(t)); + carry(t); + carry(t); + carry(t); + for (j = 0; j < 2; ++j) { + m[0] = t[0] - 0xffed; + for (i = 1; i < 15; ++i) { + m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1); + m[i - 1] &= 0xffff; + } + m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1); + b = (m[15] >> 16) & 1; + m[14] &= 0xffff; + cswap(t, m, 1 - b); + } + for (i = 0; i < 16; ++i) { + o[2 * i] = t[i] & 0xff; + o[2 * i + 1] = t[i] >> 8; + } +} + +static inline void unpack(fe o, const uint8_t *n) +{ + int i; + + for (i = 0; i < 16; ++i) + o[i] = n[2 * i] + ((int64_t)n[2 * i + 1] << 8); + o[15] &= 0x7fff; +} + +static inline void add(fe o, const fe a, const fe b) +{ + int i; + + for (i = 0; i < 16; ++i) + o[i] = a[i] + b[i]; +} + +static inline void subtract(fe o, const fe a, const fe b) +{ + int i; + + for (i = 0; i < 16; ++i) + o[i] = a[i] - b[i]; +} + +static inline void multmod(fe o, const fe a, const fe b) +{ + int i, j; + int64_t t[31] = { 0 }; + + for (i = 0; i < 16; ++i) { + for (j = 0; j < 16; ++j) + t[i + j] += a[i] * b[j]; + } + for (i = 0; i < 15; ++i) + t[i] += 38 * t[i + 16]; + memcpy(o, t, sizeof(fe)); + carry(o); + carry(o); +} + +static inline void invert(fe o, const fe i) +{ + fe c; + int a; + + memcpy(c, i, sizeof(c)); + for (a = 253; a >= 0; --a) { + multmod(c, c, c); + if (a != 2 && a != 4) + multmod(c, c, i); + } + memcpy(o, c, sizeof(fe)); +} + +static void curve25519_shared_secret(uint8_t shared_secret[32], const uint8_t private_key[32], const uint8_t public_key[32]) +{ + static const fe a24 = { 0xdb41, 1 }; + uint8_t z[32]; + int64_t r; + int i; + fe a = { 1 }, b, c = { 0 }, d = { 1 }, e, f, x; + + memcpy(z, private_key, sizeof(z)); + + z[31] = (z[31] & 127) | 64; + z[0] &= 248; + + unpack(x, public_key); + memcpy(b, x, sizeof(b)); + + for (i = 254; i >= 0; --i) { + r = (z[i >> 3] >> (i & 7)) & 1; + cswap(a, b, (int)r); + cswap(c, d, (int)r); + add(e, a, c); + subtract(a, a, c); + add(c, b, d); + subtract(b, b, d); + multmod(d, e, e); + multmod(f, a, a); + multmod(a, c, a); + multmod(c, b, e); + add(e, a, c); + subtract(a, a, c); + multmod(b, a, a); + subtract(c, d, f); + multmod(a, c, a24); + add(a, a, d); + multmod(c, c, a); + multmod(a, d, f); + multmod(d, b, x); + multmod(b, e, e); + cswap(a, b, (int)r); + cswap(c, d, (int)r); + } + invert(c, c); + multmod(a, a, c); + pack(shared_secret, a); +} + +void curve25519_derive_public_key(uint8_t public_key[32], const uint8_t private_key[32]) +{ + static const uint8_t basepoint[32] = { 9 }; + + curve25519_shared_secret(public_key, private_key, basepoint); +} + +void curve25519_generate_private_key(uint8_t private_key[32]) +{ + assert(CCRandomGenerateBytes(private_key, 32) == kCCSuccess); + private_key[31] = (private_key[31] & 127) | 64; + private_key[0] &= 248; +} diff --git a/openvpn-tunnel-provider/Curve25519/x25519.h b/openvpn-tunnel-provider/Curve25519/x25519.h new file mode 100644 index 000000000..7d8440dd3 --- /dev/null +++ b/openvpn-tunnel-provider/Curve25519/x25519.h @@ -0,0 +1,7 @@ +#ifndef X25519_H +#define X25519_H + +void curve25519_derive_public_key(unsigned char public_key[32], const unsigned char private_key[32]); +void curve25519_generate_private_key(unsigned char private_key[32]); + +#endif diff --git a/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h b/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h index 0e468a3ee..8efbc0011 100644 --- a/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h +++ b/openvpn-tunnel-provider/OpenVPNNetworkExtension-Bridging-Header.h @@ -1,3 +1,4 @@ #include #include #include +#include "Curve25519/x25519.h" diff --git a/wireguard-tunnel-provider/ExtensionKeyManager.swift b/wireguard-tunnel-provider/ExtensionKeyManager.swift index 1bd82c4a2..b499194dd 100644 --- a/wireguard-tunnel-provider/ExtensionKeyManager.swift +++ b/wireguard-tunnel-provider/ExtensionKeyManager.swift @@ -87,7 +87,9 @@ struct ExtensionKeyManager { } static func needToRegenerate() -> Bool { - guard Date() > UserDefaults.shared.wgKeyTimestamp.addingTimeInterval(ExtensionKeyManager.regenerationInterval) else { return false } + guard Date() > UserDefaults.shared.wgKeyTimestamp.addingTimeInterval(ExtensionKeyManager.regenerationInterval) else { + return false + } return true } From 6db0fd261763136ec2f69932db145b5d2de3e204 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 15 May 2023 15:29:58 +0200 Subject: [PATCH 05/63] feat(openvpn): add startKeyRotation method in PacketTunnelProvider.swift --- openvpn-tunnel-provider/PacketTunnelProvider.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openvpn-tunnel-provider/PacketTunnelProvider.swift b/openvpn-tunnel-provider/PacketTunnelProvider.swift index 50c48c559..67fb3aba5 100644 --- a/openvpn-tunnel-provider/PacketTunnelProvider.swift +++ b/openvpn-tunnel-provider/PacketTunnelProvider.swift @@ -29,6 +29,7 @@ import WidgetKit class PacketTunnelProvider: OpenVPNTunnelProvider { override func startTunnel(options: [String: NSObject]? = nil) async throws { + startKeyRotation() WidgetCenter.shared.reloadTimelines(ofKind: "IVPNWidget") try await super.startTunnel(options: options) } @@ -38,4 +39,13 @@ class PacketTunnelProvider: OpenVPNTunnelProvider { await super.stopTunnel(with: reason) } + private func startKeyRotation() { + let timer = TimerManager(timeInterval: ExtensionKeyManager.regenerationCheckInterval) + timer.eventHandler = { + ExtensionKeyManager.shared.upgradeKey { _, _ in } + timer.proceed() + } + timer.resume() + } + } From 0bca7b0b89dcfde6ffd80f71dde7c38626e2dfb5 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 25 May 2023 10:57:58 +0200 Subject: [PATCH 06/63] feat(qr): include liboqs --- IVPNClient.xcodeproj/project.pbxproj | 67 +++ IVPNClient/IVPNClient-Bridging-Header.h | 1 + IVPNClient/liboqs/include/oqs/aes.h | 151 ++++++ IVPNClient/liboqs/include/oqs/common.h | 226 +++++++++ IVPNClient/liboqs/include/oqs/kem.h | 285 ++++++++++++ .../liboqs/include/oqs/kem_classic_mceliece.h | 119 +++++ IVPNClient/liboqs/include/oqs/kem_kyber.h | 42 ++ IVPNClient/liboqs/include/oqs/oqs.h | 25 + IVPNClient/liboqs/include/oqs/oqsconfig.h | 155 +++++++ IVPNClient/liboqs/include/oqs/rand.h | 73 +++ IVPNClient/liboqs/include/oqs/sha2.h | 257 +++++++++++ IVPNClient/liboqs/include/oqs/sha3.h | 429 ++++++++++++++++++ IVPNClient/liboqs/include/oqs/sha3x4.h | 263 +++++++++++ IVPNClient/liboqs/include/oqs/sig.h | 256 +++++++++++ IVPNClient/liboqs/liboqs.a | Bin 0 -> 850912 bytes 15 files changed, 2349 insertions(+) create mode 100644 IVPNClient/liboqs/include/oqs/aes.h create mode 100644 IVPNClient/liboqs/include/oqs/common.h create mode 100644 IVPNClient/liboqs/include/oqs/kem.h create mode 100644 IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h create mode 100644 IVPNClient/liboqs/include/oqs/kem_kyber.h create mode 100644 IVPNClient/liboqs/include/oqs/oqs.h create mode 100644 IVPNClient/liboqs/include/oqs/oqsconfig.h create mode 100644 IVPNClient/liboqs/include/oqs/rand.h create mode 100644 IVPNClient/liboqs/include/oqs/sha2.h create mode 100644 IVPNClient/liboqs/include/oqs/sha3.h create mode 100644 IVPNClient/liboqs/include/oqs/sha3x4.h create mode 100644 IVPNClient/liboqs/include/oqs/sig.h create mode 100644 IVPNClient/liboqs/liboqs.a diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 0d77b1adc..c228a0da3 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -194,6 +194,7 @@ 82B81E4F235F2614005986E8 /* XCUIApplication+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82B81E4E235F2614005986E8 /* XCUIApplication+Ext.swift */; }; 82B81E51235F2A13005986E8 /* InitScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82B81E50235F2A13005986E8 /* InitScreenTests.swift */; }; 82BA8AC122E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BA8AC022E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift */; }; + 82BBD9CF2A1F4F9D00375252 /* liboqs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 82BBD9CE2A1F4F9D00375252 /* liboqs.a */; }; 82BBF25921AC799A00589766 /* NetworkProtectionRulesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF25821AC799A00589766 /* NetworkProtectionRulesViewController.swift */; }; 82BBF26121AD213500589766 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF26021AD213500589766 /* Theme.swift */; }; 82BBF26921AE802400589766 /* DispatchQueue+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF26821AE802400589766 /* DispatchQueue+Ext.swift */; }; @@ -583,6 +584,19 @@ 82B81E4E235F2614005986E8 /* XCUIApplication+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCUIApplication+Ext.swift"; sourceTree = ""; }; 82B81E50235F2A13005986E8 /* InitScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitScreenTests.swift; sourceTree = ""; }; 82BA8AC022E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NETunnelProviderProtocol+ExtTests.swift"; sourceTree = ""; }; + 82BBD9CE2A1F4F9D00375252 /* liboqs.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liboqs.a; sourceTree = ""; }; + 82BBD9E02A1F503F00375252 /* sha3x4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha3x4.h; sourceTree = ""; }; + 82BBD9E12A1F503F00375252 /* kem_classic_mceliece.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem_classic_mceliece.h; sourceTree = ""; }; + 82BBD9E22A1F503F00375252 /* oqsconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqsconfig.h; sourceTree = ""; }; + 82BBD9E32A1F503F00375252 /* sha3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha3.h; sourceTree = ""; }; + 82BBD9E42A1F503F00375252 /* sha2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha2.h; sourceTree = ""; }; + 82BBD9E52A1F503F00375252 /* sig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sig.h; sourceTree = ""; }; + 82BBD9E62A1F503F00375252 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 82BBD9E72A1F503F00375252 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = ""; }; + 82BBD9E82A1F503F00375252 /* rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rand.h; sourceTree = ""; }; + 82BBD9E92A1F503F00375252 /* kem_kyber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem_kyber.h; sourceTree = ""; }; + 82BBD9EA2A1F503F00375252 /* kem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem.h; sourceTree = ""; }; + 82BBD9EB2A1F503F00375252 /* oqs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqs.h; sourceTree = ""; }; 82BBF25821AC799A00589766 /* NetworkProtectionRulesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRulesViewController.swift; sourceTree = ""; }; 82BBF26021AD213500589766 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; 82BBF26821AE802400589766 /* DispatchQueue+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DispatchQueue+Ext.swift"; sourceTree = ""; }; @@ -765,6 +779,7 @@ 82D598C621A6A5C7000FABDE /* SystemConfiguration.framework in Frameworks */, 9CB2CE311DAF9227007A4D2D /* CoreData.framework in Frameworks */, 9C6942251DD0CBF800F9A801 /* NetworkExtension.framework in Frameworks */, + 82BBD9CF2A1F4F9D00375252 /* liboqs.a in Frameworks */, 82EC884729A12D510024CC40 /* SnapKit in Frameworks */, 82EC883B29A12C7D0024CC40 /* SwiftyStoreKit in Frameworks */, 829F5FC729A13CAE009E1AD3 /* KeychainAccess in Frameworks */, @@ -1296,6 +1311,42 @@ path = Extensions; sourceTree = ""; }; + 82BBD9BB2A1E563700375252 /* liboqs */ = { + isa = PBXGroup; + children = ( + 82BBD9CE2A1F4F9D00375252 /* liboqs.a */, + 82BBD9DE2A1F503F00375252 /* include */, + ); + path = liboqs; + sourceTree = ""; + }; + 82BBD9DE2A1F503F00375252 /* include */ = { + isa = PBXGroup; + children = ( + 82BBD9DF2A1F503F00375252 /* oqs */, + ); + path = include; + sourceTree = ""; + }; + 82BBD9DF2A1F503F00375252 /* oqs */ = { + isa = PBXGroup; + children = ( + 82BBD9E02A1F503F00375252 /* sha3x4.h */, + 82BBD9E12A1F503F00375252 /* kem_classic_mceliece.h */, + 82BBD9E22A1F503F00375252 /* oqsconfig.h */, + 82BBD9E32A1F503F00375252 /* sha3.h */, + 82BBD9E42A1F503F00375252 /* sha2.h */, + 82BBD9E52A1F503F00375252 /* sig.h */, + 82BBD9E62A1F503F00375252 /* common.h */, + 82BBD9E72A1F503F00375252 /* aes.h */, + 82BBD9E82A1F503F00375252 /* rand.h */, + 82BBD9E92A1F503F00375252 /* kem_kyber.h */, + 82BBD9EA2A1F503F00375252 /* kem.h */, + 82BBD9EB2A1F503F00375252 /* oqs.h */, + ); + path = oqs; + sourceTree = ""; + }; 82BF32F424484E3800248E4F /* View */ = { isa = PBXGroup; children = ( @@ -1546,6 +1597,7 @@ 9CDDD5AD1D9D2F9F00D39924 /* IVPNClient */ = { isa = PBXGroup; children = ( + 82BBD9BB2A1E563700375252 /* liboqs */, 82234B6121BA7ACA00B082DE /* Config */, 8286638C21524D9F00C4D068 /* Enums */, 82234B7521BAA13D00B082DE /* Models */, @@ -2659,12 +2711,17 @@ "$(inherited)", "$(PROJECT_DIR)/**", ); + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = "$(SRCROOT)/IVPNClient/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MARKETING_VERSION = 2.7.0; ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "$(inherited)"; @@ -3112,12 +3169,17 @@ "$(inherited)", "$(PROJECT_DIR)/**", ); + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = "$(SRCROOT)/IVPNClient/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MARKETING_VERSION = 2.7.0; ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "$(inherited)"; @@ -3146,12 +3208,17 @@ "$(inherited)", "$(PROJECT_DIR)/**", ); + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = "$(SRCROOT)/IVPNClient/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MARKETING_VERSION = 2.7.0; ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "$(inherited)"; diff --git a/IVPNClient/IVPNClient-Bridging-Header.h b/IVPNClient/IVPNClient-Bridging-Header.h index 750b00564..c459cf7b2 100644 --- a/IVPNClient/IVPNClient-Bridging-Header.h +++ b/IVPNClient/IVPNClient-Bridging-Header.h @@ -1,2 +1,3 @@ #include "../WireGuardKitC/WireGuardKitC.h" #include "Utilities/Logging/ringlogger.h" +#include "liboqs/include/oqs/oqs.h" diff --git a/IVPNClient/liboqs/include/oqs/aes.h b/IVPNClient/liboqs/include/oqs/aes.h new file mode 100644 index 000000000..ce0cb3616 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/aes.h @@ -0,0 +1,151 @@ +/** + * \file aes.h + * \brief Header defining the API for OQS AES + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_AES_H +#define OQS_AES_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Function to fill a key schedule given an initial key for use in ECB mode. + * + * @param key Initial Key. + * @param ctx Abstract data structure for a key schedule. + */ +void OQS_AES128_ECB_load_schedule(const uint8_t *key, void **ctx); + +/** + * Function to free a key schedule. + * + * @param ctx Context generated with OQS_AES128_ECB_load_schedule(). + */ +void OQS_AES128_free_schedule(void *ctx); + +/** + * Function to encrypt blocks of plaintext using ECB mode. + * A schedule based on the key is generated and used internally. + * + * @param plaintext Plaintext to be encrypted. + * @param plaintext_len Length on the plaintext in bytes. Must be a multiple of 16. + * @param key Key to be used for encryption. + * @param ciphertext Pointer to a block of memory which >= in size to the plaintext block. The result will be written here. + * @warning plaintext_len must be a multiple of 16. + */ +void OQS_AES128_ECB_enc(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext); + +/** + * Same as OQS_AES128_ECB_enc() except a schedule generated by + * OQS_AES128_ECB_load_schedule() is passed rather then a key. This is faster + * if the same schedule is used for multiple encryptions since it does + * not have to be regenerated from the key. + */ +void OQS_AES128_ECB_enc_sch(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext); + +/** + * Function to fill a key schedule given an initial key for use in ECB mode encryption. + * + * @param key Initial Key. + * @param ctx Abstract data structure for a key schedule. + */ +void OQS_AES256_ECB_load_schedule(const uint8_t *key, void **ctx); + +/** + * Function to initialize a context and fill a key schedule given an initial key for + * use in CTR mode. + * + * @param key Initial Key. + * @param ctx Abstract data structure for a key schedule. + */ +void OQS_AES256_CTR_inc_init(const uint8_t *key, void **ctx); + +/** + * Function to fill a context given an IV for use in CTR mode. + * + * Handles a 12- or 16-byte IV. If a 12-byte IV is given, then 4 counter + * bytes are initialized to all zeros. + * + * @param iv Initialization Vector. + * @param iv_len Length of the initialization vector. + * @param ctx Abstract data structure for IV. + */ +void OQS_AES256_CTR_inc_iv(const uint8_t *iv, size_t iv_len, void *ctx); + +/** + * Function to fill a context given an IV for use in CTR mode. + * Handles an 8-byte IV passed as a 64-bit unsigned integer, + * counter bytes are initialized to zero. + * + * @param iv Initialization Vector as 64-bit integer. + * @param ctx Abstract data structure for IV. + */ +void OQS_AES256_CTR_inc_ivu64(uint64_t iv, void *ctx); + +/** + * Function to free a key schedule. + * + * @param ctx Schedule generated with OQS_AES256_ECB_load_schedule + * or OQS_AES256_CTR_inc_init. + */ +void OQS_AES256_free_schedule(void *ctx); + +/** + * Function to encrypt blocks of plaintext using ECB mode. + * A schedule based on the key is generated and used internally. + * + * @param plaintext Plaintext to be encrypted. + * @param plaintext_len Length on the plaintext in bytes. Must be a multiple of 16. + * @param key Key to be used for encryption. + * @param ciphertext Pointer to a block of memory which >= in size to the plaintext block. The result will be written here. + * @warning plaintext_len must be a multiple of 16. + */ +void OQS_AES256_ECB_enc(const uint8_t *plaintext, const size_t plaintext_len, const uint8_t *key, uint8_t *ciphertext); + +/** + * Same as OQS_AES256_ECB_enc() except a schedule generated by + * OQS_AES256_ECB_load_schedule() is passed rather then a key. This is faster + * if the same schedule is used for multiple encryptions since it does + * not have to be regenerated from the key. + */ +void OQS_AES256_ECB_enc_sch(const uint8_t *plaintext, const size_t plaintext_len, const void *schedule, uint8_t *ciphertext); + +/** + * AES counter mode keystream generator. A context generated by + * OQS_AES256_CTR_inc_init() is passed rather then a key. + * + * Handles a 12- or 16-byte IV. If a 12-byte IV is given, then 4 counter + * bytes are initialized to all zeros. + * + * @param iv 12- or 16-byte initialization vector. + * @param iv_len Lengh of IV in bytes. + * @param ctx Abstract data structure for a key schedule. + * @param out Pointer to a block of memory which is big enough to contain out_len bytes; the result will be written here. + * @param out_len Length of output bytes to generate. + */ +void OQS_AES256_CTR_inc_stream_iv(const uint8_t *iv, size_t iv_len, const void *ctx, uint8_t *out, size_t out_len); + +/** + * AES counter mode keystream generator. A context generated by + * OQS_AES256_CTR_inc_init() and OQS_AES256_CTR_inc_iv() is passed + * rather than a key and an IV. The counter is internally updated, which allows + * the function to be called multiple times. + * + * @param ctx Abstract data structure for key schedule and IV. + * @param out Pointer to a block of memory which is big enough to contain out_blks*16 bytes; the result will be written here. + * @param out_blks Length of output blocks to generate, where one block is 16 bytes. + */ +void OQS_AES256_CTR_inc_stream_blks(void *ctx, uint8_t *out, size_t out_blks); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_AES_H diff --git a/IVPNClient/liboqs/include/oqs/common.h b/IVPNClient/liboqs/include/oqs/common.h new file mode 100644 index 000000000..8ddeef6f8 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/common.h @@ -0,0 +1,226 @@ +/** + * \file common.h + * \brief Utility functions for use in liboqs. + * + * SPDX-License-Identifier: MIT + */ + + +#ifndef OQS_COMMON_H +#define OQS_COMMON_H + +#include +#include +#include +#include + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Macro for terminating the program if x is + * a null pointer. + */ +#define OQS_EXIT_IF_NULLPTR(x, loc) \ + do { \ + if ( (x) == (void*)0 ) { \ + fprintf(stderr, "Unexpected NULL returned from %s API. Exiting.\n", loc); \ + exit(EXIT_FAILURE); \ + } \ + } while (0) + +/** + * This macro is intended to replace those assert()s + * involving side-effecting statements in aes/aes_ossl.c. + * + * assert() becomes a no-op when -DNDEBUG is defined, + * which causes compilation failures when the statement + * being checked also results in side-effects. + * + * This is a temporary workaround until a better error + * handling strategy is developed. + */ +#define OQS_OPENSSL_GUARD(x) \ + do { \ + if( 1 != (x) ) { \ + fprintf(stderr, "Error return value from OpenSSL API: %d. Exiting.\n", x); \ + exit(EXIT_FAILURE); \ + } \ + } while (0) + +/** + * Certain functions (such as OQS_randombytes_openssl in + * src/rand/rand.c) take in a size_t parameter, but can + * only handle values up to INT_MAX for those parameters. + * This macro is a temporary workaround for such functions. + */ +#define SIZE_T_TO_INT_OR_EXIT(size_t_var_name, int_var_name) \ + int int_var_name = 0; \ + if (size_t_var_name <= INT_MAX) { \ + int_var_name = (int)size_t_var_name; \ + } else { \ + exit(EXIT_FAILURE); \ + } + +/** + * Defines which functions should be exposed outside the LibOQS library + * + * By default the visibility of all the symbols is defined to "hidden" + * Only the library API should be marked as default + * + * Example: OQS_API return_value function_name(void); + */ +#if defined(_WIN32) +#define OQS_API __declspec(dllexport) +#else +#define OQS_API __attribute__((visibility("default"))) +#endif + +#if defined(OQS_SYS_UEFI) +#undef OQS_API +#define OQS_API +#endif + +/** + * Represents return values from functions. + * + * Callers should compare with the symbol rather than the individual value. + * For example, + * + * ret = OQS_KEM_encaps(...); + * if (ret == OQS_SUCCESS) { ... } + * + * rather than + * + * if (!OQS_KEM_encaps(...) { ... } + * + */ +typedef enum { + /** Used to indicate that some undefined error occurred. */ + OQS_ERROR = -1, + /** Used to indicate successful return from function. */ + OQS_SUCCESS = 0, + /** Used to indicate failures in external libraries (e.g., OpenSSL). */ + OQS_EXTERNAL_LIB_ERROR_OPENSSL = 50, +} OQS_STATUS; + +/** + * CPU runtime detection flags + */ +typedef enum { + OQS_CPU_EXT_INIT, /* Must be first */ + /* Start extension list */ + OQS_CPU_EXT_ADX, + OQS_CPU_EXT_AES, + OQS_CPU_EXT_AVX, + OQS_CPU_EXT_AVX2, + OQS_CPU_EXT_AVX512, + OQS_CPU_EXT_BMI1, + OQS_CPU_EXT_BMI2, + OQS_CPU_EXT_PCLMULQDQ, + OQS_CPU_EXT_VPCLMULQDQ, + OQS_CPU_EXT_POPCNT, + OQS_CPU_EXT_SSE, + OQS_CPU_EXT_SSE2, + OQS_CPU_EXT_SSE3, + OQS_CPU_EXT_ARM_AES, + OQS_CPU_EXT_ARM_SHA2, + OQS_CPU_EXT_ARM_SHA3, + OQS_CPU_EXT_ARM_NEON, + /* End extension list */ + OQS_CPU_EXT_COUNT, /* Must be last */ +} OQS_CPU_EXT; + +/** + * Checks if the CPU supports a given extension + * + * \return 1 if the given CPU extension is available, 0 otherwise. + */ +OQS_API int OQS_CPU_has_extension(OQS_CPU_EXT ext); + +/** + * This currently sets the values in the OQS_CPU_EXTENSIONS + * and prefetches the OpenSSL objects if necessary. + */ +OQS_API void OQS_init(void); + +/** + * This function frees prefetched OpenSSL objects + */ +OQS_API void OQS_destroy(void); + +/** + * Return library version string. + */ +OQS_API const char *OQS_version(void); + +/** + * Constant time comparison of byte sequences `a` and `b` of length `len`. + * Returns 0 if the byte sequences are equal or if `len`=0. + * Returns 1 otherwise. + * + * @param[in] a A byte sequence of length at least `len`. + * @param[in] b A byte sequence of length at least `len`. + * @param[in] len The number of bytes to compare. + */ +OQS_API int OQS_MEM_secure_bcmp(const void *a, const void *b, size_t len); + +/** + * Zeros out `len` bytes of memory starting at `ptr`. + * + * Designed to be protected against optimizing compilers which try to remove + * "unnecessary" operations. Should be used for all buffers containing secret + * data. + * + * @param[in] ptr The start of the memory to zero out. + * @param[in] len The number of bytes to zero out. + */ +OQS_API void OQS_MEM_cleanse(void *ptr, size_t len); + +/** + * Zeros out `len` bytes of memory starting at `ptr`, then frees `ptr`. + * + * Can be called with `ptr = NULL`, in which case no operation is performed. + * + * Designed to be protected against optimizing compilers which try to remove + * "unnecessary" operations. Should be used for all buffers containing secret + * data. + * + * @param[in] ptr The start of the memory to zero out and free. + * @param[in] len The number of bytes to zero out. + */ +OQS_API void OQS_MEM_secure_free(void *ptr, size_t len); + +/** + * Frees `ptr`. + * + * Can be called with `ptr = NULL`, in which case no operation is performed. + * + * Should only be used on non-secret data. + * + * @param[in] ptr The start of the memory to free. + */ +OQS_API void OQS_MEM_insecure_free(void *ptr); + +/** + * Internal implementation of C11 aligned_alloc to work around compiler quirks. + * + * Allocates size bytes of uninitialized memory with a base pointer that is + * a multiple of alignment. Alignment must be a power of two and a multiple + * of sizeof(void *). Size must be a multiple of alignment. + */ +void *OQS_MEM_aligned_alloc(size_t alignment, size_t size); + +/** + * Free memory allocated with OQS_MEM_aligned_alloc. + */ +void OQS_MEM_aligned_free(void *ptr); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_COMMON_H diff --git a/IVPNClient/liboqs/include/oqs/kem.h b/IVPNClient/liboqs/include/oqs/kem.h new file mode 100644 index 000000000..e2ea8d9d6 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/kem.h @@ -0,0 +1,285 @@ +/** + * \file kem.h + * \brief Key encapsulation mechanisms + * + * The file `tests/example_kem.c` contains two examples on using the OQS_KEM API. + * + * The first example uses the individual scheme's algorithms directly and uses + * no dynamic memory allocation -- all buffers are allocated on the stack, with + * sizes indicated using preprocessor macros. Since algorithms can be disabled at + * compile-time, the programmer should wrap the code in \#ifdefs. + * + * The second example uses an OQS_KEM object to use an algorithm specified at + * runtime. Therefore it uses dynamic memory allocation -- all buffers must be + * malloc'ed by the programmer, with sizes indicated using the corresponding length + * member of the OQS_KEM object in question. Since algorithms can be disabled at + * compile-time, the programmer should check that the OQS_KEM object is not `NULL`. + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_KEM_H +#define OQS_KEM_H + +#include +#include +#include + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** Algorithm identifier for BIKE-L1 KEM (Round-4). */ +#define OQS_KEM_alg_bike_l1 "BIKE-L1" +/** Algorithm identifier for BIKE-L3 KEM (Round-4). */ +#define OQS_KEM_alg_bike_l3 "BIKE-L3" +/** Algorithm identifier for BIKE-L5 KEM (Round-4). */ +#define OQS_KEM_alg_bike_l5 "BIKE-L5" +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALG_IDENTIFIER_START +/** Algorithm identifier for Classic-McEliece-348864 KEM. */ +#define OQS_KEM_alg_classic_mceliece_348864 "Classic-McEliece-348864" +/** Algorithm identifier for Classic-McEliece-348864f KEM. */ +#define OQS_KEM_alg_classic_mceliece_348864f "Classic-McEliece-348864f" +/** Algorithm identifier for Classic-McEliece-460896 KEM. */ +#define OQS_KEM_alg_classic_mceliece_460896 "Classic-McEliece-460896" +/** Algorithm identifier for Classic-McEliece-460896f KEM. */ +#define OQS_KEM_alg_classic_mceliece_460896f "Classic-McEliece-460896f" +/** Algorithm identifier for Classic-McEliece-6688128 KEM. */ +#define OQS_KEM_alg_classic_mceliece_6688128 "Classic-McEliece-6688128" +/** Algorithm identifier for Classic-McEliece-6688128f KEM. */ +#define OQS_KEM_alg_classic_mceliece_6688128f "Classic-McEliece-6688128f" +/** Algorithm identifier for Classic-McEliece-6960119 KEM. */ +#define OQS_KEM_alg_classic_mceliece_6960119 "Classic-McEliece-6960119" +/** Algorithm identifier for Classic-McEliece-6960119f KEM. */ +#define OQS_KEM_alg_classic_mceliece_6960119f "Classic-McEliece-6960119f" +/** Algorithm identifier for Classic-McEliece-8192128 KEM. */ +#define OQS_KEM_alg_classic_mceliece_8192128 "Classic-McEliece-8192128" +/** Algorithm identifier for Classic-McEliece-8192128f KEM. */ +#define OQS_KEM_alg_classic_mceliece_8192128f "Classic-McEliece-8192128f" +/** Algorithm identifier for HQC-128 KEM. */ +#define OQS_KEM_alg_hqc_128 "HQC-128" +/** Algorithm identifier for HQC-192 KEM. */ +#define OQS_KEM_alg_hqc_192 "HQC-192" +/** Algorithm identifier for HQC-256 KEM. */ +#define OQS_KEM_alg_hqc_256 "HQC-256" +/** Algorithm identifier for Kyber512 KEM. */ +#define OQS_KEM_alg_kyber_512 "Kyber512" +/** Algorithm identifier for Kyber768 KEM. */ +#define OQS_KEM_alg_kyber_768 "Kyber768" +/** Algorithm identifier for Kyber1024 KEM. */ +#define OQS_KEM_alg_kyber_1024 "Kyber1024" +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALG_IDENTIFIER_END +/** Algorithm identifier for sntrup761 KEM. */ +#define OQS_KEM_alg_ntruprime_sntrup761 "sntrup761" +/** Algorithm identifier for FrodoKEM-640-AES KEM. */ +#define OQS_KEM_alg_frodokem_640_aes "FrodoKEM-640-AES" +/** Algorithm identifier for FrodoKEM-640-SHAKE KEM. */ +#define OQS_KEM_alg_frodokem_640_shake "FrodoKEM-640-SHAKE" +/** Algorithm identifier for FrodoKEM-976-AES KEM. */ +#define OQS_KEM_alg_frodokem_976_aes "FrodoKEM-976-AES" +/** Algorithm identifier for FrodoKEM-976-SHAKE KEM. */ +#define OQS_KEM_alg_frodokem_976_shake "FrodoKEM-976-SHAKE" +/** Algorithm identifier for FrodoKEM-1344-AES KEM. */ +#define OQS_KEM_alg_frodokem_1344_aes "FrodoKEM-1344-AES" +/** Algorithm identifier for FrodoKEM-1344-SHAKE KEM. */ +#define OQS_KEM_alg_frodokem_1344_shake "FrodoKEM-1344-SHAKE" +// EDIT-WHEN-ADDING-KEM +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALGS_LENGTH_START +/** Number of algorithm identifiers above. */ +#define OQS_KEM_algs_length 26 +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALGS_LENGTH_END + +/** + * Returns identifiers for available key encapsulation mechanisms in liboqs. Used with OQS_KEM_new. + * + * Note that algorithm identifiers are present in this list even when the algorithm is disabled + * at compile time. + * + * @param[in] i Index of the algorithm identifier to return, 0 <= i < OQS_KEM_algs_length + * @return Algorithm identifier as a string, or NULL. + */ +OQS_API const char *OQS_KEM_alg_identifier(size_t i); + +/** + * Returns the number of key encapsulation mechanisms in liboqs. They can be enumerated with + * OQS_KEM_alg_identifier. + * + * Note that some mechanisms may be disabled at compile time. + * + * @return The number of key encapsulation mechanisms. + */ +OQS_API int OQS_KEM_alg_count(void); + +/** + * Indicates whether the specified algorithm was enabled at compile-time or not. + * + * @param[in] method_name Name of the desired algorithm; one of the names in `OQS_KEM_algs`. + * @return 1 if enabled, 0 if disabled or not found + */ +OQS_API int OQS_KEM_alg_is_enabled(const char *method_name); + +/** + * Key encapsulation mechanism object + */ +typedef struct OQS_KEM { + + /** Printable string representing the name of the key encapsulation mechanism. */ + const char *method_name; + + /** + * Printable string representing the version of the cryptographic algorithm. + * + * Implementations with the same method_name and same alg_version will be interoperable. + * See README.md for information about algorithm compatibility. + */ + const char *alg_version; + + /** The NIST security level (1, 2, 3, 4, 5) claimed in this algorithm's original NIST submission. */ + uint8_t claimed_nist_level; + + /** Whether the KEM offers IND-CCA security (TRUE) or IND-CPA security (FALSE). */ + bool ind_cca; + + /** The (maximum) length, in bytes, of public keys for this KEM. */ + size_t length_public_key; + /** The (maximum) length, in bytes, of secret keys for this KEM. */ + size_t length_secret_key; + /** The (maximum) length, in bytes, of ciphertexts for this KEM. */ + size_t length_ciphertext; + /** The (maximum) length, in bytes, of shared secrets for this KEM. */ + size_t length_shared_secret; + + /** + * Keypair generation algorithm. + * + * Caller is responsible for allocating sufficient memory for `public_key` and + * `secret_key`, based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_KEM_*_length_*`. + * + * @param[out] public_key The public key represented as a byte string. + * @param[out] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ + OQS_STATUS (*keypair)(uint8_t *public_key, uint8_t *secret_key); + + /** + * Encapsulation algorithm. + * + * Caller is responsible for allocating sufficient memory for `ciphertext` and + * `shared_secret`, based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_KEM_*_length_*`. + * + * @param[out] ciphertext The ciphertext (encapsulation) represented as a byte string. + * @param[out] shared_secret The shared secret represented as a byte string. + * @param[in] public_key The public key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ + OQS_STATUS (*encaps)(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); + + /** + * Decapsulation algorithm. + * + * Caller is responsible for allocating sufficient memory for `shared_secret`, based + * on the `length_*` members in this object or the per-scheme compile-time macros + * `OQS_KEM_*_length_*`. + * + * @param[out] shared_secret The shared secret represented as a byte string. + * @param[in] ciphertext The ciphertext (encapsulation) represented as a byte string. + * @param[in] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ + OQS_STATUS (*decaps)(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); + +} OQS_KEM; + +/** + * Constructs an OQS_KEM object for a particular algorithm. + * + * Callers should always check whether the return value is `NULL`, which indicates either than an + * invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time. + * + * @param[in] method_name Name of the desired algorithm; one of the names in `OQS_KEM_algs`. + * @return An OQS_KEM for the particular algorithm, or `NULL` if the algorithm has been disabled at compile-time. + */ +OQS_API OQS_KEM *OQS_KEM_new(const char *method_name); + +/** + * Keypair generation algorithm. + * + * Caller is responsible for allocating sufficient memory for `public_key` and + * `secret_key`, based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_KEM_*_length_*`. + * + * @param[in] kem The OQS_KEM object representing the KEM. + * @param[out] public_key The public key represented as a byte string. + * @param[out] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ +OQS_API OQS_STATUS OQS_KEM_keypair(const OQS_KEM *kem, uint8_t *public_key, uint8_t *secret_key); + +/** + * Encapsulation algorithm. + * + * Caller is responsible for allocating sufficient memory for `ciphertext` and + * `shared_secret`, based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_KEM_*_length_*`. + * + * @param[in] kem The OQS_KEM object representing the KEM. + * @param[out] ciphertext The ciphertext (encapsulation) represented as a byte string. + * @param[out] shared_secret The shared secret represented as a byte string. + * @param[in] public_key The public key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ +OQS_API OQS_STATUS OQS_KEM_encaps(const OQS_KEM *kem, uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); + +/** + * Decapsulation algorithm. + * + * Caller is responsible for allocating sufficient memory for `shared_secret`, based + * on the `length_*` members in this object or the per-scheme compile-time macros + * `OQS_KEM_*_length_*`. + * + * @param[in] kem The OQS_KEM object representing the KEM. + * @param[out] shared_secret The shared secret represented as a byte string. + * @param[in] ciphertext The ciphertext (encapsulation) represented as a byte string. + * @param[in] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ +OQS_API OQS_STATUS OQS_KEM_decaps(const OQS_KEM *kem, uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); + +/** + * Frees an OQS_KEM object that was constructed by OQS_KEM_new. + * + * @param[in] kem The OQS_KEM object to free. + */ +OQS_API void OQS_KEM_free(OQS_KEM *kem); + +#ifdef OQS_ENABLE_KEM_BIKE +#include +#endif /* OQS_ENABLE_KEM_BIKE */ +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_INCLUDE_START +#ifdef OQS_ENABLE_KEM_CLASSIC_MCELIECE +#include +#endif /* OQS_ENABLE_KEM_CLASSIC_MCELIECE */ +#ifdef OQS_ENABLE_KEM_HQC +#include +#endif /* OQS_ENABLE_KEM_HQC */ +#ifdef OQS_ENABLE_KEM_KYBER +#include +#endif /* OQS_ENABLE_KEM_KYBER */ +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_INCLUDE_END +#ifdef OQS_ENABLE_KEM_NTRUPRIME +#include +#endif /* OQS_ENABLE_KEM_NTRUPRIME */ +#ifdef OQS_ENABLE_KEM_FRODOKEM +#include +#endif /* OQS_ENABLE_KEM_FRODOKEM */ +// EDIT-WHEN-ADDING-KEM + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_KEM_H diff --git a/IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h b/IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h new file mode 100644 index 000000000..23c227d2c --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: MIT + +#ifndef OQS_KEM_CLASSIC_MCELIECE_H +#define OQS_KEM_CLASSIC_MCELIECE_H + +#include + +#ifdef OQS_ENABLE_KEM_classic_mceliece_348864 +#define OQS_KEM_classic_mceliece_348864_length_public_key 261120 +#define OQS_KEM_classic_mceliece_348864_length_secret_key 6452 +#define OQS_KEM_classic_mceliece_348864_length_ciphertext 128 +#define OQS_KEM_classic_mceliece_348864_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_348864_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_348864f +#define OQS_KEM_classic_mceliece_348864f_length_public_key 261120 +#define OQS_KEM_classic_mceliece_348864f_length_secret_key 6452 +#define OQS_KEM_classic_mceliece_348864f_length_ciphertext 128 +#define OQS_KEM_classic_mceliece_348864f_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_348864f_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864f_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_460896 +#define OQS_KEM_classic_mceliece_460896_length_public_key 524160 +#define OQS_KEM_classic_mceliece_460896_length_secret_key 13568 +#define OQS_KEM_classic_mceliece_460896_length_ciphertext 188 +#define OQS_KEM_classic_mceliece_460896_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_460896_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_460896f +#define OQS_KEM_classic_mceliece_460896f_length_public_key 524160 +#define OQS_KEM_classic_mceliece_460896f_length_secret_key 13568 +#define OQS_KEM_classic_mceliece_460896f_length_ciphertext 188 +#define OQS_KEM_classic_mceliece_460896f_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_460896f_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896f_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_6688128 +#define OQS_KEM_classic_mceliece_6688128_length_public_key 1044992 +#define OQS_KEM_classic_mceliece_6688128_length_secret_key 13892 +#define OQS_KEM_classic_mceliece_6688128_length_ciphertext 240 +#define OQS_KEM_classic_mceliece_6688128_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_6688128_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_6688128f +#define OQS_KEM_classic_mceliece_6688128f_length_public_key 1044992 +#define OQS_KEM_classic_mceliece_6688128f_length_secret_key 13892 +#define OQS_KEM_classic_mceliece_6688128f_length_ciphertext 240 +#define OQS_KEM_classic_mceliece_6688128f_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_6688128f_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128f_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_6960119 +#define OQS_KEM_classic_mceliece_6960119_length_public_key 1047319 +#define OQS_KEM_classic_mceliece_6960119_length_secret_key 13908 +#define OQS_KEM_classic_mceliece_6960119_length_ciphertext 226 +#define OQS_KEM_classic_mceliece_6960119_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_6960119_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_6960119f +#define OQS_KEM_classic_mceliece_6960119f_length_public_key 1047319 +#define OQS_KEM_classic_mceliece_6960119f_length_secret_key 13908 +#define OQS_KEM_classic_mceliece_6960119f_length_ciphertext 226 +#define OQS_KEM_classic_mceliece_6960119f_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_6960119f_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119f_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_8192128 +#define OQS_KEM_classic_mceliece_8192128_length_public_key 1357824 +#define OQS_KEM_classic_mceliece_8192128_length_secret_key 14080 +#define OQS_KEM_classic_mceliece_8192128_length_ciphertext 240 +#define OQS_KEM_classic_mceliece_8192128_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_8192128_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_classic_mceliece_8192128f +#define OQS_KEM_classic_mceliece_8192128f_length_public_key 1357824 +#define OQS_KEM_classic_mceliece_8192128f_length_secret_key 14080 +#define OQS_KEM_classic_mceliece_8192128f_length_ciphertext 240 +#define OQS_KEM_classic_mceliece_8192128f_length_shared_secret 32 +OQS_KEM *OQS_KEM_classic_mceliece_8192128f_new(void); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128f_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#endif + diff --git a/IVPNClient/liboqs/include/oqs/kem_kyber.h b/IVPNClient/liboqs/include/oqs/kem_kyber.h new file mode 100644 index 000000000..5d2480848 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/kem_kyber.h @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: MIT + +#ifndef OQS_KEM_KYBER_H +#define OQS_KEM_KYBER_H + +#include + +#ifdef OQS_ENABLE_KEM_kyber_512 +#define OQS_KEM_kyber_512_length_public_key 800 +#define OQS_KEM_kyber_512_length_secret_key 1632 +#define OQS_KEM_kyber_512_length_ciphertext 768 +#define OQS_KEM_kyber_512_length_shared_secret 32 +OQS_KEM *OQS_KEM_kyber_512_new(void); +OQS_API OQS_STATUS OQS_KEM_kyber_512_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_kyber_512_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_kyber_512_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_kyber_768 +#define OQS_KEM_kyber_768_length_public_key 1184 +#define OQS_KEM_kyber_768_length_secret_key 2400 +#define OQS_KEM_kyber_768_length_ciphertext 1088 +#define OQS_KEM_kyber_768_length_shared_secret 32 +OQS_KEM *OQS_KEM_kyber_768_new(void); +OQS_API OQS_STATUS OQS_KEM_kyber_768_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_kyber_768_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_kyber_768_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#ifdef OQS_ENABLE_KEM_kyber_1024 +#define OQS_KEM_kyber_1024_length_public_key 1568 +#define OQS_KEM_kyber_1024_length_secret_key 3168 +#define OQS_KEM_kyber_1024_length_ciphertext 1568 +#define OQS_KEM_kyber_1024_length_shared_secret 32 +OQS_KEM *OQS_KEM_kyber_1024_new(void); +OQS_API OQS_STATUS OQS_KEM_kyber_1024_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_kyber_1024_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_kyber_1024_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); +#endif + +#endif + diff --git a/IVPNClient/liboqs/include/oqs/oqs.h b/IVPNClient/liboqs/include/oqs/oqs.h new file mode 100644 index 000000000..60b332142 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/oqs.h @@ -0,0 +1,25 @@ +/** + * \file oqs.h + * \brief Overall header file for liboqs. + * + * C programs using liboqs can include just this one file, and it will include all + * other necessary headers from liboqs. + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_H +#define OQS_H + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#endif // OQS_H diff --git a/IVPNClient/liboqs/include/oqs/oqsconfig.h b/IVPNClient/liboqs/include/oqs/oqsconfig.h new file mode 100644 index 000000000..d842f666c --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/oqsconfig.h @@ -0,0 +1,155 @@ +// SPDX-License-Identifier: MIT + +#define OQS_VERSION_TEXT "0.8.0-rc1" +#define OQS_COMPILE_BUILD_TARGET "aarch64-Darwin-22.3.0" +#define OQS_DIST_BUILD 1 +/* #undef OQS_DIST_X86_64_BUILD */ +/* #undef OQS_DIST_X86_BUILD */ +#define OQS_DIST_ARM64_V8_BUILD 1 +/* #undef OQS_DIST_ARM32_V7_BUILD */ +/* #undef OQS_DIST_PPC64LE_BUILD */ +/* #undef OQS_DEBUG_BUILD */ +/* #undef ARCH_X86_64 */ +#define ARCH_ARM64v8 1 +/* #undef ARCH_ARM32v7 */ +/* #undef BUILD_SHARED_LIBS */ +#define OQS_BUILD_ONLY_LIB 1 +#define OQS_OPT_TARGET "generic" +/* #undef USE_SANITIZER */ +/* #undef CMAKE_BUILD_TYPE */ + +#define OQS_USE_OPENSSL 1 +#define OQS_USE_AES_OPENSSL 1 +#define OQS_USE_SHA2_OPENSSL 1 +/* #undef OQS_USE_SHA3_OPENSSL */ + +/* #undef OQS_USE_PTHREADS_IN_TESTS */ + +/* #undef OQS_USE_ADX_INSTRUCTIONS */ +/* #undef OQS_USE_AES_INSTRUCTIONS */ +/* #undef OQS_USE_AVX_INSTRUCTIONS */ +/* #undef OQS_USE_AVX2_INSTRUCTIONS */ +/* #undef OQS_USE_AVX512_INSTRUCTIONS */ +/* #undef OQS_USE_BMI1_INSTRUCTIONS */ +/* #undef OQS_USE_BMI2_INSTRUCTIONS */ +/* #undef OQS_USE_PCLMULQDQ_INSTRUCTIONS */ +/* #undef OQS_USE_VPCLMULQDQ_INSTRUCTIONS */ +/* #undef OQS_USE_POPCNT_INSTRUCTIONS */ +/* #undef OQS_USE_SSE_INSTRUCTIONS */ +/* #undef OQS_USE_SSE2_INSTRUCTIONS */ +/* #undef OQS_USE_SSE3_INSTRUCTIONS */ + +/* #undef OQS_USE_ARM_AES_INSTRUCTIONS */ +/* #undef OQS_USE_ARM_SHA2_INSTRUCTIONS */ +/* #undef OQS_USE_ARM_SHA3_INSTRUCTIONS */ +/* #undef OQS_USE_ARM_NEON_INSTRUCTIONS */ + +/* #undef OQS_SPEED_USE_ARM_PMU */ + +/* #undef OQS_ENABLE_TEST_CONSTANT_TIME */ + +/* #undef OQS_ENABLE_SHA3_xkcp_low_avx2 */ + +/* #undef OQS_ENABLE_KEM_BIKE */ +/* #undef OQS_ENABLE_KEM_bike_l1 */ +/* #undef OQS_ENABLE_KEM_bike_l3 */ +/* #undef OQS_ENABLE_KEM_bike_l5 */ + +/* #undef OQS_ENABLE_KEM_FRODOKEM */ +/* #undef OQS_ENABLE_KEM_frodokem_640_aes */ +/* #undef OQS_ENABLE_KEM_frodokem_640_shake */ +/* #undef OQS_ENABLE_KEM_frodokem_976_aes */ +/* #undef OQS_ENABLE_KEM_frodokem_976_shake */ +/* #undef OQS_ENABLE_KEM_frodokem_1344_aes */ +/* #undef OQS_ENABLE_KEM_frodokem_1344_shake */ + +/* #undef OQS_ENABLE_KEM_NTRUPRIME */ +/* #undef OQS_ENABLE_KEM_ntruprime_sntrup761 */ +/* #undef OQS_ENABLE_KEM_ntruprime_sntrup761_avx2 */ + +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ALG_ENABLE_DEFINES_START + +#define OQS_ENABLE_KEM_CLASSIC_MCELIECE 1 +#define OQS_ENABLE_KEM_classic_mceliece_348864 1 +/* #undef OQS_ENABLE_KEM_classic_mceliece_348864_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_348864f */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_348864f_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_460896 */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_460896_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_460896f */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_460896f_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6688128 */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6688128_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6688128f */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6688128f_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6960119 */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6960119_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6960119f */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_6960119f_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_8192128 */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_8192128_avx */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_8192128f */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_8192128f_avx */ + +/* #undef OQS_ENABLE_KEM_HQC */ +/* #undef OQS_ENABLE_KEM_hqc_128 */ +/* #undef OQS_ENABLE_KEM_hqc_128_avx2 */ +/* #undef OQS_ENABLE_KEM_hqc_192 */ +/* #undef OQS_ENABLE_KEM_hqc_192_avx2 */ +/* #undef OQS_ENABLE_KEM_hqc_256 */ +/* #undef OQS_ENABLE_KEM_hqc_256_avx2 */ + +#define OQS_ENABLE_KEM_KYBER 1 +/* #undef OQS_ENABLE_KEM_kyber_512 */ +/* #undef OQS_ENABLE_KEM_kyber_512_avx2 */ +/* #undef OQS_ENABLE_KEM_kyber_512_aarch64 */ +/* #undef OQS_ENABLE_KEM_kyber_768 */ +/* #undef OQS_ENABLE_KEM_kyber_768_avx2 */ +/* #undef OQS_ENABLE_KEM_kyber_768_aarch64 */ +#define OQS_ENABLE_KEM_kyber_1024 1 +/* #undef OQS_ENABLE_KEM_kyber_1024_avx2 */ +/* #undef OQS_ENABLE_KEM_kyber_1024_aarch64 */ + +/* #undef OQS_ENABLE_SIG_DILITHIUM */ +/* #undef OQS_ENABLE_SIG_dilithium_2 */ +/* #undef OQS_ENABLE_SIG_dilithium_2_avx2 */ +/* #undef OQS_ENABLE_SIG_dilithium_2_aarch64 */ +/* #undef OQS_ENABLE_SIG_dilithium_3 */ +/* #undef OQS_ENABLE_SIG_dilithium_3_avx2 */ +/* #undef OQS_ENABLE_SIG_dilithium_3_aarch64 */ +/* #undef OQS_ENABLE_SIG_dilithium_5 */ +/* #undef OQS_ENABLE_SIG_dilithium_5_avx2 */ +/* #undef OQS_ENABLE_SIG_dilithium_5_aarch64 */ + +/* #undef OQS_ENABLE_SIG_FALCON */ +/* #undef OQS_ENABLE_SIG_falcon_512 */ +/* #undef OQS_ENABLE_SIG_falcon_512_avx2 */ +/* #undef OQS_ENABLE_SIG_falcon_1024 */ +/* #undef OQS_ENABLE_SIG_falcon_1024_avx2 */ + +/* #undef OQS_ENABLE_SIG_SPHINCS */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_128f_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_128f_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_128s_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_128s_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_192f_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_192f_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_192s_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_192s_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_256f_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_256f_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_256s_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_sha2_256s_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_128f_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_128f_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_128s_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_128s_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_192f_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_192f_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_192s_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_192s_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_256f_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_256f_simple_avx2 */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_256s_simple */ +/* #undef OQS_ENABLE_SIG_sphincs_shake_256s_simple_avx2 */ +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ALG_ENABLE_DEFINES_END diff --git a/IVPNClient/liboqs/include/oqs/rand.h b/IVPNClient/liboqs/include/oqs/rand.h new file mode 100644 index 000000000..3499c2593 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/rand.h @@ -0,0 +1,73 @@ +/** + * \file rand.h + * \brief Random number generator. + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_RANDOM_H +#define OQS_RANDOM_H + +#include +#include +#include + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** Algorithm identifier for system PRNG. */ +#define OQS_RAND_alg_system "system" +/** Algorithm identifier for NIST deterministic RNG for KATs. */ +#define OQS_RAND_alg_nist_kat "NIST-KAT" +/** Algorithm identifier for using OpenSSL's PRNG. */ +#define OQS_RAND_alg_openssl "OpenSSL" + +/** + * Switches OQS_randombytes to use the specified algorithm. + * + * @param[in] algorithm The name of the algorithm to use. + * @return OQS_SUCCESS if `algorithm` is a supported algorithm name, OQS_ERROR otherwise. + */ +OQS_API OQS_STATUS OQS_randombytes_switch_algorithm(const char *algorithm); + +/** + * Switches OQS_randombytes to use the given function. + * + * This allows additional custom RNGs besides the provided ones. The provided RNG + * function must have the same signature as `OQS_randombytes`. + * + * @param[in] algorithm_ptr Pointer to the RNG function to use. + */ +OQS_API void OQS_randombytes_custom_algorithm(void (*algorithm_ptr)(uint8_t *, size_t)); + +/** + * Fills the given memory with the requested number of (pseudo)random bytes. + * + * This implementation uses whichever algorithm has been selected by + * OQS_randombytes_switch_algorithm. The default is OQS_randombytes_system, which + * reads bytes directly from `/dev/urandom`. + * + * The caller is responsible for providing a buffer allocated with sufficient room. + * + * @param[out] random_array Pointer to the memory to fill with (pseudo)random bytes + * @param[in] bytes_to_read The number of random bytes to read into memory + */ +OQS_API void OQS_randombytes(uint8_t *random_array, size_t bytes_to_read); + +/** + * Initializes the NIST DRBG with a given seed and with 256-bit security. + * + * @param[in] entropy_input The seed; must be exactly 48 bytes + * @param[in] personalization_string An optional personalization string; + * may be NULL; if not NULL, must be at least 48 bytes long + */ +OQS_API void OQS_randombytes_nist_kat_init_256bit(const uint8_t *entropy_input, const uint8_t *personalization_string); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_RANDOM_H diff --git a/IVPNClient/liboqs/include/oqs/sha2.h b/IVPNClient/liboqs/include/oqs/sha2.h new file mode 100644 index 000000000..e50a16397 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/sha2.h @@ -0,0 +1,257 @@ +/** + * \file sha2.h + * \brief SHA2 functions; not part of the OQS public API + * + * Contains the API and documentation for SHA2 digest implementation + * + * Note this is not part of the OQS public API: implementations within liboqs can use these + * functions, but external consumers of liboqs should not use these functions. + * + * \author Douglas Stebila + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_SHA2_H +#define OQS_SHA2_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** Data structure for the state of the SHA-224 incremental hashing API. */ +typedef struct { + /** Internal state */ + void *ctx; +} OQS_SHA2_sha224_ctx; + +/** + * \brief Process a message with SHA-256 and return the hash code in the output byte array. + * + * \warning The output array must be at least 32 bytes in length. + * + * \param output The output byte array + * \param input The message input byte array + * \param inplen The number of message bytes to process + */ +void OQS_SHA2_sha256(uint8_t *output, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the SHA-256 incremental hashing API. */ +typedef struct { + /** Internal state */ + void *ctx; +} OQS_SHA2_sha256_ctx; + +/** + * \brief Allocate and initialize the state for the SHA-256 incremental hashing API. + * + * \warning The state must be released by OQS_SHA2_sha256_inc_finalize + * or OQS_SHA2_sha256_inc_ctx_release. + * + * \param state Pointer to the state + */ +void OQS_SHA2_sha256_inc_init(OQS_SHA2_sha256_ctx *state); + +/** + * \brief Duplicate state for the SHA-256 incremental hashing API. + * + * \warning dest must be allocated by the caller. Caller is responsible + * for releasing dest by calling either OQS_SHA2_sha256_inc_finalize or + * OQS_SHA2_sha256_inc_ctx_release. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA2_sha256_inc_ctx_clone(OQS_SHA2_sha256_ctx *dest, const OQS_SHA2_sha256_ctx *src); + +/** + * \brief Process blocks with SHA-256 and update the state. + * + * \warning The state must be initialized by OQS_SHA2_sha256_inc_init or OQS_SHA2_sha256_inc_ctx_clone. + * + * \param state The state to update + * \param in Message input byte array + * \param inblocks The number of 64-byte blocks of message bytes to process + */ +void OQS_SHA2_sha256_inc_blocks(OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inblocks); + +/** + * \brief Process more message bytes with SHA-256 and return the hash code in the output byte array. + * + * \warning The output array must be at least 32 bytes in length. The state is + * deallocated by this function and can not be used again after calling + * this function without calling OQS_SHA2_sha256_inc_init again. + * + * \param out The output byte array + * \param state The state + * \param in Additional message input byte array + * \param inlen The number of additional message bytes to process + */ +void OQS_SHA2_sha256_inc_finalize(uint8_t *out, OQS_SHA2_sha256_ctx *state, const uint8_t *in, size_t inlen); + +/** + * \brief Destroy state. + * + * \warning The state is deallocated by this function and can not be used again after calling + * this function without calling OQS_SHA2_sha256_inc_init again. + * + * \param state The state + */ +void OQS_SHA2_sha256_inc_ctx_release(OQS_SHA2_sha256_ctx *state); + +/** + * \brief Process a message with SHA-384 and return the hash code in the output byte array. + * + * \warning The output array must be at least 48 bytes in length. + * + * \param output The output byte array + * \param input The message input byte array + * \param inplen The number of message bytes to process + */ +void OQS_SHA2_sha384(uint8_t *output, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the SHA-384 incremental hashing API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA2_sha384_ctx; + +/** + * \brief Allocate and initialize the state for the SHA-384 incremental hashing API. + * + * \warning The state must be released by OQS_SHA2_sha384_inc_finalize + * or OQS_SHA2_sha384_inc_ctx_release. + * + * \param state Pointer to the state + */ +void OQS_SHA2_sha384_inc_init(OQS_SHA2_sha384_ctx *state); + +/** + * \brief Duplicate state for the SHA-384 incremental hashing API. + * + * \warning dest must be allocated by the caller. Caller is responsible + * for releasing dest by calling either OQS_SHA2_sha384_inc_finalize or + * OQS_SHA2_sha384_inc_ctx_release. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA2_sha384_inc_ctx_clone(OQS_SHA2_sha384_ctx *dest, const OQS_SHA2_sha384_ctx *src); + +/** + * \brief Process blocks with SHA-384 and update the state. + * + * \warning The state must be initialized by OQS_SHA2_sha384_inc_init or OQS_SHA2_sha384_inc_ctx_clone. + * + * \param state The state to update + * \param in Message input byte array + * \param inblocks The number of 128-byte blocks of message bytes to process + */ +void OQS_SHA2_sha384_inc_blocks(OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inblocks); + +/** + * \brief Process more message bytes with SHA-384 and return the hash code in the output byte array. + * + * \warning The output array must be at least 48 bytes in length. The state is + * deallocated by this function and can not be used again after calling + * this function without calling OQS_SHA2_sha384_inc_init again. + * + * \param out The output byte array + * \param state The state + * \param in Additional message input byte array + * \param inlen The number of additional message bytes to process + */ +void OQS_SHA2_sha384_inc_finalize(uint8_t *out, OQS_SHA2_sha384_ctx *state, const uint8_t *in, size_t inlen); + +/** + * \brief Destroy state. + * + * \warning The state is deallocated by this function and can not be used again after calling + * this function without calling OQS_SHA2_sha384_inc_init again. + * + * \param state The state + */ +void OQS_SHA2_sha384_inc_ctx_release(OQS_SHA2_sha384_ctx *state); + +/** + * \brief Process a message with SHA-512 and return the hash code in the output byte array. + * + * \warning The output array must be at least 64 bytes in length. + * + * \param output The output byte array + * \param input The message input byte array + * \param inplen The number of message bytes to process + */ +void OQS_SHA2_sha512(uint8_t *output, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the SHA-512 incremental hashing API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA2_sha512_ctx; + +/** + * \brief Allocate and initialize the state for the SHA-512 incremental hashing API. + * + * \warning The state must be released by OQS_SHA2_sha512_inc_finalize + * or OQS_SHA2_sha512_inc_ctx_release. + * + * \param state Pointer to the state + */ +void OQS_SHA2_sha512_inc_init(OQS_SHA2_sha512_ctx *state); + +/** + * \brief Duplicate state for the SHA-512 incremental hashing API. + * + * \warning dest must be allocated by the caller. Caller is responsible + * for releasing dest by calling either OQS_SHA2_sha512_inc_finalize or + * OQS_SHA2_sha512_inc_ctx_release. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA2_sha512_inc_ctx_clone(OQS_SHA2_sha512_ctx *dest, const OQS_SHA2_sha512_ctx *src); + +/** + * \brief Process blocks with SHA-512 and update the state. + * + * \warning The state must be initialized by OQS_SHA2_sha512_inc_init or OQS_SHA2_sha512_inc_ctx_clone. + * + * \param state The state to update + * \param in Message input byte array + * \param inblocks The number of 128-byte blocks of message bytes to process + */ +void OQS_SHA2_sha512_inc_blocks(OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inblocks); + +/** + * \brief Process more message bytes with SHA-512 and return the hash code in the output byte array. + * + * \warning The output array must be at least 64 bytes in length. The state is + * deallocated by this function and can not be used again after calling + * this function without calling OQS_SHA2_sha512_inc_init again. + * + * \param out The output byte array + * \param state The state + * \param in Additional message input byte array + * \param inlen The number of additional message bytes to process + */ +void OQS_SHA2_sha512_inc_finalize(uint8_t *out, OQS_SHA2_sha512_ctx *state, const uint8_t *in, size_t inlen); + +/** + * \brief Destroy state. + * + * \warning The state is deallocated by this function and can not be used again after calling + * this function without calling OQS_SHA2_sha512_inc_init again. + * + * \param state The state + */ +void OQS_SHA2_sha512_inc_ctx_release(OQS_SHA2_sha512_ctx *state); + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_SHA2_H diff --git a/IVPNClient/liboqs/include/oqs/sha3.h b/IVPNClient/liboqs/include/oqs/sha3.h new file mode 100644 index 000000000..d66c7289e --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/sha3.h @@ -0,0 +1,429 @@ +/** + * \file sha3.h + * \brief SHA3 and SHAKE functions; not part of the OQS public API + * + * Contains the API and documentation for SHA3 digest and SHAKE implementations. + * + * Note this is not part of the OQS public API: implementations within liboqs can use these + * functions, but external consumers of liboqs should not use these functions. + * + * \author John Underhill, Douglas Stebila + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_SHA3_H +#define OQS_SHA3_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/* SHA3 */ + +/** The SHA-256 byte absorption rate */ +#define OQS_SHA3_SHA3_256_RATE 136 + +/** + * \brief Process a message with SHA3-256 and return the digest in the output byte array. + * + * \warning The output array must be at least 32 bytes in length. + * + * \param output The output byte array + * \param input The message input byte array + * \param inplen The number of message bytes to process + */ +void OQS_SHA3_sha3_256(uint8_t *output, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the incremental SHA3-256 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_sha3_256_inc_ctx; + +/** + * \brief Initialize the state for the incremental SHA3-256 API. + * + * \warning Caller is responsible for releasing state by calling + * OQS_SHA3_sha3_256_inc_ctx_release. + * + * \param state The function state to be allocated and initialized. + */ +void OQS_SHA3_sha3_256_inc_init(OQS_SHA3_sha3_256_inc_ctx *state); + +/** + * \brief The SHA3-256 absorb function. + * Absorb an input into the state. + * + * \param state The function state; must be initialized + * \param input The input array + * \param inlen The length of the input + */ +void OQS_SHA3_sha3_256_inc_absorb(OQS_SHA3_sha3_256_inc_ctx *state, const uint8_t *input, size_t inlen); + +/** + * \brief The SHA3-256 finalize-and-squeeze function. + * Finalizes the state and squeezes a 32 byte digest. + * + * \warning Output array must be at least 32 bytes. + * State cannot be used after this without calling OQS_SHA3_sha3_256_inc_reset. + * + * \param output The output byte array + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_256_inc_finalize(uint8_t *output, OQS_SHA3_sha3_256_inc_ctx *state); + +/** + * \brief Release the state for the SHA3-256 incremental API. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_256_inc_ctx_release(OQS_SHA3_sha3_256_inc_ctx *state); + +/** + * \brief Resets the state for the SHA3-256 incremental API. + * Alternative to freeing and reinitializing the state. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_256_inc_ctx_reset(OQS_SHA3_sha3_256_inc_ctx *state); + +/** + * \brief Clone the state for the SHA3-256 incremental API. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA3_sha3_256_inc_ctx_clone(OQS_SHA3_sha3_256_inc_ctx *dest, const OQS_SHA3_sha3_256_inc_ctx *src); + +/** The SHA-384 byte absorption rate */ +#define OQS_SHA3_SHA3_384_RATE 104 + +/** + * \brief Process a message with SHA3-384 and return the digest in the output byte array. + * + * \warning The output array must be at least 48 bytes in length. + * + * \param output The output byte array + * \param input The message input byte array + * \param inplen The number of message bytes to process + */ +void OQS_SHA3_sha3_384(uint8_t *output, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the incremental SHA3-384 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_sha3_384_inc_ctx; + +/** + * \brief Initialize the state for the incremental SHA3-384 API. + * + * \warning Caller is responsible for releasing state by calling + * OQS_SHA3_sha3_384_inc_ctx_release. + * + * \param state The function state to be allocated and initialized. + */ +void OQS_SHA3_sha3_384_inc_init(OQS_SHA3_sha3_384_inc_ctx *state); + +/** + * \brief The SHA3-384 absorb function. + * Absorb an input into the state. + * + * \param state The function state; must be initialized + * \param input The input array + * \param inlen The length of the input + */ +void OQS_SHA3_sha3_384_inc_absorb(OQS_SHA3_sha3_384_inc_ctx *state, const uint8_t *input, size_t inlen); + +/** + * \brief The SHA3-384 finalize-and-squeeze function. + * Finalizes the state and squeezes a 48 byte digest. + * + * \warning Output array must be at least 48 bytes. + * State cannot be used after this without calling OQS_SHA3_sha3_384_inc_reset. + * + * \param output The output byte array + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_384_inc_finalize(uint8_t *output, OQS_SHA3_sha3_384_inc_ctx *state); + +/** + * \brief Release the state for the SHA3-384 incremental API. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_384_inc_ctx_release(OQS_SHA3_sha3_384_inc_ctx *state); + +/** + * \brief Resets the state for the SHA3-384 incremental API. + * Alternative to freeing and reinitializing the state. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_384_inc_ctx_reset(OQS_SHA3_sha3_384_inc_ctx *state); + +/** + * \brief Clone the state for the SHA3-384 incremental API. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA3_sha3_384_inc_ctx_clone(OQS_SHA3_sha3_384_inc_ctx *dest, const OQS_SHA3_sha3_384_inc_ctx *src); + +/** The SHA-512 byte absorption rate */ +#define OQS_SHA3_SHA3_512_RATE 72 + +/** + * \brief Process a message with SHA3-512 and return the digest in the output byte array. + * + * \warning The output array must be at least 64 bytes in length. + * + * \param output The output byte array + * \param input The message input byte array + * \param inplen The number of message bytes to process + */ +void OQS_SHA3_sha3_512(uint8_t *output, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the incremental SHA3-512 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_sha3_512_inc_ctx; + +/** + * \brief Initialize the state for the incremental SHA3-512 API. + * + * \warning Caller is responsible for releasing state by calling + * OQS_SHA3_sha3_512_inc_ctx_release. + * + * \param state The function state to be allocated and initialized. + */ +void OQS_SHA3_sha3_512_inc_init(OQS_SHA3_sha3_512_inc_ctx *state); + +/** + * \brief The SHA3-512 absorb function. + * Absorb an input into the state. + * + * \param state The function state; must be initialized + * \param input The input array + * \param inlen The length of the input + */ +void OQS_SHA3_sha3_512_inc_absorb(OQS_SHA3_sha3_512_inc_ctx *state, const uint8_t *input, size_t inlen); + +/** + * \brief The SHA3-512 finalize-and-squeeze function. + * Finalizes the state and squeezes a 64 byte digest. + * + * \warning Output array must be at least 64 bytes. + * State cannot be used after this without calling OQS_SHA3_sha3_512_inc_reset. + * + * \param output The output byte array + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_512_inc_finalize(uint8_t *output, OQS_SHA3_sha3_512_inc_ctx *state); + +/** + * \brief Release the state for the SHA3-512 incremental API. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_512_inc_ctx_release(OQS_SHA3_sha3_512_inc_ctx *state); + +/** + * \brief Resets the state for the SHA3-512 incremental API. + * Alternative to freeing and reinitializing the state. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_sha3_512_inc_ctx_reset(OQS_SHA3_sha3_512_inc_ctx *state); + +/** + * \brief Clone the state for the SHA3-512 incremental API. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA3_sha3_512_inc_ctx_clone(OQS_SHA3_sha3_512_inc_ctx *dest, const OQS_SHA3_sha3_512_inc_ctx *src); + +/* SHAKE */ + +/** The SHAKE-128 byte absorption rate */ +#define OQS_SHA3_SHAKE128_RATE 168 + +/** + * \brief Seed a SHAKE-128 instance, and generate an array of pseudo-random bytes. + * + * \warning The output array length must not be zero. + * + * \param output The output byte array + * \param outlen The number of output bytes to generate + * \param input The input seed byte array + * \param inplen The number of seed bytes to process + */ +void OQS_SHA3_shake128(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the incremental SHAKE-128 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_shake128_inc_ctx; + +/** + * \brief Initialize the state for the incremental SHAKE-128 API. + * + * \warning Caller is responsible for releasing state by calling + * OQS_SHA3_shake128_inc_ctx_release. + * + * \param state The function state to be initialized; must be allocated + */ +void OQS_SHA3_shake128_inc_init(OQS_SHA3_shake128_inc_ctx *state); + +/** + * \brief The SHAKE-128 absorb function. + * Absorb an input into the state. + * + * \warning State must be initialized. + * + * \param state The function state; must be initialized + * \param input input buffer + * \param inlen length of input buffer + */ +void OQS_SHA3_shake128_inc_absorb(OQS_SHA3_shake128_inc_ctx *state, const uint8_t *input, size_t inlen); + +/** + * \brief The SHAKE-128 finalize function. + * Prepares the state for squeezing. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake128_inc_finalize(OQS_SHA3_shake128_inc_ctx *state); + +/** + * \brief The SHAKE-128 squeeze function. + * Extracts to an output byte array. + * + * \param output output buffer + * \param outlen bytes of outbut buffer + * \param state The function state; must be initialized and finalized + */ +void OQS_SHA3_shake128_inc_squeeze(uint8_t *output, size_t outlen, OQS_SHA3_shake128_inc_ctx *state); + +/** + * \brief Frees the state for the incremental SHAKE-128 API. + * + * \param state The state to free + */ +void OQS_SHA3_shake128_inc_ctx_release(OQS_SHA3_shake128_inc_ctx *state); + +/** + * \brief Copies the state for the SHAKE-128 incremental API. + * + * \warning Caller is responsible for releasing dest by calling + * OQS_SHA3_shake128_inc_ctx_release. + * + * \param dest The function state to copy into; must be initialized + * \param src The function state to copy; must be initialized + */ +void OQS_SHA3_shake128_inc_ctx_clone(OQS_SHA3_shake128_inc_ctx *dest, const OQS_SHA3_shake128_inc_ctx *src); + +/** + * \brief Resets the state for the SHAKE-128 incremental API. Allows a context + * to be re-used without free and init calls. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake128_inc_ctx_reset(OQS_SHA3_shake128_inc_ctx *state); + +/** The SHAKE-256 byte absorption rate */ +#define OQS_SHA3_SHAKE256_RATE 136 + +/** + * \brief Seed a SHAKE-256 instance, and generate an array of pseudo-random bytes. + * + * \warning The output array length must not be zero. + * + * \param output The output byte array + * \param outlen The number of output bytes to generate + * \param input The input seed byte array + * \param inplen The number of seed bytes to process + */ +void OQS_SHA3_shake256(uint8_t *output, size_t outlen, const uint8_t *input, size_t inplen); + +/** Data structure for the state of the incremental SHAKE-256 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_shake256_inc_ctx; + +/** + * \brief Initialize the state for the incremental SHAKE-256 API. + * + * \param state The function state to be initialized; must be allocated + */ +void OQS_SHA3_shake256_inc_init(OQS_SHA3_shake256_inc_ctx *state); + +/** + * \brief The SHAKE-256 absorb function. + * Absorb an input message array directly into the state. + * + * \warning State must be initialized by the caller. + * + * \param state The function state; must be initialized + * \param input input buffer + * \param inlen length of input buffer + */ +void OQS_SHA3_shake256_inc_absorb(OQS_SHA3_shake256_inc_ctx *state, const uint8_t *input, size_t inlen); + +/** + * \brief The SHAKE-256 finalize function. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake256_inc_finalize(OQS_SHA3_shake256_inc_ctx *state); + +/** + * \brief The SHAKE-256 squeeze function. + * Extracts to an output byte array. + * + * \param output output buffer + * \param outlen bytes of outbut buffer + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake256_inc_squeeze(uint8_t *output, size_t outlen, OQS_SHA3_shake256_inc_ctx *state); + +/** + * \brief Frees the state for the incremental SHAKE-256 API. + * + * \param state The state to free + */ +void OQS_SHA3_shake256_inc_ctx_release(OQS_SHA3_shake256_inc_ctx *state); + +/** + * \brief Copies the state for the incremental SHAKE-256 API. + * + * \warning dest must be allocated. dest must be freed by calling + * OQS_SHA3_shake256_inc_ctx_release. + * + * \param dest The state to copy into; must be initialized + * \param src The state to copy from; must be initialized + */ +void OQS_SHA3_shake256_inc_ctx_clone(OQS_SHA3_shake256_inc_ctx *dest, const OQS_SHA3_shake256_inc_ctx *src); + +/** + * \brief Resets the state for the SHAKE-256 incremental API. Allows a context + * to be re-used without free and init calls. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake256_inc_ctx_reset(OQS_SHA3_shake256_inc_ctx *state); + + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_SHA3_H diff --git a/IVPNClient/liboqs/include/oqs/sha3x4.h b/IVPNClient/liboqs/include/oqs/sha3x4.h new file mode 100644 index 000000000..cef4e6750 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/sha3x4.h @@ -0,0 +1,263 @@ +/** + * \file shakex4.h + * \brief SHA3, SHAKE, and cSHAKE functions; not part of the OQS public API + * + * Contains the API and documentation for SHA3 digest and SHAKE implementations. + * + * Note this is not part of the OQS public API: implementations within liboqs can use these + * functions, but external consumers of liboqs should not use these functions. + * + * \author John Underhill, Douglas Stebila + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_SHA3X4_H +#define OQS_SHA3X4_H + +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * \brief Seed 4 parallel SHAKE-128 instances, and generate 4 arrays of pseudo-random bytes. + * + * \warning The output array length must not be zero. + * + * \param out0 The first output byte array + * \param out1 The second output byte array + * \param out2 The third output byte array + * \param out3 The fourth output byte array + * \param outlen The number of output bytes to generate in every output array + * \param in0 The first input seed byte array + * \param in1 The second input seed byte array + * \param in2 The third input seed byte array + * \param in3 The fourth input seed byte array + * \param inlen The number of seed bytes to process from every input array + */ +void OQS_SHA3_shake128_x4( + uint8_t *out0, + uint8_t *out1, + uint8_t *out2, + uint8_t *out3, + size_t outlen, + const uint8_t *in0, + const uint8_t *in1, + const uint8_t *in2, + const uint8_t *in3, + size_t inlen); + +/** Data structure for the state of the four-way parallel incremental SHAKE-128 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_shake128_x4_inc_ctx; + +/** + * \brief Initialize the state for four-way parallel incremental SHAKE-128 API. + * + * \param state The function state to be initialized; must be allocated + */ +void OQS_SHA3_shake128_x4_inc_init(OQS_SHA3_shake128_x4_inc_ctx *state); + +/** + * \brief Four-way parallel SHAKE-128 absorb function. + * Absorb four input messages of the same length into four parallel states. + * + * \warning State must be initialized by the caller. + * + * \param state The function state; must be initialized + * \param in0 The input to be absorbed into first instance + * \param in1 The input to be absorbed into first instance + * \param in2 The input to be absorbed into first instance + * \param in3 The input to be absorbed into first instance + * \param inlen The number of bytes to process from each input array + */ +void OQS_SHA3_shake128_x4_inc_absorb( + OQS_SHA3_shake128_x4_inc_ctx *state, + const uint8_t *in0, + const uint8_t *in1, + const uint8_t *in2, + const uint8_t *in3, + size_t inlen); + +/** + * \brief Four-way parallel SHAKE-128 finalize function. + * Prepares the states for squeezing. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake128_x4_inc_finalize(OQS_SHA3_shake128_x4_inc_ctx *state); + +/** + * \brief Four-way parallel SHAKE-128 squeeze function. + * Extracts from four parallel states into four output buffers + * + * \param out0 output buffer for the first instance + * \param out1 output buffer for the second instance + * \param out2 output buffer for the third instance + * \param out3 output buffer for the fourth instance + * \param outlen bytes of outbut buffer + * \param state The function state; must be initialized and finalized. + */ +void OQS_SHA3_shake128_x4_inc_squeeze( + uint8_t *out0, + uint8_t *out1, + uint8_t *out2, + uint8_t *out3, + size_t outlen, + OQS_SHA3_shake128_x4_inc_ctx *state); + +/** + * \brief Frees the state for the four-way parallel incremental SHAKE-128 API. + * + * \param state The state to free + */ +void OQS_SHA3_shake128_x4_inc_ctx_release(OQS_SHA3_shake128_x4_inc_ctx *state); + +/** + * \brief Copies the state for the four-way parallel incremental SHAKE-128 API. + * + * \param dest The state to copy into; must be initialized + * \param src The state to copy from; must be initialized + */ +void OQS_SHA3_shake128_x4_inc_ctx_clone( + OQS_SHA3_shake128_x4_inc_ctx *dest, + const OQS_SHA3_shake128_x4_inc_ctx *src); + +/** + * \brief Resets the state for the four-way parallel incremental SHAKE-128 API. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake128_x4_inc_ctx_reset(OQS_SHA3_shake128_x4_inc_ctx *state); + +/* SHAKE256 */ + +/** + * \brief Seed 4 parallel SHAKE-256 instances, and generate 4 arrays of pseudo-random bytes. + * + * Uses a vectorized (AVX2) implementation of SHAKE-256 if available. + * + * \warning The output array length must not be zero. + * + * \param out0 The first output byte array + * \param out1 The second output byte array + * \param out2 The third output byte array + * \param out3 The fourth output byte array + * \param outlen The number of output bytes to generate in every output array + * \param in0 The first input seed byte array + * \param in1 The second input seed byte array + * \param in2 The third input seed byte array + * \param in3 The fourth input seed byte array + * \param inlen The number of seed bytes to process from every input array + */ +void OQS_SHA3_shake256_x4( + uint8_t *out0, + uint8_t *out1, + uint8_t *out2, + uint8_t *out3, + size_t outlen, + const uint8_t *in0, + const uint8_t *in1, + const uint8_t *in2, + const uint8_t *in3, + size_t inlen); + +/** Data structure for the state of the four-way parallel incremental SHAKE-256 API. */ +typedef struct { + /** Internal state. */ + void *ctx; +} OQS_SHA3_shake256_x4_inc_ctx; + +/** + * \brief Initialize the state for four-way parallel incremental SHAKE-256 API. + * + * \param state The function state to be initialized; must be allocated + */ +void OQS_SHA3_shake256_x4_inc_init(OQS_SHA3_shake256_x4_inc_ctx *state); + +/** + * \brief Four-way parallel SHAKE-256 absorb function. + * Absorb four input messages of the same length into four parallel states. + * + * \warning State must be initialized by the caller. + * + * \param state The function state; must be initialized + * \param in0 The input to be absorbed into first instance + * \param in1 The input to be absorbed into first instance + * \param in2 The input to be absorbed into first instance + * \param in3 The input to be absorbed into first instance + * \param inlen The number of bytes to process from each input array + */ +void OQS_SHA3_shake256_x4_inc_absorb( + OQS_SHA3_shake256_x4_inc_ctx *state, + const uint8_t *in0, + const uint8_t *in1, + const uint8_t *in2, + const uint8_t *in3, + size_t inlen); + +/** + * \brief Four-way parallel SHAKE-256 finalize function. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake256_x4_inc_finalize(OQS_SHA3_shake256_x4_inc_ctx *state); + +/** + * \brief Four-way parallel SHAKE-256 squeeze function. + * Extracts from four parallel states into four output buffers + * + * \param out0 output buffer for the first instance + * \param out1 output buffer for the second instance + * \param out2 output buffer for the third instance + * \param out3 output buffer for the fourth instance + * \param outlen bytes of outbut buffer + * \param state The function state; must be initialized and finalized + */ +void OQS_SHA3_shake256_x4_inc_squeeze( + uint8_t *out0, + uint8_t *out1, + uint8_t *out2, + uint8_t *out3, + size_t outlen, + OQS_SHA3_shake256_x4_inc_ctx *state); + +/** + * \brief Frees the state for the four-way parallel incremental SHAKE-256 API. + * + * \param state The state to free + */ +void OQS_SHA3_shake256_x4_inc_ctx_release(OQS_SHA3_shake256_x4_inc_ctx *state); + +/** + * \brief Copies the state for the four-way parallel incremental SHAKE-256 API. + * + * \warning dest must be allocated. dest must be freed by calling + * OQS_SHA3_shake256_inc_ctx_release. + * + * \param dest The state to copy into; must be initialized + * \param src The state to copy from; must be initialized + */ +void OQS_SHA3_shake256_x4_inc_ctx_clone( + OQS_SHA3_shake256_x4_inc_ctx *dest, + const OQS_SHA3_shake256_x4_inc_ctx *src); + +/** + * \brief Resets the state for the four-way parallel incremental SHAKE-256 API. + * Allows a context to be re-used without free and init calls. + * + * \param state The function state; must be initialized + */ +void OQS_SHA3_shake256_x4_inc_ctx_reset(OQS_SHA3_shake256_x4_inc_ctx *state); + + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_SHA3_H diff --git a/IVPNClient/liboqs/include/oqs/sig.h b/IVPNClient/liboqs/include/oqs/sig.h new file mode 100644 index 000000000..f7f48ec32 --- /dev/null +++ b/IVPNClient/liboqs/include/oqs/sig.h @@ -0,0 +1,256 @@ +/** + * \file sig.h + * \brief Signature schemes + * + * The file `tests/example_sig.c` contains two examples on using the OQS_SIG API. + * + * The first example uses the individual scheme's algorithms directly and uses + * no dynamic memory allocation -- all buffers are allocated on the stack, with + * sizes indicated using preprocessor macros. Since algorithms can be disabled at + * compile-time, the programmer should wrap the code in \#ifdefs. + * + * The second example uses an OQS_SIG object to use an algorithm specified at + * runtime. Therefore it uses dynamic memory allocation -- all buffers must be + * malloc'ed by the programmer, with sizes indicated using the corresponding length + * member of the OQS_SIG object in question. Since algorithms can be disabled at + * compile-time, the programmer should check that the OQS_SIG object is not `NULL`. + * + * SPDX-License-Identifier: MIT + */ + +#ifndef OQS_SIG_H +#define OQS_SIG_H + +#include +#include +#include + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALG_IDENTIFIER_START +/** Algorithm identifier for Dilithium2 */ +#define OQS_SIG_alg_dilithium_2 "Dilithium2" +/** Algorithm identifier for Dilithium3 */ +#define OQS_SIG_alg_dilithium_3 "Dilithium3" +/** Algorithm identifier for Dilithium5 */ +#define OQS_SIG_alg_dilithium_5 "Dilithium5" +/** Algorithm identifier for Falcon-512 */ +#define OQS_SIG_alg_falcon_512 "Falcon-512" +/** Algorithm identifier for Falcon-1024 */ +#define OQS_SIG_alg_falcon_1024 "Falcon-1024" +/** Algorithm identifier for SPHINCS+-SHA2-128f-simple */ +#define OQS_SIG_alg_sphincs_sha2_128f_simple "SPHINCS+-SHA2-128f-simple" +/** Algorithm identifier for SPHINCS+-SHA2-128s-simple */ +#define OQS_SIG_alg_sphincs_sha2_128s_simple "SPHINCS+-SHA2-128s-simple" +/** Algorithm identifier for SPHINCS+-SHA2-192f-simple */ +#define OQS_SIG_alg_sphincs_sha2_192f_simple "SPHINCS+-SHA2-192f-simple" +/** Algorithm identifier for SPHINCS+-SHA2-192s-simple */ +#define OQS_SIG_alg_sphincs_sha2_192s_simple "SPHINCS+-SHA2-192s-simple" +/** Algorithm identifier for SPHINCS+-SHA2-256f-simple */ +#define OQS_SIG_alg_sphincs_sha2_256f_simple "SPHINCS+-SHA2-256f-simple" +/** Algorithm identifier for SPHINCS+-SHA2-256s-simple */ +#define OQS_SIG_alg_sphincs_sha2_256s_simple "SPHINCS+-SHA2-256s-simple" +/** Algorithm identifier for SPHINCS+-SHAKE-128f-simple */ +#define OQS_SIG_alg_sphincs_shake_128f_simple "SPHINCS+-SHAKE-128f-simple" +/** Algorithm identifier for SPHINCS+-SHAKE-128s-simple */ +#define OQS_SIG_alg_sphincs_shake_128s_simple "SPHINCS+-SHAKE-128s-simple" +/** Algorithm identifier for SPHINCS+-SHAKE-192f-simple */ +#define OQS_SIG_alg_sphincs_shake_192f_simple "SPHINCS+-SHAKE-192f-simple" +/** Algorithm identifier for SPHINCS+-SHAKE-192s-simple */ +#define OQS_SIG_alg_sphincs_shake_192s_simple "SPHINCS+-SHAKE-192s-simple" +/** Algorithm identifier for SPHINCS+-SHAKE-256f-simple */ +#define OQS_SIG_alg_sphincs_shake_256f_simple "SPHINCS+-SHAKE-256f-simple" +/** Algorithm identifier for SPHINCS+-SHAKE-256s-simple */ +#define OQS_SIG_alg_sphincs_shake_256s_simple "SPHINCS+-SHAKE-256s-simple" +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALG_IDENTIFIER_END +// EDIT-WHEN-ADDING-SIG +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALGS_LENGTH_START +/** Number of algorithm identifiers above. */ +#define OQS_SIG_algs_length 17 +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ALGS_LENGTH_END + +/** + * Returns identifiers for available signature schemes in liboqs. Used with OQS_SIG_new. + * + * Note that algorithm identifiers are present in this list even when the algorithm is disabled + * at compile time. + * + * @param[in] i Index of the algorithm identifier to return, 0 <= i < OQS_SIG_algs_length + * @return Algorithm identifier as a string, or NULL. + */ +OQS_API const char *OQS_SIG_alg_identifier(size_t i); + +/** + * Returns the number of signature mechanisms in liboqs. They can be enumerated with + * OQS_SIG_alg_identifier. + * + * Note that some mechanisms may be disabled at compile time. + * + * @return The number of signature mechanisms. + */ +OQS_API int OQS_SIG_alg_count(void); + +/** + * Indicates whether the specified algorithm was enabled at compile-time or not. + * + * @param[in] method_name Name of the desired algorithm; one of the names in `OQS_SIG_algs`. + * @return 1 if enabled, 0 if disabled or not found + */ +OQS_API int OQS_SIG_alg_is_enabled(const char *method_name); + +/** + * Signature schemes object + */ +typedef struct OQS_SIG { + + /** Printable string representing the name of the signature scheme. */ + const char *method_name; + + /** + * Printable string representing the version of the cryptographic algorithm. + * + * Implementations with the same method_name and same alg_version will be interoperable. + * See README.md for information about algorithm compatibility. + */ + const char *alg_version; + + /** The NIST security level (1, 2, 3, 4, 5) claimed in this algorithm's original NIST submission. */ + uint8_t claimed_nist_level; + + /** Whether the signature offers EUF-CMA security (TRUE) or not (FALSE). */ + bool euf_cma; + + /** The (maximum) length, in bytes, of public keys for this signature scheme. */ + size_t length_public_key; + /** The (maximum) length, in bytes, of secret keys for this signature scheme. */ + size_t length_secret_key; + /** The (maximum) length, in bytes, of signatures for this signature scheme. */ + size_t length_signature; + + /** + * Keypair generation algorithm. + * + * Caller is responsible for allocating sufficient memory for `public_key` and + * `secret_key`, based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_SIG_*_length_*`. + * + * @param[out] public_key The public key represented as a byte string. + * @param[out] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ + OQS_STATUS (*keypair)(uint8_t *public_key, uint8_t *secret_key); + + /** + * Signature generation algorithm. + * + * Caller is responsible for allocating sufficient memory for `signature`, + * based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_SIG_*_length_*`. + * + * @param[out] signature The signature on the message represented as a byte string. + * @param[out] signature_len The actual length of the signature. May be smaller than `length_signature` for some algorithms since some algorithms have variable length signatures. + * @param[in] message The message to sign represented as a byte string. + * @param[in] message_len The length of the message to sign. + * @param[in] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ + OQS_STATUS (*sign)(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); + + /** + * Signature verification algorithm. + * + * @param[in] message The message represented as a byte string. + * @param[in] message_len The length of the message. + * @param[in] signature The signature on the message represented as a byte string. + * @param[in] signature_len The length of the signature. + * @param[in] public_key The public key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ + OQS_STATUS (*verify)(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); + +} OQS_SIG; + +/** + * Constructs an OQS_SIG object for a particular algorithm. + * + * Callers should always check whether the return value is `NULL`, which indicates either than an + * invalid algorithm name was provided, or that the requested algorithm was disabled at compile-time. + * + * @param[in] method_name Name of the desired algorithm; one of the names in `OQS_SIG_algs`. + * @return An OQS_SIG for the particular algorithm, or `NULL` if the algorithm has been disabled at compile-time. + */ +OQS_API OQS_SIG *OQS_SIG_new(const char *method_name); + +/** + * Keypair generation algorithm. + * + * Caller is responsible for allocating sufficient memory for `public_key` and + * `secret_key`, based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_SIG_*_length_*`. + * + * @param[in] sig The OQS_SIG object representing the signature scheme. + * @param[out] public_key The public key represented as a byte string. + * @param[out] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ +OQS_API OQS_STATUS OQS_SIG_keypair(const OQS_SIG *sig, uint8_t *public_key, uint8_t *secret_key); + +/** + * Signature generation algorithm. + * + * Caller is responsible for allocating sufficient memory for `signnature`, + * based on the `length_*` members in this object or the per-scheme + * compile-time macros `OQS_SIG_*_length_*`. + * + * @param[in] sig The OQS_SIG object representing the signature scheme. + * @param[out] signature The signature on the message represented as a byte string. + * @param[out] signature_len The length of the signature. + * @param[in] message The message to sign represented as a byte string. + * @param[in] message_len The length of the message to sign. + * @param[in] secret_key The secret key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ +OQS_API OQS_STATUS OQS_SIG_sign(const OQS_SIG *sig, uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); + +/** + * Signature verification algorithm. + * + * @param[in] sig The OQS_SIG object representing the signature scheme. + * @param[in] message The message represented as a byte string. + * @param[in] message_len The length of the message. + * @param[in] signature The signature on the message represented as a byte string. + * @param[in] signature_len The length of the signature. + * @param[in] public_key The public key represented as a byte string. + * @return OQS_SUCCESS or OQS_ERROR + */ +OQS_API OQS_STATUS OQS_SIG_verify(const OQS_SIG *sig, const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); + +/** + * Frees an OQS_SIG object that was constructed by OQS_SIG_new. + * + * @param[in] sig The OQS_SIG object to free. + */ +OQS_API void OQS_SIG_free(OQS_SIG *sig); + +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_INCLUDE_START +#ifdef OQS_ENABLE_SIG_DILITHIUM +#include +#endif /* OQS_ENABLE_SIG_DILITHIUM */ +#ifdef OQS_ENABLE_SIG_FALCON +#include +#endif /* OQS_ENABLE_SIG_FALCON */ +#ifdef OQS_ENABLE_SIG_SPHINCS +#include +#endif /* OQS_ENABLE_SIG_SPHINCS */ +///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_INCLUDE_END +// EDIT-WHEN-ADDING-SIG + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // OQS_SIG_H diff --git a/IVPNClient/liboqs/liboqs.a b/IVPNClient/liboqs/liboqs.a new file mode 100644 index 0000000000000000000000000000000000000000..8d4af574bd6ff900ca21373dc9892ca5c4bb99eb GIT binary patch literal 850912 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 z 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%0DgH8`F$#t{GnUPX#xoyZk_pJa7~L(68s(zTn3E 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 _O^{>jdARJ% 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%0DQvwirH;?}v&O$_jPU5{K{U8Wd79iMUQ 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 or&D!z@(t$X Date: Thu, 25 May 2023 13:02:53 +0200 Subject: [PATCH 07/63] feat(qr): create KemHelper.swift --- IVPNClient.xcodeproj/project.pbxproj | 12 ++ IVPNClient/Utilities/Kem/KemHelper.swift | 141 +++++++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 IVPNClient/Utilities/Kem/KemHelper.swift diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index c228a0da3..73ff9def4 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -195,6 +195,7 @@ 82B81E51235F2A13005986E8 /* InitScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82B81E50235F2A13005986E8 /* InitScreenTests.swift */; }; 82BA8AC122E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BA8AC022E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift */; }; 82BBD9CF2A1F4F9D00375252 /* liboqs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 82BBD9CE2A1F4F9D00375252 /* liboqs.a */; }; + 82BBD9EE2A1F5FA100375252 /* KemHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBD9ED2A1F5FA100375252 /* KemHelper.swift */; }; 82BBF25921AC799A00589766 /* NetworkProtectionRulesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF25821AC799A00589766 /* NetworkProtectionRulesViewController.swift */; }; 82BBF26121AD213500589766 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF26021AD213500589766 /* Theme.swift */; }; 82BBF26921AE802400589766 /* DispatchQueue+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF26821AE802400589766 /* DispatchQueue+Ext.swift */; }; @@ -597,6 +598,7 @@ 82BBD9E92A1F503F00375252 /* kem_kyber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem_kyber.h; sourceTree = ""; }; 82BBD9EA2A1F503F00375252 /* kem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem.h; sourceTree = ""; }; 82BBD9EB2A1F503F00375252 /* oqs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqs.h; sourceTree = ""; }; + 82BBD9ED2A1F5FA100375252 /* KemHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KemHelper.swift; sourceTree = ""; }; 82BBF25821AC799A00589766 /* NetworkProtectionRulesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRulesViewController.swift; sourceTree = ""; }; 82BBF26021AD213500589766 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; 82BBF26821AE802400589766 /* DispatchQueue+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DispatchQueue+Ext.swift"; sourceTree = ""; }; @@ -915,6 +917,7 @@ 82234B6421BA7EB500B082DE /* Utilities */ = { isa = PBXGroup; children = ( + 82BBD9EC2A1F5F9000375252 /* Kem */, 82CE599725ED48AB0078099D /* DNSResolver */, 825A43FB215CCFC10076131F /* Extensions */, 82234B6521BA7F3500B082DE /* Logging */, @@ -1347,6 +1350,14 @@ path = oqs; sourceTree = ""; }; + 82BBD9EC2A1F5F9000375252 /* Kem */ = { + isa = PBXGroup; + children = ( + 82BBD9ED2A1F5FA100375252 /* KemHelper.swift */, + ); + path = Kem; + sourceTree = ""; + }; 82BF32F424484E3800248E4F /* View */ = { isa = PBXGroup; children = ( @@ -2244,6 +2255,7 @@ 9CB2CE2B1DABD120007A4D2D /* NavigationManager.swift in Sources */, 82BBF25921AC799A00589766 /* NetworkProtectionRulesViewController.swift in Sources */, 82DAB37D245725E200302F4C /* ServiceTitleTableViewCell.swift in Sources */, + 82BBD9EE2A1F5FA100375252 /* KemHelper.swift in Sources */, 82C293C321CCDA42000B74EC /* UIColor+Ext.swift in Sources */, 828772F7221C008100D5E330 /* ServerConfigurationCell.swift in Sources */, 825E834F25A327EB00938240 /* CaptchaViewController.swift in Sources */, diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift new file mode 100644 index 000000000..4ffb09c21 --- /dev/null +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -0,0 +1,141 @@ +// +// KemHelper.swift +// IVPN iOS app +// https://github.com/ivpn/ios-app +// +// Created by Juraj Hilje on 2023-05-25. +// Copyright (c) 2023 Privatus Limited. +// +// This file is part of the IVPN iOS app. +// +// The IVPN iOS app is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) any later version. +// +// The IVPN iOS app is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License +// along with the IVPN iOS app. If not, see . +// + +import Foundation +import CryptoKit + +enum KemAlgorithm: String { + case Kyber1024 = "Kyber1024" + case ClassicMcEliece348864 = "Classic-McEliece-348864" +} + +enum KemHelperError: Error { + case initError + case generateKeysError +} + +struct KemHelper { + + // MARK: - Properties - + + private var algorithms = [KemAlgorithm]() + private var privateKeys = [String]() // base64 + private var publicKeys = [String]() // base64 + private var ciphers = [String]() // base64 + private var secrets = [String]() // base64 (decoded ciphers) + + // MARK: - Initialize - + + init(algorithms: [KemAlgorithm]) throws { + guard !algorithms.isEmpty else { + throw KemHelperError.initError + } + + generateKeys() + + guard !privateKeys.isEmpty, !publicKeys.isEmpty else { + throw KemHelperError.generateKeysError + } + } + + // MARK: - Methods - + + func getPublicKey(algorithm: KemAlgorithm) -> String { + let index = getIndex(algorithm: algorithm) + return publicKeys[getIndex(algorithm: algorithm)] + } + + mutating func setCipher(algorithm: KemAlgorithm, cipher: String) { + let index = getIndex(algorithm: algorithm) + ciphers[index] = cipher + } + + mutating func calculatePresharedKey() -> String? { + decodeCiphers(ciphers: ciphers) + return hashSecrets(secrets: secrets) + } + + // MARK: - Private Methods - + + private mutating func generateKeys() { + (self.privateKeys, self.publicKeys) = generateKeysMulti(algorithms: algorithms) + } + + private mutating func decodeCiphers(ciphers: [String]) { + secrets = decodeCipherMulti(algorithms: algorithms, privateKeys: privateKeys, ciphers: ciphers) + } + + private func generateKeys(algorithm: KemAlgorithm) -> (String, String) { + // TODO: Implement generateKeys() + return ("", "") + } + + private mutating func generateKeysMulti(algorithms: [KemAlgorithm]) -> ([String], [String]) { + var privateKeys = [String]() + var publicKeys = [String]() + for algo in algorithms { + let (priv, pub) = generateKeys(algorithm: algo) + privateKeys.append(priv) + publicKeys.append(pub) + } + + return (privateKeys, publicKeys) + } + + private func decodeCipher(algorithm: KemAlgorithm, privateKeyBase64: String, cipherBase64: String) -> String { + // TODO: Implement decodeCipher() + return "" + } + + private mutating func decodeCipherMulti(algorithms: [KemAlgorithm], privateKeys: [String], ciphers: [String]) -> [String] { + for (index, algo) in algorithms.enumerated() { + let secret = decodeCipher(algorithm: algo, privateKeyBase64: privateKeys[index], cipherBase64: ciphers[index]) + secrets.append(secret) + } + + return secrets + } + + private func getIndex(algorithm: KemAlgorithm) -> Int { + for (index, algo) in algorithms.enumerated() { + if algo == algorithm { + return index + } + } + + return -1 + } + + func hashSecrets(secrets: [String]) -> String? { + var hasher = SHA256() + for secret in secrets { + guard let sDecoded = Data(base64Encoded: secret) else { + return nil + } + hasher.update(data: sDecoded) + } + let hash = hasher.finalize() + return Data(hasher.finalize()).base64EncodedString() + } + +} From e1f3b133f71b0708695e374f77f632af660a4efe Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 25 May 2023 13:57:59 +0200 Subject: [PATCH 08/63] feat(qr): update generateKeys method --- IVPNClient/Utilities/Kem/KemHelper.swift | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 4ffb09c21..0fef7d868 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -86,8 +86,19 @@ struct KemHelper { } private func generateKeys(algorithm: KemAlgorithm) -> (String, String) { - // TODO: Implement generateKeys() - return ("", "") + var kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() + let publicKey = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_public_key ?? 0)) + let secretKey = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_secret_key ?? 0)) + OQS_KEM_keypair(kem, publicKey, secretKey) + + let publicKeyData = Data(bytes: publicKey, count: Int(kem?.pointee.length_public_key ?? 0)) + let secretKeyData = Data(bytes: secretKey, count: Int(kem?.pointee.length_secret_key ?? 0)) + + OQS_KEM_free(kem) + publicKey.deallocate() + secretKey.deallocate() + + return (publicKeyData.base64EncodedString(), secretKeyData.base64EncodedString()) } private mutating func generateKeysMulti(algorithms: [KemAlgorithm]) -> ([String], [String]) { From 2bacd882629dde754b14a067fbec0d28713b5aa2 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 25 May 2023 14:15:09 +0200 Subject: [PATCH 09/63] feat(qr): update init in KemHelper.swift --- IVPNClient/Utilities/Kem/KemHelper.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 0fef7d868..96217a7ee 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -24,7 +24,7 @@ import Foundation import CryptoKit -enum KemAlgorithm: String { +enum KemAlgorithm: String, CaseIterable { case Kyber1024 = "Kyber1024" case ClassicMcEliece348864 = "Classic-McEliece-348864" } @@ -46,13 +46,13 @@ struct KemHelper { // MARK: - Initialize - - init(algorithms: [KemAlgorithm]) throws { + init(algorithms: [KemAlgorithm] = KemAlgorithm.allCases) throws { + self.algorithms = algorithms guard !algorithms.isEmpty else { throw KemHelperError.initError } generateKeys() - guard !privateKeys.isEmpty, !publicKeys.isEmpty else { throw KemHelperError.generateKeysError } From b1098bd0bfa44702e83f430271d944038b92d490 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 25 May 2023 17:19:12 +0200 Subject: [PATCH 10/63] feat(qr): update decodeCipher method --- IVPNClient/Utilities/Kem/KemHelper.swift | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 96217a7ee..fe5f37bad 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -86,7 +86,7 @@ struct KemHelper { } private func generateKeys(algorithm: KemAlgorithm) -> (String, String) { - var kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() + let kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() let publicKey = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_public_key ?? 0)) let secretKey = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_secret_key ?? 0)) OQS_KEM_keypair(kem, publicKey, secretKey) @@ -112,10 +112,23 @@ struct KemHelper { return (privateKeys, publicKeys) } - private func decodeCipher(algorithm: KemAlgorithm, privateKeyBase64: String, cipherBase64: String) -> String { - // TODO: Implement decodeCipher() - return "" + let kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() + let secret = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_shared_secret ?? 0)) + let cipherData = Data(base64Encoded: cipherBase64) + let privateKeyData = Data(base64Encoded: privateKeyBase64) + let cipherPtr = cipherData?.withUnsafeBytes { $0.bindMemory(to: UInt8.self).baseAddress } + let privateKeyPtr = privateKeyData?.withUnsafeBytes { $0.bindMemory(to: UInt8.self).baseAddress } + OQS_KEM_decaps(kem, secret, cipherPtr, privateKeyPtr) + + let secretData = Data(bytes: secret, count: Int(kem?.pointee.length_shared_secret ?? 0)) + + OQS_KEM_free(kem) + secret.deallocate() + cipherPtr?.deallocate() + privateKeyPtr?.deallocate() + + return secretData.base64EncodedString() } private mutating func decodeCipherMulti(algorithms: [KemAlgorithm], privateKeys: [String], ciphers: [String]) -> [String] { @@ -146,7 +159,7 @@ struct KemHelper { hasher.update(data: sDecoded) } let hash = hasher.finalize() - return Data(hasher.finalize()).base64EncodedString() + return Data(hash).base64EncodedString() } } From e1bf9bae6d9aba20b7ce02c4702ddad36231136f Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 25 May 2023 17:21:54 +0200 Subject: [PATCH 11/63] refactor: clean up KemHelper.swift --- IVPNClient/Utilities/Kem/KemHelper.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index fe5f37bad..09495bea1 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -62,7 +62,7 @@ struct KemHelper { func getPublicKey(algorithm: KemAlgorithm) -> String { let index = getIndex(algorithm: algorithm) - return publicKeys[getIndex(algorithm: algorithm)] + return publicKeys[index] } mutating func setCipher(algorithm: KemAlgorithm, cipher: String) { @@ -112,6 +112,7 @@ struct KemHelper { return (privateKeys, publicKeys) } + private func decodeCipher(algorithm: KemAlgorithm, privateKeyBase64: String, cipherBase64: String) -> String { let kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() let secret = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_shared_secret ?? 0)) From 5bdc82f38e86b81a78707e10479ef9361b6b6a41 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Fri, 26 May 2023 12:48:18 +0200 Subject: [PATCH 12/63] feat(qr): update setNewKey method in AppKeyManager --- IVPNClient/Managers/AppKeyManager.swift | 12 ++++++++++-- IVPNClient/Utilities/Kem/KemHelper.swift | 11 ++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/IVPNClient/Managers/AppKeyManager.swift b/IVPNClient/Managers/AppKeyManager.swift index 4c1922192..53c2fd5ad 100644 --- a/IVPNClient/Managers/AppKeyManager.swift +++ b/IVPNClient/Managers/AppKeyManager.swift @@ -87,11 +87,16 @@ class AppKeyManager { func setNewKey() { var interface = Interface() interface.privateKey = Interface.generatePrivateKey() - - let params = ApiService.authParams + [ + var params = ApiService.authParams + [ URLQueryItem(name: "public_key", value: interface.publicKey ?? "") ] + var kemHelper = KemHelper() + params = params + [ + URLQueryItem(name: "kem_public_key1", value: kemHelper.getPublicKey(algorithm: .Kyber1024)), + URLQueryItem(name: "kem_public_key2", value: kemHelper.getPublicKey(algorithm: .ClassicMcEliece348864)) + ] + let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionWGKeySet, params: params) delegate?.setKeyStart() @@ -103,6 +108,9 @@ class AppKeyManager { KeyChain.wgPrivateKey = interface.privateKey KeyChain.wgPublicKey = interface.publicKey KeyChain.wgIpAddress = model.ipAddress + kemHelper.setCipher(algorithm: .Kyber1024, cipher: "") + kemHelper.setCipher(algorithm: .ClassicMcEliece348864, cipher: "") + let wgPresharedKey = kemHelper.calculatePresharedKey() self.delegate?.setKeySuccess() case .failure: self.delegate?.setKeyFail() diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 09495bea1..634cd3a8a 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -46,16 +46,9 @@ struct KemHelper { // MARK: - Initialize - - init(algorithms: [KemAlgorithm] = KemAlgorithm.allCases) throws { + init(algorithms: [KemAlgorithm] = KemAlgorithm.allCases) { self.algorithms = algorithms - guard !algorithms.isEmpty else { - throw KemHelperError.initError - } - generateKeys() - guard !privateKeys.isEmpty, !publicKeys.isEmpty else { - throw KemHelperError.generateKeysError - } } // MARK: - Methods - @@ -151,7 +144,7 @@ struct KemHelper { return -1 } - func hashSecrets(secrets: [String]) -> String? { + private func hashSecrets(secrets: [String]) -> String? { var hasher = SHA256() for secret in secrets { guard let sDecoded = Data(base64Encoded: secret) else { From 13b63eb1871cacfb3fb500521be2817c3f6bce96 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Fri, 26 May 2023 12:56:13 +0200 Subject: [PATCH 13/63] feat(qr): update setNewKey method in AppKeyManager --- IVPNClient/Enums/ApiResults/InterfaceResult.swift | 2 ++ IVPNClient/Managers/AppKeyManager.swift | 6 +++--- IVPNClient/Managers/KeyChain.swift | 11 +++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/IVPNClient/Enums/ApiResults/InterfaceResult.swift b/IVPNClient/Enums/ApiResults/InterfaceResult.swift index 60897698a..48fddfda8 100644 --- a/IVPNClient/Enums/ApiResults/InterfaceResult.swift +++ b/IVPNClient/Enums/ApiResults/InterfaceResult.swift @@ -25,4 +25,6 @@ import Foundation struct InterfaceResult: Decodable { var ipAddress: String + let kemCipher1: String + let kemCipher2: String } diff --git a/IVPNClient/Managers/AppKeyManager.swift b/IVPNClient/Managers/AppKeyManager.swift index 53c2fd5ad..41a57652f 100644 --- a/IVPNClient/Managers/AppKeyManager.swift +++ b/IVPNClient/Managers/AppKeyManager.swift @@ -108,9 +108,9 @@ class AppKeyManager { KeyChain.wgPrivateKey = interface.privateKey KeyChain.wgPublicKey = interface.publicKey KeyChain.wgIpAddress = model.ipAddress - kemHelper.setCipher(algorithm: .Kyber1024, cipher: "") - kemHelper.setCipher(algorithm: .ClassicMcEliece348864, cipher: "") - let wgPresharedKey = kemHelper.calculatePresharedKey() + kemHelper.setCipher(algorithm: .Kyber1024, cipher: model.kemCipher1) + kemHelper.setCipher(algorithm: .ClassicMcEliece348864, cipher: model.kemCipher2) + KeyChain.wgPresharedKey = kemHelper.calculatePresharedKey() self.delegate?.setKeySuccess() case .failure: self.delegate?.setKeyFail() diff --git a/IVPNClient/Managers/KeyChain.swift b/IVPNClient/Managers/KeyChain.swift index b15934e09..23a9a17c9 100644 --- a/IVPNClient/Managers/KeyChain.swift +++ b/IVPNClient/Managers/KeyChain.swift @@ -33,6 +33,7 @@ class KeyChain { private static let wgIpAddressKey = "WGIpAddressKey" private static let wgIpv6HostKey = "WGIPv6HostKey" private static let wgIpAddressesKey = "WGIpAddressesKey" + private static let wgPresharedKeyKey = "WGPresharedKey" private static let sessionTokenKey = "session_token" private static let vpnUsernameKey = "vpn_username" private static let vpnPasswordKey = "vpn_password" @@ -95,6 +96,15 @@ class KeyChain { } } + class var wgPresharedKey: String? { + get { + return KeyChain.bundle[wgPresharedKeyKey] + } + set { + KeyChain.bundle[wgPresharedKeyKey] = newValue + } + } + class var wgIpv6Host: String? { get { return KeyChain.bundle[wgIpv6HostKey] @@ -152,6 +162,7 @@ class KeyChain { wgPublicKey = nil wgIpAddress = nil wgIpAddresses = nil + wgPresharedKey = nil sessionToken = nil vpnUsername = nil vpnPassword = nil From d2a9d43392e6050bcaad685ba3ca7ddfb47beb34 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Fri, 26 May 2023 13:12:31 +0200 Subject: [PATCH 14/63] feat(qr): update makeWireGuardProtocol method in NETunnelProviderProtocol+Ext.swift --- .../Utilities/Extensions/NETunnelProviderProtocol+Ext.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift b/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift index 9428e63b5..6b98a061e 100644 --- a/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift +++ b/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift @@ -132,6 +132,7 @@ extension NETunnelProviderProtocol { let peer = Peer( publicKey: publicKey, + presharedKey: KeyChain.wgPresharedKey, allowedIPs: Config.wgPeerAllowedIPs, endpoint: endpoint, persistentKeepalive: Config.wgPeerPersistentKeepalive From 896082bb4f58f5acc9264665d5659aa338687f29 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 31 May 2023 14:45:32 +0200 Subject: [PATCH 15/63] feat(qr): update KemHelper.swift --- IVPNClient.xcodeproj/project.pbxproj | 86 +++++++------ IVPNClient/Managers/AppKeyManager.swift | 5 +- IVPNClient/Utilities/Kem/KemHelper.swift | 40 +++--- .../liboqs/include/oqs/kem_classic_mceliece.h | 119 ------------------ IVPNClient/liboqs/include/oqs/oqsconfig.h | 4 +- IVPNClient/liboqs/liboqs.a | Bin 850912 -> 483496 bytes 6 files changed, 67 insertions(+), 187 deletions(-) delete mode 100644 IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 73ff9def4..fea1e898b 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -87,6 +87,7 @@ 8247A5ED215D037600E8D680 /* UserDefaults+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825A43FC215CCFE70076131F /* UserDefaults+Ext.swift */; }; 8247E1DA22686217006C0C08 /* IAPManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8247E1D922686217006C0C08 /* IAPManager.swift */; }; 8247E1DE22687C28006C0C08 /* ProductIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8247E1DD22687C28006C0C08 /* ProductIdentifier.swift */; }; + 82486FAD2A277058009B53F4 /* liboqs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 82486FAC2A277058009B53F4 /* liboqs.a */; }; 824B141C2609D5E700766B05 /* DNSProtocolTypeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B141B2609D5E700766B05 /* DNSProtocolTypeTests.swift */; }; 824B86B926D3D16100D0101A /* FileManager+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 824B86AD26D3D16100D0101A /* FileManager+Extension.swift */; }; 824B86BF26D3D16100D0101A /* ringlogger.c in Sources */ = {isa = PBXBuildFile; fileRef = 824B86B526D3D16100D0101A /* ringlogger.c */; }; @@ -194,7 +195,6 @@ 82B81E4F235F2614005986E8 /* XCUIApplication+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82B81E4E235F2614005986E8 /* XCUIApplication+Ext.swift */; }; 82B81E51235F2A13005986E8 /* InitScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82B81E50235F2A13005986E8 /* InitScreenTests.swift */; }; 82BA8AC122E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BA8AC022E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift */; }; - 82BBD9CF2A1F4F9D00375252 /* liboqs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 82BBD9CE2A1F4F9D00375252 /* liboqs.a */; }; 82BBD9EE2A1F5FA100375252 /* KemHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBD9ED2A1F5FA100375252 /* KemHelper.swift */; }; 82BBF25921AC799A00589766 /* NetworkProtectionRulesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF25821AC799A00589766 /* NetworkProtectionRulesViewController.swift */; }; 82BBF26121AD213500589766 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF26021AD213500589766 /* Theme.swift */; }; @@ -484,6 +484,18 @@ 824777E621A6BC3A001EEFAF /* Network+CoreDataProperties.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Network+CoreDataProperties.swift"; sourceTree = ""; }; 8247E1D922686217006C0C08 /* IAPManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IAPManager.swift; sourceTree = ""; }; 8247E1DD22687C28006C0C08 /* ProductIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductIdentifier.swift; sourceTree = ""; }; + 82486FAC2A277058009B53F4 /* liboqs.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liboqs.a; sourceTree = ""; }; + 82486FB02A27705F009B53F4 /* sha3x4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha3x4.h; sourceTree = ""; }; + 82486FB12A27705F009B53F4 /* oqsconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqsconfig.h; sourceTree = ""; }; + 82486FB22A27705F009B53F4 /* sha3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha3.h; sourceTree = ""; }; + 82486FB32A27705F009B53F4 /* sha2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha2.h; sourceTree = ""; }; + 82486FB42A27705F009B53F4 /* sig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sig.h; sourceTree = ""; }; + 82486FB52A27705F009B53F4 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 82486FB62A27705F009B53F4 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = ""; }; + 82486FB72A27705F009B53F4 /* rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rand.h; sourceTree = ""; }; + 82486FB82A27705F009B53F4 /* kem_kyber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem_kyber.h; sourceTree = ""; }; + 82486FB92A27705F009B53F4 /* kem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem.h; sourceTree = ""; }; + 82486FBA2A27705F009B53F4 /* oqs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqs.h; sourceTree = ""; }; 824B141B2609D5E700766B05 /* DNSProtocolTypeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DNSProtocolTypeTests.swift; sourceTree = ""; }; 824B86AB26D3D16100D0101A /* WireGuardNetworkExtension-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "WireGuardNetworkExtension-Bridging-Header.h"; sourceTree = ""; }; 824B86AD26D3D16100D0101A /* FileManager+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "FileManager+Extension.swift"; sourceTree = ""; }; @@ -585,19 +597,6 @@ 82B81E4E235F2614005986E8 /* XCUIApplication+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCUIApplication+Ext.swift"; sourceTree = ""; }; 82B81E50235F2A13005986E8 /* InitScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitScreenTests.swift; sourceTree = ""; }; 82BA8AC022E5DC93004E8D8D /* NETunnelProviderProtocol+ExtTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NETunnelProviderProtocol+ExtTests.swift"; sourceTree = ""; }; - 82BBD9CE2A1F4F9D00375252 /* liboqs.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liboqs.a; sourceTree = ""; }; - 82BBD9E02A1F503F00375252 /* sha3x4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha3x4.h; sourceTree = ""; }; - 82BBD9E12A1F503F00375252 /* kem_classic_mceliece.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem_classic_mceliece.h; sourceTree = ""; }; - 82BBD9E22A1F503F00375252 /* oqsconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqsconfig.h; sourceTree = ""; }; - 82BBD9E32A1F503F00375252 /* sha3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha3.h; sourceTree = ""; }; - 82BBD9E42A1F503F00375252 /* sha2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha2.h; sourceTree = ""; }; - 82BBD9E52A1F503F00375252 /* sig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sig.h; sourceTree = ""; }; - 82BBD9E62A1F503F00375252 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; - 82BBD9E72A1F503F00375252 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = ""; }; - 82BBD9E82A1F503F00375252 /* rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rand.h; sourceTree = ""; }; - 82BBD9E92A1F503F00375252 /* kem_kyber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem_kyber.h; sourceTree = ""; }; - 82BBD9EA2A1F503F00375252 /* kem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kem.h; sourceTree = ""; }; - 82BBD9EB2A1F503F00375252 /* oqs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oqs.h; sourceTree = ""; }; 82BBD9ED2A1F5FA100375252 /* KemHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KemHelper.swift; sourceTree = ""; }; 82BBF25821AC799A00589766 /* NetworkProtectionRulesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRulesViewController.swift; sourceTree = ""; }; 82BBF26021AD213500589766 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; @@ -781,7 +780,7 @@ 82D598C621A6A5C7000FABDE /* SystemConfiguration.framework in Frameworks */, 9CB2CE311DAF9227007A4D2D /* CoreData.framework in Frameworks */, 9C6942251DD0CBF800F9A801 /* NetworkExtension.framework in Frameworks */, - 82BBD9CF2A1F4F9D00375252 /* liboqs.a in Frameworks */, + 82486FAD2A277058009B53F4 /* liboqs.a in Frameworks */, 82EC884729A12D510024CC40 /* SnapKit in Frameworks */, 82EC883B29A12C7D0024CC40 /* SwiftyStoreKit in Frameworks */, 829F5FC729A13CAE009E1AD3 /* KeychainAccess in Frameworks */, @@ -1037,6 +1036,32 @@ path = View; sourceTree = ""; }; + 82486FAE2A27705F009B53F4 /* include */ = { + isa = PBXGroup; + children = ( + 82486FAF2A27705F009B53F4 /* oqs */, + ); + path = include; + sourceTree = ""; + }; + 82486FAF2A27705F009B53F4 /* oqs */ = { + isa = PBXGroup; + children = ( + 82486FB02A27705F009B53F4 /* sha3x4.h */, + 82486FB12A27705F009B53F4 /* oqsconfig.h */, + 82486FB22A27705F009B53F4 /* sha3.h */, + 82486FB32A27705F009B53F4 /* sha2.h */, + 82486FB42A27705F009B53F4 /* sig.h */, + 82486FB52A27705F009B53F4 /* common.h */, + 82486FB62A27705F009B53F4 /* aes.h */, + 82486FB72A27705F009B53F4 /* rand.h */, + 82486FB82A27705F009B53F4 /* kem_kyber.h */, + 82486FB92A27705F009B53F4 /* kem.h */, + 82486FBA2A27705F009B53F4 /* oqs.h */, + ); + path = oqs; + sourceTree = ""; + }; 824B86AA26D3D16100D0101A /* WireGuard */ = { isa = PBXGroup; children = ( @@ -1317,39 +1342,12 @@ 82BBD9BB2A1E563700375252 /* liboqs */ = { isa = PBXGroup; children = ( - 82BBD9CE2A1F4F9D00375252 /* liboqs.a */, - 82BBD9DE2A1F503F00375252 /* include */, + 82486FAC2A277058009B53F4 /* liboqs.a */, + 82486FAE2A27705F009B53F4 /* include */, ); path = liboqs; sourceTree = ""; }; - 82BBD9DE2A1F503F00375252 /* include */ = { - isa = PBXGroup; - children = ( - 82BBD9DF2A1F503F00375252 /* oqs */, - ); - path = include; - sourceTree = ""; - }; - 82BBD9DF2A1F503F00375252 /* oqs */ = { - isa = PBXGroup; - children = ( - 82BBD9E02A1F503F00375252 /* sha3x4.h */, - 82BBD9E12A1F503F00375252 /* kem_classic_mceliece.h */, - 82BBD9E22A1F503F00375252 /* oqsconfig.h */, - 82BBD9E32A1F503F00375252 /* sha3.h */, - 82BBD9E42A1F503F00375252 /* sha2.h */, - 82BBD9E52A1F503F00375252 /* sig.h */, - 82BBD9E62A1F503F00375252 /* common.h */, - 82BBD9E72A1F503F00375252 /* aes.h */, - 82BBD9E82A1F503F00375252 /* rand.h */, - 82BBD9E92A1F503F00375252 /* kem_kyber.h */, - 82BBD9EA2A1F503F00375252 /* kem.h */, - 82BBD9EB2A1F503F00375252 /* oqs.h */, - ); - path = oqs; - sourceTree = ""; - }; 82BBD9EC2A1F5F9000375252 /* Kem */ = { isa = PBXGroup; children = ( diff --git a/IVPNClient/Managers/AppKeyManager.swift b/IVPNClient/Managers/AppKeyManager.swift index 41a57652f..b65d8461d 100644 --- a/IVPNClient/Managers/AppKeyManager.swift +++ b/IVPNClient/Managers/AppKeyManager.swift @@ -93,10 +93,8 @@ class AppKeyManager { var kemHelper = KemHelper() params = params + [ - URLQueryItem(name: "kem_public_key1", value: kemHelper.getPublicKey(algorithm: .Kyber1024)), - URLQueryItem(name: "kem_public_key2", value: kemHelper.getPublicKey(algorithm: .ClassicMcEliece348864)) + URLQueryItem(name: "kem_public_key1", value: kemHelper.getPublicKey(algorithm: .Kyber1024)) ] - let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionWGKeySet, params: params) delegate?.setKeyStart() @@ -109,7 +107,6 @@ class AppKeyManager { KeyChain.wgPublicKey = interface.publicKey KeyChain.wgIpAddress = model.ipAddress kemHelper.setCipher(algorithm: .Kyber1024, cipher: model.kemCipher1) - kemHelper.setCipher(algorithm: .ClassicMcEliece348864, cipher: model.kemCipher2) KeyChain.wgPresharedKey = kemHelper.calculatePresharedKey() self.delegate?.setKeySuccess() case .failure: diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 634cd3a8a..d0bdba93e 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -26,7 +26,6 @@ import CryptoKit enum KemAlgorithm: String, CaseIterable { case Kyber1024 = "Kyber1024" - case ClassicMcEliece348864 = "Classic-McEliece-348864" } enum KemHelperError: Error { @@ -46,7 +45,7 @@ struct KemHelper { // MARK: - Initialize - - init(algorithms: [KemAlgorithm] = KemAlgorithm.allCases) { + init(algorithms: [KemAlgorithm] = [KemAlgorithm.Kyber1024]) { self.algorithms = algorithms generateKeys() } @@ -79,13 +78,16 @@ struct KemHelper { } private func generateKeys(algorithm: KemAlgorithm) -> (String, String) { - let kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() - let publicKey = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_public_key ?? 0)) - let secretKey = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_secret_key ?? 0)) + let kem = OQS_KEM_kyber_1024_new() + let publicKeyLength = OQS_KEM_kyber_1024_length_public_key + let secretKeyLength = OQS_KEM_kyber_1024_length_secret_key + let publicKey = UnsafeMutablePointer.allocate(capacity: Int(publicKeyLength)) + let secretKey = UnsafeMutablePointer.allocate(capacity: Int(secretKeyLength)) + OQS_KEM_keypair(kem, publicKey, secretKey) - let publicKeyData = Data(bytes: publicKey, count: Int(kem?.pointee.length_public_key ?? 0)) - let secretKeyData = Data(bytes: secretKey, count: Int(kem?.pointee.length_secret_key ?? 0)) + let publicKeyData = Data(bytes: publicKey, count: Int(publicKeyLength)) + let secretKeyData = Data(bytes: secretKey, count: Int(secretKeyLength)) OQS_KEM_free(kem) publicKey.deallocate() @@ -98,29 +100,31 @@ struct KemHelper { var privateKeys = [String]() var publicKeys = [String]() for algo in algorithms { - let (priv, pub) = generateKeys(algorithm: algo) - privateKeys.append(priv) + let (pub, priv) = generateKeys(algorithm: algo) publicKeys.append(pub) + privateKeys.append(priv) } return (privateKeys, publicKeys) } private func decodeCipher(algorithm: KemAlgorithm, privateKeyBase64: String, cipherBase64: String) -> String { - let kem = algorithm == .Kyber1024 ? OQS_KEM_kyber_1024_new() : OQS_KEM_classic_mceliece_348864_new() - let secret = UnsafeMutablePointer.allocate(capacity: Int(kem?.pointee.length_shared_secret ?? 0)) + let kem = OQS_KEM_kyber_1024_new() + let sharedSecretLength = OQS_KEM_kyber_1024_length_shared_secret + let sharedSecret = UnsafeMutablePointer.allocate(capacity: Int(sharedSecretLength)) let cipherData = Data(base64Encoded: cipherBase64) let privateKeyData = Data(base64Encoded: privateKeyBase64) - let cipherPtr = cipherData?.withUnsafeBytes { $0.bindMemory(to: UInt8.self).baseAddress } - let privateKeyPtr = privateKeyData?.withUnsafeBytes { $0.bindMemory(to: UInt8.self).baseAddress } - OQS_KEM_decaps(kem, secret, cipherPtr, privateKeyPtr) + let cipher = cipherData?.withUnsafeBytes { $0.bindMemory(to: UInt8.self).baseAddress } + let privateKey = privateKeyData?.withUnsafeBytes { $0.bindMemory(to: UInt8.self).baseAddress } + + OQS_KEM_decaps(kem, sharedSecret, cipher, privateKey) - let secretData = Data(bytes: secret, count: Int(kem?.pointee.length_shared_secret ?? 0)) + let secretData = Data(bytes: sharedSecret, count: Int(sharedSecretLength)) OQS_KEM_free(kem) - secret.deallocate() - cipherPtr?.deallocate() - privateKeyPtr?.deallocate() + sharedSecret.deallocate() + cipher?.deallocate() + privateKey?.deallocate() return secretData.base64EncodedString() } diff --git a/IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h b/IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h deleted file mode 100644 index 23c227d2c..000000000 --- a/IVPNClient/liboqs/include/oqs/kem_classic_mceliece.h +++ /dev/null @@ -1,119 +0,0 @@ -// SPDX-License-Identifier: MIT - -#ifndef OQS_KEM_CLASSIC_MCELIECE_H -#define OQS_KEM_CLASSIC_MCELIECE_H - -#include - -#ifdef OQS_ENABLE_KEM_classic_mceliece_348864 -#define OQS_KEM_classic_mceliece_348864_length_public_key 261120 -#define OQS_KEM_classic_mceliece_348864_length_secret_key 6452 -#define OQS_KEM_classic_mceliece_348864_length_ciphertext 128 -#define OQS_KEM_classic_mceliece_348864_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_348864_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_348864f -#define OQS_KEM_classic_mceliece_348864f_length_public_key 261120 -#define OQS_KEM_classic_mceliece_348864f_length_secret_key 6452 -#define OQS_KEM_classic_mceliece_348864f_length_ciphertext 128 -#define OQS_KEM_classic_mceliece_348864f_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_348864f_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864f_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_348864f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_460896 -#define OQS_KEM_classic_mceliece_460896_length_public_key 524160 -#define OQS_KEM_classic_mceliece_460896_length_secret_key 13568 -#define OQS_KEM_classic_mceliece_460896_length_ciphertext 188 -#define OQS_KEM_classic_mceliece_460896_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_460896_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_460896f -#define OQS_KEM_classic_mceliece_460896f_length_public_key 524160 -#define OQS_KEM_classic_mceliece_460896f_length_secret_key 13568 -#define OQS_KEM_classic_mceliece_460896f_length_ciphertext 188 -#define OQS_KEM_classic_mceliece_460896f_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_460896f_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896f_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_460896f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_6688128 -#define OQS_KEM_classic_mceliece_6688128_length_public_key 1044992 -#define OQS_KEM_classic_mceliece_6688128_length_secret_key 13892 -#define OQS_KEM_classic_mceliece_6688128_length_ciphertext 240 -#define OQS_KEM_classic_mceliece_6688128_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_6688128_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_6688128f -#define OQS_KEM_classic_mceliece_6688128f_length_public_key 1044992 -#define OQS_KEM_classic_mceliece_6688128f_length_secret_key 13892 -#define OQS_KEM_classic_mceliece_6688128f_length_ciphertext 240 -#define OQS_KEM_classic_mceliece_6688128f_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_6688128f_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128f_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6688128f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_6960119 -#define OQS_KEM_classic_mceliece_6960119_length_public_key 1047319 -#define OQS_KEM_classic_mceliece_6960119_length_secret_key 13908 -#define OQS_KEM_classic_mceliece_6960119_length_ciphertext 226 -#define OQS_KEM_classic_mceliece_6960119_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_6960119_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_6960119f -#define OQS_KEM_classic_mceliece_6960119f_length_public_key 1047319 -#define OQS_KEM_classic_mceliece_6960119f_length_secret_key 13908 -#define OQS_KEM_classic_mceliece_6960119f_length_ciphertext 226 -#define OQS_KEM_classic_mceliece_6960119f_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_6960119f_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119f_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_6960119f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_8192128 -#define OQS_KEM_classic_mceliece_8192128_length_public_key 1357824 -#define OQS_KEM_classic_mceliece_8192128_length_secret_key 14080 -#define OQS_KEM_classic_mceliece_8192128_length_ciphertext 240 -#define OQS_KEM_classic_mceliece_8192128_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_8192128_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#ifdef OQS_ENABLE_KEM_classic_mceliece_8192128f -#define OQS_KEM_classic_mceliece_8192128f_length_public_key 1357824 -#define OQS_KEM_classic_mceliece_8192128f_length_secret_key 14080 -#define OQS_KEM_classic_mceliece_8192128f_length_ciphertext 240 -#define OQS_KEM_classic_mceliece_8192128f_length_shared_secret 32 -OQS_KEM *OQS_KEM_classic_mceliece_8192128f_new(void); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128f_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128f_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_API OQS_STATUS OQS_KEM_classic_mceliece_8192128f_decaps(uint8_t *shared_secret, const uint8_t *ciphertext, const uint8_t *secret_key); -#endif - -#endif - diff --git a/IVPNClient/liboqs/include/oqs/oqsconfig.h b/IVPNClient/liboqs/include/oqs/oqsconfig.h index d842f666c..5a559b605 100644 --- a/IVPNClient/liboqs/include/oqs/oqsconfig.h +++ b/IVPNClient/liboqs/include/oqs/oqsconfig.h @@ -69,8 +69,8 @@ ///// OQS_COPY_FROM_UPSTREAM_FRAGMENT_ADD_ALG_ENABLE_DEFINES_START -#define OQS_ENABLE_KEM_CLASSIC_MCELIECE 1 -#define OQS_ENABLE_KEM_classic_mceliece_348864 1 +/* #undef OQS_ENABLE_KEM_CLASSIC_MCELIECE */ +/* #undef OQS_ENABLE_KEM_classic_mceliece_348864 */ /* #undef OQS_ENABLE_KEM_classic_mceliece_348864_avx */ /* #undef OQS_ENABLE_KEM_classic_mceliece_348864f */ /* #undef OQS_ENABLE_KEM_classic_mceliece_348864f_avx */ diff --git a/IVPNClient/liboqs/liboqs.a b/IVPNClient/liboqs/liboqs.a index 8d4af574bd6ff900ca21373dc9892ca5c4bb99eb..70ea989cc5c653746b37aecff933f6d36531fb70 100644 GIT binary patch delta 7308 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 F{{z_YNTL7$ delta 321263 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Ý)1mA*A(ex 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⪙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%0Dt!ld0qt2Kk_wzmFM+F9tDWy@)_QCDDq;Z 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 bw3fYdV!J+@ZHUs)##VKVHL<|(SjPVap>ed? From 28ea49c2b1c66a3a2a506eb1a74b5af26611b90a Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 31 May 2023 15:24:28 +0200 Subject: [PATCH 16/63] feat(qr): update KemHelper.swift --- IVPNClient/Utilities/Kem/KemHelper.swift | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index d0bdba93e..56dead88b 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -45,7 +45,7 @@ struct KemHelper { // MARK: - Initialize - - init(algorithms: [KemAlgorithm] = [KemAlgorithm.Kyber1024]) { + init(algorithms: [KemAlgorithm] = [.Kyber1024]) { self.algorithms = algorithms generateKeys() } @@ -53,13 +53,12 @@ struct KemHelper { // MARK: - Methods - func getPublicKey(algorithm: KemAlgorithm) -> String { - let index = getIndex(algorithm: algorithm) + let index = algorithms.firstIndex(of: algorithm) ?? 0 return publicKeys[index] } mutating func setCipher(algorithm: KemAlgorithm, cipher: String) { - let index = getIndex(algorithm: algorithm) - ciphers[index] = cipher + ciphers.append(cipher) } mutating func calculatePresharedKey() -> String? { @@ -123,8 +122,6 @@ struct KemHelper { OQS_KEM_free(kem) sharedSecret.deallocate() - cipher?.deallocate() - privateKey?.deallocate() return secretData.base64EncodedString() } @@ -138,16 +135,6 @@ struct KemHelper { return secrets } - private func getIndex(algorithm: KemAlgorithm) -> Int { - for (index, algo) in algorithms.enumerated() { - if algo == algorithm { - return index - } - } - - return -1 - } - private func hashSecrets(secrets: [String]) -> String? { var hasher = SHA256() for secret in secrets { From b3a47035f3711efe56bbc6efa3448af61e9f3d40 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 31 May 2023 16:23:36 +0200 Subject: [PATCH 17/63] feat(wireguard): update generatePeerProviderConfiguration method in Tunnel.swift --- IVPNClient/Enums/ApiResults/InterfaceResult.swift | 3 +-- IVPNClient/Models/WireGuard/Tunnel.swift | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/IVPNClient/Enums/ApiResults/InterfaceResult.swift b/IVPNClient/Enums/ApiResults/InterfaceResult.swift index 48fddfda8..de780d1b7 100644 --- a/IVPNClient/Enums/ApiResults/InterfaceResult.swift +++ b/IVPNClient/Enums/ApiResults/InterfaceResult.swift @@ -25,6 +25,5 @@ import Foundation struct InterfaceResult: Decodable { var ipAddress: String - let kemCipher1: String - let kemCipher2: String + let kemCipher1: String? } diff --git a/IVPNClient/Models/WireGuard/Tunnel.swift b/IVPNClient/Models/WireGuard/Tunnel.swift index 29f82b9d0..efc5768bd 100644 --- a/IVPNClient/Models/WireGuard/Tunnel.swift +++ b/IVPNClient/Models/WireGuard/Tunnel.swift @@ -91,8 +91,8 @@ struct Tunnel { settingsString += "public_key=\(hexPublicKey)\n" } - if let presharedKey = peer.presharedKey { - settingsString += "preshared_key=\(presharedKey)\n" + if let hexPresharedKey = peer.presharedKey?.base64KeyToHex() { + settingsString += "preshared_key=\(hexPresharedKey)\n" } if let endpoint = peer.endpoint { From 830e6fc81e0940a7f1c121db8e0cd65982e6162c Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 1 Jun 2023 10:57:40 +0200 Subject: [PATCH 18/63] feat(qr): update setNewKey method in AppKeyManager --- IVPNClient/Managers/AppKeyManager.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/IVPNClient/Managers/AppKeyManager.swift b/IVPNClient/Managers/AppKeyManager.swift index b65d8461d..9ca1de8c8 100644 --- a/IVPNClient/Managers/AppKeyManager.swift +++ b/IVPNClient/Managers/AppKeyManager.swift @@ -106,8 +106,12 @@ class AppKeyManager { KeyChain.wgPrivateKey = interface.privateKey KeyChain.wgPublicKey = interface.publicKey KeyChain.wgIpAddress = model.ipAddress - kemHelper.setCipher(algorithm: .Kyber1024, cipher: model.kemCipher1) - KeyChain.wgPresharedKey = kemHelper.calculatePresharedKey() + if let kemCipher1 = model.kemCipher1 { + kemHelper.setCipher(algorithm: .Kyber1024, cipher: kemCipher1) + KeyChain.wgPresharedKey = kemHelper.calculatePresharedKey() + } else { + KeyChain.wgPresharedKey = nil + } self.delegate?.setKeySuccess() case .failure: self.delegate?.setKeyFail() From 5113c3b1d565869a7109a434eb599bf5a77c7251 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Tue, 6 Jun 2023 13:50:07 +0200 Subject: [PATCH 19/63] feat(qr): update createSession method --- IVPNClient/Enums/ApiResults/Session.swift | 1 + IVPNClient/Managers/AppKeyManager.swift | 10 ++++------ IVPNClient/Managers/SessionManager.swift | 13 +++++++++++-- IVPNClient/Utilities/Kem/KemHelper.swift | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/IVPNClient/Enums/ApiResults/Session.swift b/IVPNClient/Enums/ApiResults/Session.swift index c24fea132..fc4c13025 100644 --- a/IVPNClient/Enums/ApiResults/Session.swift +++ b/IVPNClient/Enums/ApiResults/Session.swift @@ -27,6 +27,7 @@ struct WireGuardResult: Codable { let status: Int? let message: String? let ipAddress: String? + let kemCipher1: String? } struct Session: Decodable { diff --git a/IVPNClient/Managers/AppKeyManager.swift b/IVPNClient/Managers/AppKeyManager.swift index 9ca1de8c8..f653d5532 100644 --- a/IVPNClient/Managers/AppKeyManager.swift +++ b/IVPNClient/Managers/AppKeyManager.swift @@ -91,10 +91,8 @@ class AppKeyManager { URLQueryItem(name: "public_key", value: interface.publicKey ?? "") ] - var kemHelper = KemHelper() - params = params + [ - URLQueryItem(name: "kem_public_key1", value: kemHelper.getPublicKey(algorithm: .Kyber1024)) - ] + var kem = KEM() + params = params + [URLQueryItem(name: "kem_public_key1", value: kem.getPublicKey(algorithm: .Kyber1024))] let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionWGKeySet, params: params) delegate?.setKeyStart() @@ -107,8 +105,8 @@ class AppKeyManager { KeyChain.wgPublicKey = interface.publicKey KeyChain.wgIpAddress = model.ipAddress if let kemCipher1 = model.kemCipher1 { - kemHelper.setCipher(algorithm: .Kyber1024, cipher: kemCipher1) - KeyChain.wgPresharedKey = kemHelper.calculatePresharedKey() + kem.setCipher(algorithm: .Kyber1024, cipher: kemCipher1) + KeyChain.wgPresharedKey = kem.calculatePresharedKey() } else { KeyChain.wgPresharedKey = nil } diff --git a/IVPNClient/Managers/SessionManager.swift b/IVPNClient/Managers/SessionManager.swift index a7c0ec0ff..21083a1b3 100644 --- a/IVPNClient/Managers/SessionManager.swift +++ b/IVPNClient/Managers/SessionManager.swift @@ -65,7 +65,8 @@ class SessionManager { UserDefaults.shared.set(Date(), forKey: UserDefaults.Key.wgKeyTimestamp) } - let params = sessionNewParams(force: force, username: username, confirmation: confirmation, captcha: captcha, captchaId: captchaId) + var kem = KEM() + let params = sessionNewParams(force: force, username: username, confirmation: confirmation, captcha: captcha, captchaId: captchaId, kem: kem) let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionNew, params: params) ApiService.shared.requestCustomError(request) { (result: ResultCustomError) in @@ -74,6 +75,13 @@ class SessionManager { Application.shared.serviceStatus = model.serviceStatus Application.shared.authentication.logIn(session: model) + if let kemCipher1 = model.wireguard?.kemCipher1 { + kem.setCipher(algorithm: .Kyber1024, cipher: kemCipher1) + KeyChain.wgPresharedKey = kem.calculatePresharedKey() + } else { + KeyChain.wgPresharedKey = nil + } + if !model.serviceStatus.isActive { log(.info, message: "Create session error: createSessionServiceNotActive") self.delegate?.createSessionServiceNotActive() @@ -196,12 +204,13 @@ class SessionManager { // MARK: - Helper methods - - private func sessionNewParams(force: Bool = false, username: String? = nil, confirmation: String? = nil, captcha: String? = nil, captchaId: String? = nil) -> [URLQueryItem] { + private func sessionNewParams(force: Bool = false, username: String? = nil, confirmation: String? = nil, captcha: String? = nil, captchaId: String? = nil, kem: KEM) -> [URLQueryItem] { let username = username ?? Application.shared.authentication.getStoredUsername() var params = [URLQueryItem(name: "username", value: username)] if let wgPublicKey = KeyChain.wgPublicKey { params.append(URLQueryItem(name: "wg_public_key", value: wgPublicKey)) + params.append(URLQueryItem(name: "kem_public_key1", value: kem.getPublicKey(algorithm: .Kyber1024))) } if let confirmation = confirmation { diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 56dead88b..6e20a84f0 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -33,7 +33,7 @@ enum KemHelperError: Error { case generateKeysError } -struct KemHelper { +struct KEM { // MARK: - Properties - From 5bbfbd92bfcb73e3c20ea6cd7d5da323d7fa74f7 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 7 Jun 2023 09:02:28 +0200 Subject: [PATCH 20/63] feat(qr): link liboqs.a in wireguard-tunnel-provider --- IVPNClient.xcodeproj/project.pbxproj | 22 ++++++++++++++++--- IVPNClient/liboqs/include/oqs/oqsconfig.h | 6 ++--- ...ireGuardNetworkExtension-Bridging-Header.h | 1 + 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index fea1e898b..cf433f1d9 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -202,6 +202,8 @@ 82BBF26D21AE95C000589766 /* UIApplication+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF26C21AE95C000589766 /* UIApplication+Ext.swift */; }; 82BBF27121AECC8100589766 /* UILabel+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBF27021AECC8100589766 /* UILabel+Ext.swift */; }; 82BF32F624484E5100248E4F /* CreateAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BF32F524484E5100248E4F /* CreateAccountView.swift */; }; + 82BF79622A2F8DDC00061972 /* liboqs.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 82486FAC2A277058009B53F4 /* liboqs.a */; }; + 82BF79752A2F98C500061972 /* KemHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BBD9ED2A1F5FA100375252 /* KemHelper.swift */; }; 82C1D5BC23FE78570059A915 /* MapScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C1D5BB23FE78570059A915 /* MapScrollView.swift */; }; 82C1D5BF23FE8C6D0059A915 /* ControlPanelViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C1D5BE23FE8C6D0059A915 /* ControlPanelViewController.swift */; }; 82C293BF21CCD49A000B74EC /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C293BE21CCD49A000B74EC /* NavigationController.swift */; }; @@ -741,6 +743,7 @@ buildActionMask = 2147483647; files = ( 82B6052F21708575004B40E6 /* NetworkExtension.framework in Frameworks */, + 82BF79622A2F8DDC00061972 /* liboqs.a in Frameworks */, 824B86E126D42A5700D0101A /* WireGuardKit in Frameworks */, 829F5FCB29A13CF2009E1AD3 /* KeychainAccess in Frameworks */, ); @@ -2058,6 +2061,7 @@ 820EA86B232242F800E16B2D /* ApiRequestDI.swift in Sources */, 8270753722AFC7E70067C323 /* StringProtocol+Ext.swift in Sources */, 82B605262170840C004B40E6 /* PacketTunnelProvider.swift in Sources */, + 82BF79752A2F98C500061972 /* KemHelper.swift in Sources */, 82E7168E2181E8E900D6B7C2 /* WireGuardProtocol.swift in Sources */, 8292E19B21748B0500123538 /* UserDefaults+Ext.swift in Sources */, 82CA214329379CCD008BADE8 /* FileSystemManager.swift in Sources */, @@ -2522,10 +2526,14 @@ "$(PROJECT_DIR)/**", ); GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = "wireguard-tunnel-provider/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MARKETING_VERSION = 2.7.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -2558,10 +2566,14 @@ "$(PROJECT_DIR)/**", ); GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = "wireguard-tunnel-provider/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MARKETING_VERSION = 2.7.0; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -2833,10 +2845,14 @@ "$(PROJECT_DIR)/**", ); GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = "wireguard-tunnel-provider/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MARKETING_VERSION = 2.7.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; diff --git a/IVPNClient/liboqs/include/oqs/oqsconfig.h b/IVPNClient/liboqs/include/oqs/oqsconfig.h index 5a559b605..9e77129d9 100644 --- a/IVPNClient/liboqs/include/oqs/oqsconfig.h +++ b/IVPNClient/liboqs/include/oqs/oqsconfig.h @@ -18,9 +18,9 @@ /* #undef USE_SANITIZER */ /* #undef CMAKE_BUILD_TYPE */ -#define OQS_USE_OPENSSL 1 -#define OQS_USE_AES_OPENSSL 1 -#define OQS_USE_SHA2_OPENSSL 1 +/* #undef OQS_USE_OPENSSL */ +/* #undef OQS_USE_AES_OPENSSL */ +/* #undef OQS_USE_SHA2_OPENSSL */ /* #undef OQS_USE_SHA3_OPENSSL */ /* #undef OQS_USE_PTHREADS_IN_TESTS */ diff --git a/wireguard-tunnel-provider/WireGuard/WireGuardNetworkExtension-Bridging-Header.h b/wireguard-tunnel-provider/WireGuard/WireGuardNetworkExtension-Bridging-Header.h index e6051cec9..3440fd864 100644 --- a/wireguard-tunnel-provider/WireGuard/WireGuardNetworkExtension-Bridging-Header.h +++ b/wireguard-tunnel-provider/WireGuard/WireGuardNetworkExtension-Bridging-Header.h @@ -1,3 +1,4 @@ #include "../WireGuardKitC/WireGuardKitC.h" #include "../WireGuardKitGo/wireguard.h" #include "ringlogger.h" +#include "../../IVPNClient/liboqs/include/oqs/oqs.h" From 0aac80b68da003bdd78cea7a3e6d311cbfbb4e4a Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 7 Jun 2023 12:18:00 +0200 Subject: [PATCH 21/63] feat(qr): link liboqs.a at build time --- .gitignore | 4 ++++ .../xcschemes/IVPNClient.xcscheme | 20 +++++++++++++++++- IVPNClient/liboqs/liboqs.a | Bin 483496 -> 222392 bytes 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 636bce78f..ba050bd22 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,10 @@ build/ DerivedData/ +## Static libraries +IVPNClient/liboqs/liboqs-iphoneos.a +IVPNClient/liboqs/liboqs-iphonesimulator.a + ## Various settings *.pbxuser !default.pbxuser diff --git a/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme b/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme index 7744f91d0..f3f7fb563 100644 --- a/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme +++ b/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme @@ -1,10 +1,28 @@ + version = "1.7"> + + + + + + + + + + !4X< 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 From b2938783d7a7e0928a513aaf143acb1856201403 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 7 Jun 2023 13:34:20 +0200 Subject: [PATCH 22/63] feat(qr): update ExtensionKeyManager --- wireguard-tunnel-provider/ExtensionKeyManager.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/wireguard-tunnel-provider/ExtensionKeyManager.swift b/wireguard-tunnel-provider/ExtensionKeyManager.swift index 7607536bf..7f777a3a5 100644 --- a/wireguard-tunnel-provider/ExtensionKeyManager.swift +++ b/wireguard-tunnel-provider/ExtensionKeyManager.swift @@ -58,11 +58,12 @@ struct ExtensionKeyManager { var interface = Interface() interface.privateKey = Interface.generatePrivateKey() - let params = ApiManager.authParams + [ + var params = ApiManager.authParams + [ URLQueryItem(name: "connected_public_key", value: KeyChain.wgPublicKey ?? ""), URLQueryItem(name: "public_key", value: interface.publicKey ?? "") ] - + var kem = KEM() + params = params + [URLQueryItem(name: "kem_public_key1", value: kem.getPublicKey(algorithm: .Kyber1024))] let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionWGKeySet, params: params) ApiManager.shared.request(request) { (result: Result) in @@ -79,6 +80,12 @@ struct ExtensionKeyManager { UserDefaults.shared.set(Date(), forKey: UserDefaults.Key.wgKeyTimestamp) KeyChain.wgPrivateKey = interface.privateKey KeyChain.wgPublicKey = interface.publicKey + if let kemCipher1 = model.kemCipher1 { + kem.setCipher(algorithm: .Kyber1024, cipher: kemCipher1) + KeyChain.wgPresharedKey = kem.calculatePresharedKey() + } else { + KeyChain.wgPresharedKey = nil + } completion(interface.privateKey, ipAddress) case .failure: completion(nil, nil) From 468276150bc9f37a2500735b02b14baeb9b4267d Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 7 Jun 2023 13:53:21 +0200 Subject: [PATCH 23/63] tests: update HEADER_SEARCH_PATHS in UnitTest target --- IVPNClient.xcodeproj/project.pbxproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index cf433f1d9..be3e2d717 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -2470,6 +2470,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UnitTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; @@ -2495,6 +2496,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UnitTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; @@ -2597,6 +2599,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; @@ -2620,6 +2623,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; @@ -2642,6 +2646,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; @@ -2768,6 +2773,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; GCC_C_LANGUAGE_STANDARD = gnu11; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UnitTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; From 5ad19f49de259fcdac14f1016480863d344eb011 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 12 Jun 2023 10:22:21 +0200 Subject: [PATCH 24/63] feat(qr): add Info view --- IVPNClient/Scenes/Base.lproj/Main.storyboard | 135 +++++++++++++++++-- 1 file changed, 122 insertions(+), 13 deletions(-) diff --git a/IVPNClient/Scenes/Base.lproj/Main.storyboard b/IVPNClient/Scenes/Base.lproj/Main.storyboard index f58026eb4..d7b63673f 100644 --- a/IVPNClient/Scenes/Base.lproj/Main.storyboard +++ b/IVPNClient/Scenes/Base.lproj/Main.storyboard @@ -3,7 +3,7 @@ - + @@ -1739,14 +1739,14 @@ - + - + - + @@ -2068,9 +2068,49 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2101,7 +2141,7 @@ - + @@ -2137,7 +2177,7 @@ - + @@ -2374,7 +2414,7 @@ - + @@ -2773,13 +2813,13 @@ - - + @@ -4476,6 +4516,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4495,6 +4584,26 @@ + + + + + + + + + + + + + + + + + + + + From fd220bdf3b0427acdfb5a066e5c87a6bdf66a74a Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 12 Jun 2023 12:43:06 +0200 Subject: [PATCH 25/63] feat(qr): update ExtensionKeyManager --- wireguard-tunnel-provider/ExtensionKeyManager.swift | 9 +++++---- wireguard-tunnel-provider/PacketTunnelProvider.swift | 7 ++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/wireguard-tunnel-provider/ExtensionKeyManager.swift b/wireguard-tunnel-provider/ExtensionKeyManager.swift index 7f777a3a5..81ec7ae1c 100644 --- a/wireguard-tunnel-provider/ExtensionKeyManager.swift +++ b/wireguard-tunnel-provider/ExtensionKeyManager.swift @@ -49,9 +49,9 @@ struct ExtensionKeyManager { return TimeInterval(regenerationRate * 60 * 60 * 24) } - func upgradeKey(completion: @escaping (String?, String?) -> Void) { + func upgradeKey(completion: @escaping (String?, String?, String?) -> Void) { guard ExtensionKeyManager.needToRegenerate() else { - completion(nil, nil) + completion(nil, nil, nil) return } @@ -83,12 +83,13 @@ struct ExtensionKeyManager { if let kemCipher1 = model.kemCipher1 { kem.setCipher(algorithm: .Kyber1024, cipher: kemCipher1) KeyChain.wgPresharedKey = kem.calculatePresharedKey() + completion(interface.privateKey, ipAddress, KeyChain.wgPresharedKey) } else { KeyChain.wgPresharedKey = nil + completion(interface.privateKey, ipAddress, nil) } - completion(interface.privateKey, ipAddress) case .failure: - completion(nil, nil) + completion(nil, nil, nil) } } } diff --git a/wireguard-tunnel-provider/PacketTunnelProvider.swift b/wireguard-tunnel-provider/PacketTunnelProvider.swift index a06f41508..2852bef73 100644 --- a/wireguard-tunnel-provider/PacketTunnelProvider.swift +++ b/wireguard-tunnel-provider/PacketTunnelProvider.swift @@ -157,7 +157,7 @@ class PacketTunnelProvider: NEPacketTunnelProvider { private func regenerateKeys(completion: @escaping (Error?) -> Void) { wg_log(.info, message: "Rotating keys") - ExtensionKeyManager.shared.upgradeKey { privateKey, ipAddress in + ExtensionKeyManager.shared.upgradeKey { privateKey, ipAddress, presharedKey in guard let privateKey = privateKey, let ipAddress = ipAddress else { completion(nil) return @@ -179,6 +179,11 @@ class PacketTunnelProvider: NEPacketTunnelProvider { wg_log(.info, message: "Update config with new key") self.updateWgConfig(key: "private_key", value: privateKeyHex) + + if let hexPresharedKey = presharedKey?.base64KeyToHex() { + self.updateWgConfig(key: "preshared_key", value: hexPresharedKey) + } + completion(nil) } } From c5351475d7d59ed5ac7e527c61f5801bcb12eee5 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Mon, 12 Jun 2023 14:46:57 +0200 Subject: [PATCH 26/63] vendor: upgrade liboqs to version 0.8.0 --- IVPNClient/liboqs/liboqs.a | Bin 222392 -> 222384 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/IVPNClient/liboqs/liboqs.a b/IVPNClient/liboqs/liboqs.a index a5262206f86dbe3e1720540ce4f2bb8a64039390..9c688416286e3c6355e11dec2af653b4cdd03079 100644 GIT binary patch delta 353 zcmdmSl6M0T{a|K%G5II6J7dCRM;3P=yAwzzOuop{uW8}T%upxCzyP9e0qGfD%nV776>qr&u?%FN-62Gb2ynB64>SRra1 z7$Nivpc%|SrpNS&D$M4R0c;TA3lNGy185dVddBpJAn6y}K$So)$U+GqHsE1k0J@fe zVY{I!vkmL?LM>+F?JKmHBUqFappMf6TExe~!0-%+K|mbJ|IadANuN0n=)8&g%<_UT TcfAKH;R8A%VEaLR=ICLVp07!3<;uOrNO2Y%UqW1`)mhp%@G}A<_$`KLkmC;AUX(07`)@lmKE29tH-G zYdN+XsxsTKvgj5i8&1#FVm97BM~gXzMM(qdLOq~ud@KwMuYec?#G!m<*6C9E%y~dJ acIq?B3&I@t9;k#5=#q%-JN22rn*ab6^+fLg From b9395a3c80abff99551d8c20ed28b638d80100e3 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Tue, 13 Jun 2023 12:27:18 +0200 Subject: [PATCH 27/63] fix: update makeWireGuardProtocol method --- .../Utilities/Extensions/NETunnelProviderProtocol+Ext.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift b/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift index 6b98a061e..47ec4fdf7 100644 --- a/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift +++ b/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift @@ -121,7 +121,7 @@ extension NETunnelProviderProtocol { if UserDefaults.shared.isMultiHop, Application.shared.serviceStatus.isEnabled(capability: .multihop), let exitHost = getExitHost() { publicKey = exitHost.publicKey - endpoint = Peer.endpoint(host: host.host, port: port) + endpoint = Peer.endpoint(host: host.host, port: exitHost.multihopPort) } if let ipv6 = host.ipv6, UserDefaults.shared.isIPv6 { From 447e4dee2b7ad0a7f7447e2443c1271de00e8fc0 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Tue, 13 Jun 2023 19:48:18 +0200 Subject: [PATCH 28/63] refactor: update generateKeys method --- IVPNClient/Utilities/Kem/KemHelper.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/IVPNClient/Utilities/Kem/KemHelper.swift b/IVPNClient/Utilities/Kem/KemHelper.swift index 6e20a84f0..34bc8ab62 100644 --- a/IVPNClient/Utilities/Kem/KemHelper.swift +++ b/IVPNClient/Utilities/Kem/KemHelper.swift @@ -77,7 +77,7 @@ struct KEM { } private func generateKeys(algorithm: KemAlgorithm) -> (String, String) { - let kem = OQS_KEM_kyber_1024_new() + let kem = OQS_KEM_new(algorithm.rawValue) let publicKeyLength = OQS_KEM_kyber_1024_length_public_key let secretKeyLength = OQS_KEM_kyber_1024_length_secret_key let publicKey = UnsafeMutablePointer.allocate(capacity: Int(publicKeyLength)) @@ -108,7 +108,7 @@ struct KEM { } private func decodeCipher(algorithm: KemAlgorithm, privateKeyBase64: String, cipherBase64: String) -> String { - let kem = OQS_KEM_kyber_1024_new() + let kem = OQS_KEM_new(algorithm.rawValue) let sharedSecretLength = OQS_KEM_kyber_1024_length_shared_secret let sharedSecret = UnsafeMutablePointer.allocate(capacity: Int(sharedSecretLength)) let cipherData = Data(base64Encoded: cipherBase64) From a677a4fd300e90b41026db586f342f1eec53aba1 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 14 Jun 2023 16:40:53 +0200 Subject: [PATCH 29/63] feat(qr): update WireGuardSettingsViewController --- IVPNClient/Scenes/Base.lproj/Main.storyboard | 21 ++++++++++--------- .../WireGuardSettingsViewController.swift | 2 ++ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/IVPNClient/Scenes/Base.lproj/Main.storyboard b/IVPNClient/Scenes/Base.lproj/Main.storyboard index d7b63673f..37c5fb016 100644 --- a/IVPNClient/Scenes/Base.lproj/Main.storyboard +++ b/IVPNClient/Scenes/Base.lproj/Main.storyboard @@ -21,7 +21,7 @@ - + - + @@ -2220,6 +2220,7 @@ + @@ -2493,13 +2494,13 @@ - + + + + + + + + + + + + + + + + + + + + + + + + - Hardcore mode blocks the leading companies with business models relying on user surveillance (currently: Google and Facebook). Learn more + Hardcore Mode blocks the leading companies with business models relying on user surveillance (currently: Google and Facebook). Learn more - + - - + @@ -3970,6 +3970,7 @@ + @@ -3980,17 +3981,17 @@ - - + + - - + + - + diff --git a/IVPNClient/Scenes/ViewControllers/AntiTrackerListViewController.swift b/IVPNClient/Scenes/ViewControllers/AntiTrackerListViewController.swift new file mode 100644 index 000000000..1f3bb8b4b --- /dev/null +++ b/IVPNClient/Scenes/ViewControllers/AntiTrackerListViewController.swift @@ -0,0 +1,115 @@ +// +// AntiTrackerListViewController.swift +// IVPN iOS app +// https://github.com/ivpn/ios-app +// +// Created by Juraj Hilje on 2023-07-06. +// Copyright (c) 2023 Privatus Limited. +// +// This file is part of the IVPN iOS app. +// +// The IVPN iOS app is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License as published by the Free +// Software Foundation, either version 3 of the License, or (at your option) any later version. +// +// The IVPN iOS app is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License +// along with the IVPN iOS app. If not, see . +// + +import UIKit + +class AntiTrackerListViewController: UITableViewController { + + private var collection = [ + Application.shared.serverList.antiTrackerBasicList, + Application.shared.serverList.antiTrackerIndividualList + ] + + private var selectedDns = AntiTrackerDns.load() + + // MARK: - View Lifecycle - + + override func viewDidLoad() { + super.viewDidLoad() + setupView() + } + + // MARK: - Private methods - + + private func setupView() { + tableView.backgroundColor = UIColor.init(named: Theme.ivpnBackgroundQuaternary) + tableView.contentInset = UIEdgeInsets(top: 16, left: 0, bottom: 0, right: 0) + } + +} + +// MARK: - UITableViewDatasource - + +extension AntiTrackerListViewController { + + override func numberOfSections(in tableView: UITableView) -> Int { + return collection.count + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return collection[section].count + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: "AntiTrackerListCell", for: indexPath) + let dns = collection[indexPath.section][indexPath.row] + cell.textLabel?.text = dns.description + cell.accessoryType = .none + + if let selectedDns = selectedDns, dns == selectedDns { + cell.accessoryType = .checkmark + } + + return cell + } + + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + switch section { + case 1: + return "Individual lists" + default: + return "Pre-defined lists" + } + } + +} + +// MARK: - UITableViewDelegate - + +extension AntiTrackerListViewController { + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let dns = collection[indexPath.section][indexPath.row] + selectedDns = dns + selectedDns?.save() + tableView.reloadData() + navigationController?.popViewController(animated: true) + } + + override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { + if let header = view as? UITableViewHeaderFooterView { + header.textLabel?.textColor = UIColor.init(named: Theme.ivpnLabel6) + } + } + + override func tableView(_ tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) { + if let footer = view as? UITableViewHeaderFooterView { + footer.textLabel?.textColor = UIColor.init(named: Theme.ivpnLabel6) + } + } + + override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + cell.backgroundColor = UIColor.init(named: Theme.ivpnBackgroundPrimary) + } + +} diff --git a/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift b/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift index 59b8a9f4b..c48e27ed4 100644 --- a/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift +++ b/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift @@ -29,6 +29,7 @@ class AntiTrackerViewController: UITableViewController { @IBOutlet weak var antiTrackerSwitch: UISwitch! @IBOutlet weak var antiTrackerHardcoreSwitch: UISwitch! + @IBOutlet weak var antiTrackerList: UILabel! // MARK: - @IBActions - @@ -65,6 +66,11 @@ class AntiTrackerViewController: UITableViewController { addObservers() } + override func viewWillAppear(_ animated: Bool) { + tableView.deselectRow(at: IndexPath(row: 1, section: 0), animated: true) + setupView() + } + // MARK: - Private methods - private func addObservers() { @@ -76,6 +82,7 @@ class AntiTrackerViewController: UITableViewController { antiTrackerSwitch.setOn(UserDefaults.shared.isAntiTracker, animated: false) antiTrackerHardcoreSwitch.setOn(UserDefaults.shared.isAntiTrackerHardcore, animated: false) antiTrackerHardcoreSwitch.isEnabled = UserDefaults.shared.isAntiTracker + antiTrackerList.text = AntiTrackerDns.load()?.description } } From fa41f9aae4aea3986a9d9921a11a4d1de75b9476 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 15:54:23 +0200 Subject: [PATCH 37/63] feat(antitracker): update UserDefaults+Ext.swift --- IVPNClient/Scenes/Base.lproj/Main.storyboard | 6 +++--- IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/IVPNClient/Scenes/Base.lproj/Main.storyboard b/IVPNClient/Scenes/Base.lproj/Main.storyboard index ac4b3afd9..39b81b0a5 100644 --- a/IVPNClient/Scenes/Base.lproj/Main.storyboard +++ b/IVPNClient/Scenes/Base.lproj/Main.storyboard @@ -3846,7 +3846,7 @@ - AntiTracker uses our private DNS to block ads, malicious website and third-party trackers such as Google Analytics. Supported only for OpenVPN and WireGuard protocols. Learn more + Block lists refer to DNS blocking lists used by our AntiTracker. The 'Basic', 'Comprehensive', and 'Restrictive' options are combinations of individual lists, each offering a different level of protection. You also have the freedom to select from individual lists for a more tailored AntiTracker experience. Learn more @@ -3924,10 +3924,10 @@ - Hardcore Mode blocks the leading companies with business models relying on user surveillance (currently: Google and Facebook). Learn more + Hardcode mode blocks the leading companies with business models relying on user surveillance (currently: Google and Facebook). Learn more - + diff --git a/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift b/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift index 175959756..069992493 100644 --- a/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift +++ b/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift @@ -279,6 +279,7 @@ extension UserDefaults { standard.removeObject(forKey: Key.wgMtu) standard.removeObject(forKey: Key.preventSameCountryMultiHop) standard.removeObject(forKey: Key.preventSameISPMultiHop) + standard.removeObject(forKey: Key.antiTrackerDns) standard.synchronize() } From 00b6a750cea274e2f12e77059e5103f7461dab49 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 16:14:58 +0200 Subject: [PATCH 38/63] feat(antitracker): update VPNServerList.swift --- IVPNClient.xcodeproj/project.pbxproj | 6 ++++++ IVPNClient/Models/AntiTrackerDns.swift | 2 +- IVPNClient/Models/VPNServerList.swift | 17 ++++------------- .../Utilities/Extensions/UserDefaults+Ext.swift | 4 ++-- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 411a23b92..e7898aadb 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -165,6 +165,9 @@ 829DF27E2497949A000DC2DB /* SelectPlanView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 829DF27C2497949A000DC2DB /* SelectPlanView.swift */; }; 829DF2822497953C000DC2DB /* UIButton+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 829DF2812497953C000DC2DB /* UIButton+Ext.swift */; }; 829F5EAF2A56E067005919AF /* AntiTrackerListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 829F5EAE2A56E067005919AF /* AntiTrackerListViewController.swift */; }; + 829F5EB02A570322005919AF /* AntiTrackerDns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825ECB2B2A5582570032E986 /* AntiTrackerDns.swift */; }; + 829F5EB12A570323005919AF /* AntiTrackerDns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825ECB2B2A5582570032E986 /* AntiTrackerDns.swift */; }; + 829F5EB22A570323005919AF /* AntiTrackerDns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825ECB2B2A5582570032E986 /* AntiTrackerDns.swift */; }; 829F5FC729A13CAE009E1AD3 /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 829F5FC629A13CAE009E1AD3 /* KeychainAccess */; }; 829F5FC929A13CEA009E1AD3 /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 829F5FC829A13CEA009E1AD3 /* KeychainAccess */; }; 829F5FCB29A13CF2009E1AD3 /* KeychainAccess in Frameworks */ = {isa = PBXBuildFile; productRef = 829F5FCA29A13CF2009E1AD3 /* KeychainAccess */; }; @@ -2104,6 +2107,7 @@ 82EEB6CD25F9422900915837 /* DNSProtocolType.swift in Sources */, 820EA86C2322430700E16B2D /* Result.swift in Sources */, 823FFB092338E09A00F91A5D /* Capability.swift in Sources */, + 829F5EB12A570323005919AF /* AntiTrackerDns.swift in Sources */, 82DC75BD22B7647500D3C73C /* APIClient.swift in Sources */, 825E836425A4834200938240 /* APIPublicKeyPin.swift in Sources */, 823BD9E4231D4C8F002E631D /* ErrorResult.swift in Sources */, @@ -2155,6 +2159,7 @@ 82C61DA929E6C53C00AF972A /* Array+Ext.swift in Sources */, 82A38A1029E2D46000C88372 /* StatusViewModel.swift in Sources */, 8206BAFC29ED6C9600F916B7 /* Notification.swift in Sources */, + 829F5EB22A570323005919AF /* AntiTrackerDns.swift in Sources */, 82A38A1B29E3201F00C88372 /* UserDefaults.swift in Sources */, 82C61D9929E6B4C600AF972A /* LocationView.swift in Sources */, 82E3B21E29DDD32B00998F67 /* MainView.swift in Sources */, @@ -2179,6 +2184,7 @@ 82E716932181E90500D6B7C2 /* ConnectionSettings.swift in Sources */, 82ED17592A1262F800E7926D /* Data+Ext.swift in Sources */, 823FFB082338E09900F91A5D /* Capability.swift in Sources */, + 829F5EB02A570322005919AF /* AntiTrackerDns.swift in Sources */, 82ED17482A125C9100E7926D /* TimerManager.swift in Sources */, 826F7F4323A7AAD200777DB9 /* Array+Ext.swift in Sources */, 82ED17542A1261A000E7926D /* x25519.c in Sources */, diff --git a/IVPNClient/Models/AntiTrackerDns.swift b/IVPNClient/Models/AntiTrackerDns.swift index 9397a5b5f..2d7ae91b7 100644 --- a/IVPNClient/Models/AntiTrackerDns.swift +++ b/IVPNClient/Models/AntiTrackerDns.swift @@ -43,7 +43,7 @@ struct AntiTrackerDns: Codable { } } - return Application.shared.serverList.antiTrackerList.first + return nil } static func == (lhs: AntiTrackerDns, rhs: AntiTrackerDns) -> Bool { diff --git a/IVPNClient/Models/VPNServerList.swift b/IVPNClient/Models/VPNServerList.swift index ffc5640db..e0c412d7a 100644 --- a/IVPNClient/Models/VPNServerList.swift +++ b/IVPNClient/Models/VPNServerList.swift @@ -131,19 +131,6 @@ class VPNServerList { } if let config = config { - if let antitracker = config["antitracker"] as? [String: Any] { - if let defaultObj = antitracker["default"] as? [String: Any] { - if let ipAddress = defaultObj["ip"] as? String { - UserDefaults.shared.set(ipAddress, forKey: UserDefaults.Key.antiTrackerDNS) - } - } - if let hardcore = antitracker["hardcore"] as? [String: Any] { - if let ipAddress = hardcore["ip"] as? String { - UserDefaults.shared.set(ipAddress, forKey: UserDefaults.Key.antiTrackerHardcoreDNS) - } - } - } - if let antiTrackerPlus = config["antitracker_plus"] as? [String: Any] { if let jsonList = antiTrackerPlus["DnsServers"] as? [[String: Any]] { var list = [AntiTrackerDns]() @@ -156,6 +143,10 @@ class VPNServerList { )) } antiTrackerList = list + + if AntiTrackerDns.load() == nil { + antiTrackerList.first?.save() + } } } diff --git a/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift b/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift index 069992493..9ce4cc1e5 100644 --- a/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift +++ b/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift @@ -144,11 +144,11 @@ extension UserDefaults { } @objc dynamic var antiTrackerDNS: String { - return string(forKey: Key.antiTrackerDNS) ?? "" + return AntiTrackerDns.load()?.normal ?? "" } @objc dynamic var antiTrackerHardcoreDNS: String { - return string(forKey: Key.antiTrackerHardcoreDNS) ?? "" + return AntiTrackerDns.load()?.hardcore ?? "" } @objc dynamic var wgKeyTimestamp: Date { From 921326b289dcab1985367ab21886e5496ca21fcb Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 16:48:49 +0200 Subject: [PATCH 39/63] feat(antitracker): update AntiTrackerViewController.swift --- .../Scenes/ViewControllers/AntiTrackerViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift b/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift index c48e27ed4..44f567b44 100644 --- a/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift +++ b/IVPNClient/Scenes/ViewControllers/AntiTrackerViewController.swift @@ -95,7 +95,7 @@ extension AntiTrackerViewController { let footer = view as! UITableViewHeaderFooterView footer.textLabel?.textColor = UIColor.init(named: Theme.ivpnLabel6) - let urlString = section > 0 ? "https://www.ivpn.net/antitracker/hardcore" : "https://www.ivpn.net/antitracker" + let urlString = section > 0 ? "https://www.ivpn.net/knowledgebase/general/antitracker-faq/" : "https://www.ivpn.net/knowledgebase/antitracker/blocklists/" let label = ActiveLabel(frame: .zero) let customType = ActiveType.custom(pattern: "Learn more") From b2b646172e43cfb9e90fdcb7e305fe7664670ee7 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 16:59:55 +0200 Subject: [PATCH 40/63] refactor: fix shorthand_operator warning in AppKeyManager.swift --- IVPNClient/Managers/AppKeyManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IVPNClient/Managers/AppKeyManager.swift b/IVPNClient/Managers/AppKeyManager.swift index 26402f1ff..4a804693d 100644 --- a/IVPNClient/Managers/AppKeyManager.swift +++ b/IVPNClient/Managers/AppKeyManager.swift @@ -111,7 +111,7 @@ class AppKeyManager { ] var kem = KEM() - params = params + [URLQueryItem(name: "kem_public_key1", value: kem.getPublicKey(algorithm: .Kyber1024))] + params += [URLQueryItem(name: "kem_public_key1", value: kem.getPublicKey(algorithm: .Kyber1024))] let request = ApiRequestDI(method: .post, endpoint: Config.apiSessionWGKeySet, params: params) delegate?.setKeyStart() From fb1377901a4364b00b7e1b8969a6fad716ff8cfc Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 17:09:43 +0200 Subject: [PATCH 41/63] tests: update AppKeyManagerTests.swift --- IVPNClient.xcodeproj/project.pbxproj | 4 -- UnitTests/WireGuard/AppKeyManagerTests.swift | 7 ++++ .../WireGuard/ExtensionKeyManagerTests.swift | 37 ------------------- 3 files changed, 7 insertions(+), 41 deletions(-) delete mode 100644 UnitTests/WireGuard/ExtensionKeyManagerTests.swift diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index faffe8b45..a3a6b5ca0 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -288,7 +288,6 @@ 82E7169A2181E96F00D6B7C2 /* OpenVPNProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E716952181E96F00D6B7C2 /* OpenVPNProtocol.swift */; }; 82E7880C22B0DA0D00A98D76 /* NETunnelProviderProtocol+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E7880B22B0DA0D00A98D76 /* NETunnelProviderProtocol+Ext.swift */; }; 82E81AE72449C44F00D81FB7 /* PaymentComponentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E81AE62449C44F00D81FB7 /* PaymentComponentView.swift */; }; - 82E96A4B224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82E96A4A224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift */; }; 82EA857A21DCF0C300EB0EC9 /* StorageManager+OnDemandRuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82EA857921DCF0C300EB0EC9 /* StorageManager+OnDemandRuleTests.swift */; }; 82EC883529A12BD30024CC40 /* JGProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 82EC883429A12BD30024CC40 /* JGProgressHUD */; }; 82EC883829A12C1F0024CC40 /* Reachability in Frameworks */ = {isa = PBXBuildFile; productRef = 82EC883729A12C1F0024CC40 /* Reachability */; }; @@ -673,7 +672,6 @@ 82E716952181E96F00D6B7C2 /* OpenVPNProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenVPNProtocol.swift; sourceTree = ""; }; 82E7880B22B0DA0D00A98D76 /* NETunnelProviderProtocol+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NETunnelProviderProtocol+Ext.swift"; sourceTree = ""; }; 82E81AE62449C44F00D81FB7 /* PaymentComponentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentComponentView.swift; sourceTree = ""; }; - 82E96A4A224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtensionKeyManagerTests.swift; sourceTree = ""; }; 82EA857921DCF0C300EB0EC9 /* StorageManager+OnDemandRuleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "StorageManager+OnDemandRuleTests.swift"; sourceTree = ""; }; 82ED17452A1259CB00E7926D /* OpenVPNNetworkExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OpenVPNNetworkExtension-Bridging-Header.h"; sourceTree = ""; }; 82ED17512A1261A000E7926D /* x25519.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = x25519.c; sourceTree = ""; }; @@ -1557,7 +1555,6 @@ 82F81A47224CFADB00CB778B /* PeerTests.swift */, 82F81A48224CFADB00CB778B /* TunnelTests.swift */, 821BDE01224A6EC700F592BF /* AppKeyManagerTests.swift */, - 82E96A4A224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift */, ); path = WireGuard; sourceTree = ""; @@ -2042,7 +2039,6 @@ 82A3422B24AB7F8600761AB0 /* VPNServerViewModelTests.swift in Sources */, 82F81A41224CF69900CB778B /* ArrayTests.swift in Sources */, 82F81A4A224CFADB00CB778B /* InterfaceTests.swift in Sources */, - 82E96A4B224BA1B3004FC1D6 /* ExtensionKeyManagerTests.swift in Sources */, 82555005220ACAAF004763A7 /* VPNServersTests.swift in Sources */, 82F81A40224CF69900CB778B /* StringTests.swift in Sources */, 82A3422324AB660C00761AB0 /* ApplicationTests.swift in Sources */, diff --git a/UnitTests/WireGuard/AppKeyManagerTests.swift b/UnitTests/WireGuard/AppKeyManagerTests.swift index 4f131aaa8..d85179a92 100644 --- a/UnitTests/WireGuard/AppKeyManagerTests.swift +++ b/UnitTests/WireGuard/AppKeyManagerTests.swift @@ -63,4 +63,11 @@ class AppKeyManagerTests: XCTestCase { XCTAssertTrue(KeyChain.wgPublicKey != nil) } + func test_regenerationInterval() { + UserDefaults.shared.set(Config.wgKeyRegenerationRate, forKey: UserDefaults.Key.wgRegenerationRate) + let regenerationCheckInterval = AppKeyManager.regenerationCheckInterval + let regenerationInterval = AppKeyManager.regenerationInterval + XCTAssertTrue(regenerationInterval > regenerationCheckInterval) + } + } diff --git a/UnitTests/WireGuard/ExtensionKeyManagerTests.swift b/UnitTests/WireGuard/ExtensionKeyManagerTests.swift deleted file mode 100644 index f391cd50f..000000000 --- a/UnitTests/WireGuard/ExtensionKeyManagerTests.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// ExtensionKeyManagerTests.swift -// IVPN iOS app -// https://github.com/ivpn/ios-app -// -// Created by Juraj Hilje on 2019-03-27. -// Copyright (c) 2020 Privatus Limited. -// -// This file is part of the IVPN iOS app. -// -// The IVPN iOS app is free software: you can redistribute it and/or -// modify it under the terms of the GNU General Public License as published by the Free -// Software Foundation, either version 3 of the License, or (at your option) any later version. -// -// The IVPN iOS app is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License -// along with the IVPN iOS app. If not, see . -// - -import XCTest - -@testable import IVPNClient - -class ExtensionKeyManagerTests: XCTestCase { - - func test_regenerationInterval() { - UserDefaults.shared.set(Config.wgKeyRegenerationRate, forKey: UserDefaults.Key.wgRegenerationRate) - let regenerationCheckInterval = ExtensionKeyManager.regenerationCheckInterval - let regenerationInterval = ExtensionKeyManager.regenerationInterval - XCTAssertTrue(regenerationInterval > regenerationCheckInterval) - } - -} From 99f200a083c9d6832c7f7b6717cc8d067fe11e42 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 17:26:49 +0200 Subject: [PATCH 42/63] chore: update project.pbxproj --- IVPNClient.xcodeproj/project.pbxproj | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index a3a6b5ca0..574c78fe1 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -2501,11 +2501,16 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)"; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UnitTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = net.ivpn.clients.ios.UnitTests; @@ -2527,11 +2532,16 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)"; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UnitTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = net.ivpn.clients.ios.UnitTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2630,11 +2640,16 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)"; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = net.ivpn.clients.ios.UITests; @@ -2654,11 +2669,16 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)"; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = net.ivpn.clients.ios.UITests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2677,11 +2697,16 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)"; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UITests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = net.ivpn.clients.ios.UITests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2804,11 +2829,16 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = WQXXM75BYN; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)"; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/IVPNClient/liboqs/include\""; INFOPLIST_FILE = UnitTests/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/IVPNClient/liboqs", + ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = net.ivpn.clients.ios.UnitTests; From f78ed9b477dcb77913f9f9f1d7214d632ba61993 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Thu, 6 Jul 2023 17:36:07 +0200 Subject: [PATCH 43/63] chore: update IVPNClient.xcscheme --- IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme b/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme index f3f7fb563..b86e17588 100644 --- a/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme +++ b/IVPNClient.xcodeproj/xcshareddata/xcschemes/IVPNClient.xcscheme @@ -10,7 +10,7 @@ ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction"> + scriptText = "if [ "${PLATFORM_NAME}" == "iphoneos" ]; then LIBOQS_LIB="liboqs-iphoneos.a" else LIBOQS_LIB="liboqs-iphonesimulator.a" fi if test -f "${SRCROOT}/IVPNClient/liboqs/${LIBOQS_LIB}"; then cp "${SRCROOT}/IVPNClient/liboqs/${LIBOQS_LIB}" "${SRCROOT}/IVPNClient/liboqs/liboqs.a" fi "> Date: Fri, 7 Jul 2023 10:28:28 +0200 Subject: [PATCH 44/63] ci: update workflows/ci.yml --- .github/workflows/ci.yml | 52 +++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c055943fa..eb477d32b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,28 +1,30 @@ name: CI -on: - push: - branches: [ "main", "develop" ] - pull_request: +# This action is disabled until we can run it on Apple Silicon powered macOS runners - https://github.com/github/roadmap/issues/528 -jobs: - test: - name: Unit and UI Tests - runs-on: macOS-latest - steps: - - uses: actions/setup-go@v2 - with: - go-version: 1.16 - - uses: actions/checkout@v2 - - name: Set up config files - run: | - cp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig - cp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig - cp wireguard-tunnel-provider/Config/wg-staging.template.xcconfig wireguard-tunnel-provider/Config/wg-staging.xcconfig - cp wireguard-tunnel-provider/Config/wg-release.template.xcconfig wireguard-tunnel-provider/Config/wg-release.xcconfig - cp IVPNWidget/Config/widget-staging.template.xcconfig IVPNWidget/Config/widget-staging.xcconfig - cp IVPNWidget/Config/widget-release.template.xcconfig IVPNWidget/Config/widget-release.xcconfig - cp IVPNClient/Config/OpenVPNConf.template.swift IVPNClient/Config/OpenVPNConf.swift - cp fastlane/Appfile.template fastlane/Appfile - - name: Build and test - run: xcodebuild test -scheme IVPNClient -destination 'platform=iOS Simulator,name=iPhone 14' +# on: +# push: +# branches: [ "main", "develop" ] +# pull_request: + +# jobs: +# test: +# name: Unit and UI Tests +# runs-on: macOS-latest +# steps: +# - uses: actions/setup-go@v2 +# with: +# go-version: 1.16 +# - uses: actions/checkout@v2 +# - name: Set up config files +# run: | +# cp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig +# cp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig +# cp wireguard-tunnel-provider/Config/wg-staging.template.xcconfig wireguard-tunnel-provider/Config/wg-staging.xcconfig +# cp wireguard-tunnel-provider/Config/wg-release.template.xcconfig wireguard-tunnel-provider/Config/wg-release.xcconfig +# cp IVPNWidget/Config/widget-staging.template.xcconfig IVPNWidget/Config/widget-staging.xcconfig +# cp IVPNWidget/Config/widget-release.template.xcconfig IVPNWidget/Config/widget-release.xcconfig +# cp IVPNClient/Config/OpenVPNConf.template.swift IVPNClient/Config/OpenVPNConf.swift +# cp fastlane/Appfile.template fastlane/Appfile +# - name: Build and test +# run: xcodebuild test -scheme IVPNClient -destination 'platform=iOS Simulator,name=iPhone 14' From a0b7b2526989aef45fb54955eaa70e032a2a15d0 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Fri, 7 Jul 2023 11:20:34 +0200 Subject: [PATCH 45/63] refactor: add basicList in AntiTrackerDns.swift --- IVPNClient/Models/AntiTrackerDns.swift | 2 ++ IVPNClient/Models/VPNServerList.swift | 6 ++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/IVPNClient/Models/AntiTrackerDns.swift b/IVPNClient/Models/AntiTrackerDns.swift index 2d7ae91b7..1f48a2c18 100644 --- a/IVPNClient/Models/AntiTrackerDns.swift +++ b/IVPNClient/Models/AntiTrackerDns.swift @@ -30,6 +30,8 @@ struct AntiTrackerDns: Codable { let normal: String let hardcore: String + static let basicList = ["Basic", "Comprehensive", "Restrictive"] + func save() { if let encoded = try? JSONEncoder().encode(self) { UserDefaults.standard.set(encoded, forKey: UserDefaults.Key.antiTrackerDns) diff --git a/IVPNClient/Models/VPNServerList.swift b/IVPNClient/Models/VPNServerList.swift index e0c412d7a..216ed343d 100644 --- a/IVPNClient/Models/VPNServerList.swift +++ b/IVPNClient/Models/VPNServerList.swift @@ -35,8 +35,6 @@ class VPNServerList { open private(set) var portRanges: [PortRange] open private(set) var antiTrackerList: [AntiTrackerDns] - private let antiTrackerBasicListNames = ["Basic", "Comprehensive", "Restrictive"] - var filteredFastestServers: [VPNServer] { if UserDefaults.standard.bool(forKey: UserDefaults.Key.fastestServerConfigured) { return getServers().filter { StorageManager.isFastestEnabled(server: $0) } @@ -51,11 +49,11 @@ class VPNServerList { } var antiTrackerBasicList: [AntiTrackerDns] { - return antiTrackerList.filter { antiTrackerBasicListNames.contains($0.name) } + return antiTrackerList.filter { AntiTrackerDns.basicList.contains($0.name) } } var antiTrackerIndividualList: [AntiTrackerDns] { - return antiTrackerList.filter { !antiTrackerBasicListNames.contains($0.name) } + return antiTrackerList.filter { !AntiTrackerDns.basicList.contains($0.name) } } // MARK: - Initialize - From 7ae476bdea9a21d6f2e8bab3206663b6f3ca9c3f Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 09:18:47 +0200 Subject: [PATCH 46/63] feat(antitracker): fix typo in AntiTracker UI --- IVPNClient/Scenes/Base.lproj/Main.storyboard | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/IVPNClient/Scenes/Base.lproj/Main.storyboard b/IVPNClient/Scenes/Base.lproj/Main.storyboard index 39b81b0a5..9490b0784 100644 --- a/IVPNClient/Scenes/Base.lproj/Main.storyboard +++ b/IVPNClient/Scenes/Base.lproj/Main.storyboard @@ -1739,14 +1739,14 @@ - + - + - + @@ -2814,13 +2814,13 @@ - - Hardcode mode blocks the leading companies with business models relying on user surveillance (currently: Google and Facebook). Learn more + Hardcore mode blocks the leading companies with business models relying on user surveillance (currently: Google and Facebook). Learn more From 823acc216253239f5664326418cc2313dac46d5e Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 11:55:28 +0200 Subject: [PATCH 47/63] feat(openvpn): update openvpn-tunnel-provider/Info.plist --- IVPNClient.xcodeproj/project.pbxproj | 15 +++++++++------ openvpn-tunnel-provider/Info.plist | 4 ++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index d46440366..6fc052484 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -2479,7 +2479,7 @@ }; 82B6052D2170840C004B40E6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82A9E8C723471FB2007BCA7E /* wg-release.xcconfig */; + baseConfigurationReference = 82A9E8C323471EBE007BCA7E /* release.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -2515,7 +2515,7 @@ }; 82B6052E2170840C004B40E6 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82A9E8C723471FB2007BCA7E /* wg-release.xcconfig */; + baseConfigurationReference = 82A9E8C323471EBE007BCA7E /* release.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -2740,6 +2740,7 @@ }; 82D2D80022CA404C004BCC52 /* Staging */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 82A9E8C423471EBE007BCA7E /* staging.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -2786,7 +2787,7 @@ }; 82D2D80122CA404C004BCC52 /* Staging */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82A9E8C823471FB2007BCA7E /* wg-staging.xcconfig */; + baseConfigurationReference = 82A9E8C423471EBE007BCA7E /* staging.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -2822,7 +2823,7 @@ }; 82E3B21929DDCC6500998F67 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82C61DB829E6CA7600AF972A /* widget-release.xcconfig */; + baseConfigurationReference = 82A9E8C323471EBE007BCA7E /* release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -2857,7 +2858,7 @@ }; 82E3B21A29DDCC6500998F67 /* Staging */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82C61DB629E6CA7600AF972A /* widget-staging.xcconfig */; + baseConfigurationReference = 82A9E8C423471EBE007BCA7E /* staging.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -2891,7 +2892,7 @@ }; 82E3B21B29DDCC6500998F67 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82C61DB829E6CA7600AF972A /* widget-release.xcconfig */; + baseConfigurationReference = 82A9E8C323471EBE007BCA7E /* release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -2925,6 +2926,7 @@ }; 9C7840B220CD8A8A00335736 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 82A9E8C323471EBE007BCA7E /* release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; @@ -2971,6 +2973,7 @@ }; 9C7840B320CD8A8A00335736 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 82A9E8C323471EBE007BCA7E /* release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; diff --git a/openvpn-tunnel-provider/Info.plist b/openvpn-tunnel-provider/Info.plist index e47dc220c..ee42a5062 100644 --- a/openvpn-tunnel-provider/Info.plist +++ b/openvpn-tunnel-provider/Info.plist @@ -2,6 +2,8 @@ + ApiHostName + $(ApiHostName) CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -27,5 +29,7 @@ NSExtensionPrincipalClass $(PRODUCT_MODULE_NAME).PacketTunnelProvider + TlsHostName + $(TlsHostName) From 3b3dbe8294e7c56d64fb077fad8f4b29551efa6e Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 11:58:58 +0200 Subject: [PATCH 48/63] refactor: remove redundant .xcconfig files --- .gitignore | 4 --- IVPNClient.xcodeproj/project.pbxproj | 28 ------------------- .../Config/widget-release.template.xcconfig | 2 -- .../Config/widget-staging.template.xcconfig | 2 -- README.md | 4 --- .../today-extension-release.template.xcconfig | 2 -- .../today-extension-staging.template.xcconfig | 2 -- .../Config/wg-release.template.xcconfig | 2 -- .../Config/wg-staging.template.xcconfig | 2 -- 9 files changed, 48 deletions(-) delete mode 100644 IVPNWidget/Config/widget-release.template.xcconfig delete mode 100644 IVPNWidget/Config/widget-staging.template.xcconfig delete mode 100644 today-extension/Config/today-extension-release.template.xcconfig delete mode 100644 today-extension/Config/today-extension-staging.template.xcconfig delete mode 100644 wireguard-tunnel-provider/Config/wg-release.template.xcconfig delete mode 100644 wireguard-tunnel-provider/Config/wg-staging.template.xcconfig diff --git a/.gitignore b/.gitignore index 636bce78f..b617035db 100644 --- a/.gitignore +++ b/.gitignore @@ -58,10 +58,6 @@ Carthage/Build # Rules for .xcconfig files staging.xcconfig release.xcconfig -wg-staging.xcconfig -wg-release.xcconfig -widget-staging.xcconfig -widget-release.xcconfig # Rules for .swift files OpenVPNConf.swift diff --git a/IVPNClient.xcodeproj/project.pbxproj b/IVPNClient.xcodeproj/project.pbxproj index 6fc052484..d422ef218 100644 --- a/IVPNClient.xcodeproj/project.pbxproj +++ b/IVPNClient.xcodeproj/project.pbxproj @@ -224,8 +224,6 @@ 82C61DB029E6C5E700AF972A /* Date+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82D90470216C7DAF0032F3BE /* Date+Ext.swift */; }; 82C61DB229E6C6F600AF972A /* AddressType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82F638C1217DA89000410318 /* AddressType.swift */; }; 82C61DB429E6C72700AF972A /* LocationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C61DB329E6C72700AF972A /* LocationViewModel.swift */; }; - 82C61DBA29E6CA7600AF972A /* widget-staging.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 82C61DB629E6CA7600AF972A /* widget-staging.xcconfig */; }; - 82C61DBC29E6CA7600AF972A /* widget-release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 82C61DB829E6CA7600AF972A /* widget-release.xcconfig */; }; 82C973A0217DFA9C00CE06D4 /* Host.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C9739F217DFA9C00CE06D4 /* Host.swift */; }; 82CA214329379CCD008BADE8 /* FileSystemManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CB2CE371DB0F860007A4D2D /* FileSystemManager.swift */; }; 82CA214429379CEC008BADE8 /* UIDevice+Ext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C2E5DE21620FF100C5A09F /* UIDevice+Ext.swift */; }; @@ -574,8 +572,6 @@ 82A7F10423C8661B0015A357 /* ServiceStatusTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceStatusTests.swift; sourceTree = ""; }; 82A9E8C323471EBE007BCA7E /* release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = release.xcconfig; sourceTree = ""; }; 82A9E8C423471EBE007BCA7E /* staging.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = staging.xcconfig; sourceTree = ""; }; - 82A9E8C723471FB2007BCA7E /* wg-release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "wg-release.xcconfig"; sourceTree = ""; }; - 82A9E8C823471FB2007BCA7E /* wg-staging.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "wg-staging.xcconfig"; sourceTree = ""; }; 82AA8817231E330A00E18ECB /* SessionStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionStatus.swift; sourceTree = ""; }; 82AAF0E82253A4A8005E792F /* StaticWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StaticWebViewController.swift; sourceTree = ""; }; 82AB0874291A6B5F0084625A /* AddCustomPortViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddCustomPortViewController.swift; sourceTree = ""; }; @@ -610,8 +606,6 @@ 82C61D9829E6B4C600AF972A /* LocationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationView.swift; sourceTree = ""; }; 82C61DA829E6C4CF00AF972A /* Widget-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Widget-Bridging-Header.h"; sourceTree = ""; }; 82C61DB329E6C72700AF972A /* LocationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationViewModel.swift; sourceTree = ""; }; - 82C61DB629E6CA7600AF972A /* widget-staging.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "widget-staging.xcconfig"; sourceTree = ""; }; - 82C61DB829E6CA7600AF972A /* widget-release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "widget-release.xcconfig"; sourceTree = ""; }; 82C9739F217DFA9C00CE06D4 /* Host.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Host.swift; sourceTree = ""; }; 82CE598F25ED3C7A0078099D /* URL+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+Ext.swift"; sourceTree = ""; }; 82CE599825ED48D60078099D /* InternetAddress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InternetAddress.swift; sourceTree = ""; }; @@ -1146,15 +1140,6 @@ path = View; sourceTree = ""; }; - 829FCCDE230D23FE009C63DF /* Config */ = { - isa = PBXGroup; - children = ( - 82A9E8C723471FB2007BCA7E /* wg-release.xcconfig */, - 82A9E8C823471FB2007BCA7E /* wg-staging.xcconfig */, - ); - path = Config; - sourceTree = ""; - }; 82A208B321BAA4C500C9AD44 /* Scenes */ = { isa = PBXGroup; children = ( @@ -1278,7 +1263,6 @@ isa = PBXGroup; children = ( 824B86AA26D3D16100D0101A /* WireGuard */, - 829FCCDE230D23FE009C63DF /* Config */, 82B605252170840C004B40E6 /* PacketTunnelProvider.swift */, 824B86C226D3D7B500D0101A /* ExtensionKeyManager.swift */, 824B86C326D3D7B600D0101A /* TimerManager.swift */, @@ -1352,15 +1336,6 @@ path = Location; sourceTree = ""; }; - 82C61DB529E6CA7600AF972A /* Config */ = { - isa = PBXGroup; - children = ( - 82C61DB629E6CA7600AF972A /* widget-staging.xcconfig */, - 82C61DB829E6CA7600AF972A /* widget-release.xcconfig */, - ); - path = Config; - sourceTree = ""; - }; 82CE599725ED48AB0078099D /* DNSResolver */ = { isa = PBXGroup; children = ( @@ -1444,7 +1419,6 @@ 82E3B20D29DDCC6400998F67 /* IVPNWidget */ = { isa = PBXGroup; children = ( - 82C61DB529E6CA7600AF972A /* Config */, 82E3B21C29DDD2E800998F67 /* Scene */, 82A38A1929E3200000C88372 /* Service */, 8206BAF829ED65C600F916B7 /* Extension */, @@ -1899,8 +1873,6 @@ buildActionMask = 2147483647; files = ( 82C61D9629E6ADEF00AF972A /* Assets.xcassets in Resources */, - 82C61DBA29E6CA7600AF972A /* widget-staging.xcconfig in Resources */, - 82C61DBC29E6CA7600AF972A /* widget-release.xcconfig in Resources */, 82E3B21329DDCC6500998F67 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/IVPNWidget/Config/widget-release.template.xcconfig b/IVPNWidget/Config/widget-release.template.xcconfig deleted file mode 100644 index 82c53f3c6..000000000 --- a/IVPNWidget/Config/widget-release.template.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -ApiHostName = api.ivpn.net -TlsHostName = ivpn.net diff --git a/IVPNWidget/Config/widget-staging.template.xcconfig b/IVPNWidget/Config/widget-staging.template.xcconfig deleted file mode 100644 index 2dd56b5b2..000000000 --- a/IVPNWidget/Config/widget-staging.template.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -ApiHostName = -TlsHostName = diff --git a/README.md b/README.md index e2ed203c3..0a61da8ad 100644 --- a/README.md +++ b/README.md @@ -75,10 +75,6 @@ Rename and populate `.xcconfig` files: ```sh $ cp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig $ cp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig -$ cp wireguard-tunnel-provider/Config/wg-staging.template.xcconfig wireguard-tunnel-provider/Config/wg-staging.xcconfig -$ cp wireguard-tunnel-provider/Config/wg-release.template.xcconfig wireguard-tunnel-provider/Config/wg-release.xcconfig -$ cp IVPNWidget/Config/widget-staging.template.xcconfig IVPNWidget/Config/widget-staging.xcconfig -$ cp IVPNWidget/Config/widget-release.template.xcconfig IVPNWidget/Config/widget-release.xcconfig ``` ### OpenVPN configuration diff --git a/today-extension/Config/today-extension-release.template.xcconfig b/today-extension/Config/today-extension-release.template.xcconfig deleted file mode 100644 index 1823d5545..000000000 --- a/today-extension/Config/today-extension-release.template.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -ApiHostName = api.ivpn.net -TlsHostName = ivpn.net \ No newline at end of file diff --git a/today-extension/Config/today-extension-staging.template.xcconfig b/today-extension/Config/today-extension-staging.template.xcconfig deleted file mode 100644 index 0efea8050..000000000 --- a/today-extension/Config/today-extension-staging.template.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -ApiHostName = -TlsHostName = \ No newline at end of file diff --git a/wireguard-tunnel-provider/Config/wg-release.template.xcconfig b/wireguard-tunnel-provider/Config/wg-release.template.xcconfig deleted file mode 100644 index 82c53f3c6..000000000 --- a/wireguard-tunnel-provider/Config/wg-release.template.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -ApiHostName = api.ivpn.net -TlsHostName = ivpn.net diff --git a/wireguard-tunnel-provider/Config/wg-staging.template.xcconfig b/wireguard-tunnel-provider/Config/wg-staging.template.xcconfig deleted file mode 100644 index 2dd56b5b2..000000000 --- a/wireguard-tunnel-provider/Config/wg-staging.template.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -ApiHostName = -TlsHostName = From dbe113238ae0541c98516161feafcdbc056e0a12 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 12:01:09 +0200 Subject: [PATCH 49/63] tests: update ci.yml --- .github/workflows/ci.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c055943fa..ae3ceed76 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,10 +18,6 @@ jobs: run: | cp IVPNClient/Config/staging.template.xcconfig IVPNClient/Config/staging.xcconfig cp IVPNClient/Config/release.template.xcconfig IVPNClient/Config/release.xcconfig - cp wireguard-tunnel-provider/Config/wg-staging.template.xcconfig wireguard-tunnel-provider/Config/wg-staging.xcconfig - cp wireguard-tunnel-provider/Config/wg-release.template.xcconfig wireguard-tunnel-provider/Config/wg-release.xcconfig - cp IVPNWidget/Config/widget-staging.template.xcconfig IVPNWidget/Config/widget-staging.xcconfig - cp IVPNWidget/Config/widget-release.template.xcconfig IVPNWidget/Config/widget-release.xcconfig cp IVPNClient/Config/OpenVPNConf.template.swift IVPNClient/Config/OpenVPNConf.swift cp fastlane/Appfile.template fastlane/Appfile - name: Build and test From 7ab9a97b9e4d68e34cc8ac06fd034cc0b488812d Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 13:24:14 +0200 Subject: [PATCH 50/63] tests: update ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae3ceed76..cbec85574 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/setup-go@v2 with: - go-version: 1.16 + go-version: 1.18 - uses: actions/checkout@v2 - name: Set up config files run: | From df49daace4ade695727d075c8d74e117f5bf2888 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 13:47:43 +0200 Subject: [PATCH 51/63] docs: update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a61da8ad..f80210605 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ These instructions will get you a copy of the project up and running on your loc - Xcode 14.0+ - Swift 5.0+ - fastlane 2.178.0+ -- Go 1.16+ +- Go 1.18+ ### Dev dependencies From 6a71564b4a373066c6c7b9f95df57eb361feea82 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 14:38:43 +0200 Subject: [PATCH 52/63] feat(antitracker): update AntiTrackerDns.swift --- IVPNClient/Models/AntiTrackerDns.swift | 4 ++-- .../Utilities/Extensions/NETunnelProviderProtocol+Ext.swift | 1 + IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift | 2 +- wireguard-tunnel-provider/PacketTunnelProvider.swift | 4 ++++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/IVPNClient/Models/AntiTrackerDns.swift b/IVPNClient/Models/AntiTrackerDns.swift index 1f48a2c18..c8f6695e5 100644 --- a/IVPNClient/Models/AntiTrackerDns.swift +++ b/IVPNClient/Models/AntiTrackerDns.swift @@ -34,12 +34,12 @@ struct AntiTrackerDns: Codable { func save() { if let encoded = try? JSONEncoder().encode(self) { - UserDefaults.standard.set(encoded, forKey: UserDefaults.Key.antiTrackerDns) + UserDefaults.shared.set(encoded, forKey: UserDefaults.Key.antiTrackerDns) } } static func load() -> AntiTrackerDns? { - if let saved = UserDefaults.standard.object(forKey: UserDefaults.Key.antiTrackerDns) as? Data { + if let saved = UserDefaults.shared.object(forKey: UserDefaults.Key.antiTrackerDns) as? Data { if let loaded = try? JSONDecoder().decode(AntiTrackerDns.self, from: saved) { return loaded } diff --git a/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift b/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift index 47ec4fdf7..589e3070d 100644 --- a/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift +++ b/IVPNClient/Utilities/Extensions/NETunnelProviderProtocol+Ext.swift @@ -54,6 +54,7 @@ extension NETunnelProviderProtocol { if let dnsServers = openVPNdnsServers(), !dnsServers.isEmpty, dnsServers != [""] { sessionBuilder.dnsServers = dnsServers + log(.info, message: "DNS server: \(dnsServers)") switch DNSProtocolType.preferred() { case .doh: diff --git a/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift b/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift index 9ce4cc1e5..05c290883 100644 --- a/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift +++ b/IVPNClient/Utilities/Extensions/UserDefaults+Ext.swift @@ -269,6 +269,7 @@ extension UserDefaults { shared.removeObject(forKey: Key.killSwitch) shared.removeObject(forKey: Key.selectHost) shared.removeObject(forKey: Key.isLoggedIn) + shared.removeObject(forKey: Key.antiTrackerDns) standard.removeObject(forKey: Key.serviceStatus) standard.removeObject(forKey: Key.selectedHost) standard.removeObject(forKey: Key.selectedExitHost) @@ -279,7 +280,6 @@ extension UserDefaults { standard.removeObject(forKey: Key.wgMtu) standard.removeObject(forKey: Key.preventSameCountryMultiHop) standard.removeObject(forKey: Key.preventSameISPMultiHop) - standard.removeObject(forKey: Key.antiTrackerDns) standard.synchronize() } diff --git a/wireguard-tunnel-provider/PacketTunnelProvider.swift b/wireguard-tunnel-provider/PacketTunnelProvider.swift index 540b38c4a..fd47fad84 100644 --- a/wireguard-tunnel-provider/PacketTunnelProvider.swift +++ b/wireguard-tunnel-provider/PacketTunnelProvider.swift @@ -250,6 +250,10 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } } + if let dnsSettings = newSettings.dnsSettings { + wg_log(.info, message: "DNS server: \(String(describing: dnsSettings.servers))") + } + if let mtu = self.config.providerConfiguration![PCKeys.mtu.rawValue] as? NSNumber, mtu.intValue > 0 { newSettings.mtu = mtu wg_log(.info, message: "MTU: \(mtu)") From 4f99705dcc855fa4906ed1902f9aaefe79468ce5 Mon Sep 17 00:00:00 2001 From: Juraj Hilje Date: Wed, 12 Jul 2023 15:11:09 +0200 Subject: [PATCH 53/63] feat(antitracker): add presentAntiTracker method in ControlPanelViewController --- IVPNClient/Scenes/Base.lproj/Main.storyboard | 47 ++++++++++++++----- .../ControlPanelViewController+Ext.swift | 4 ++ .../ControlPanelViewController.swift | 6 +++ .../AntiTrackerViewController.swift | 9 ++++ 4 files changed, 53 insertions(+), 13 deletions(-) diff --git a/IVPNClient/Scenes/Base.lproj/Main.storyboard b/IVPNClient/Scenes/Base.lproj/Main.storyboard index 9490b0784..4dc46adf5 100644 --- a/IVPNClient/Scenes/Base.lproj/Main.storyboard +++ b/IVPNClient/Scenes/Base.lproj/Main.storyboard @@ -399,7 +399,7 @@ - + @@ -2753,27 +2753,27 @@ - + - + - + - + - + @@ -2794,7 +2794,7 @@ - + @@ -2874,13 +2874,13 @@ -