diff --git a/Configuration/amnezia.xcconfig b/Configuration/amnezia.xcconfig index 99502ba..25bdd40 100644 --- a/Configuration/amnezia.xcconfig +++ b/Configuration/amnezia.xcconfig @@ -1,23 +1,35 @@ -SUPPORTED_PLATFORMS = macosx +SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx +TARGETED_DEVICE_FAMILY = 1,2 -HEADER_SEARCH_PATHS = $(inherited) \ - $(SRCROOT)/Sources/OpenVPNAdapter/include \ - $(SRCROOT)/Sources/OpenVPNClient/include \ - $(SRCROOT)/Sources/LZ4/include \ - $(SRCROOT)/Sources/mbedTLS/include \ - $(SRCROOT)/Sources/ASIO/asio/include \ - $(SRCROOT)/Sources/OpenVPN3 +HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/Sources/OpenVPNAdapter/include $(SRCROOT)/Sources/OpenVPNClient/include $(SRCROOT)/Sources/LZ4/include $(SRCROOT)/Sources/mbedTLS/include $(SRCROOT)/Sources/ASIO/asio/include $(SRCROOT)/Sources/OpenVPN3 CLANG_CXX_LANGUAGE_STANDARD = gnu++14 CLANG_CXX_LIBRARY = libc++ -MACOSX_DEPLOYMENT_TARGET = 12.0 +//////////////////////////////////////////////////////////////////////////////// +// +// iOS-specific settings +// +IPHONEOS_DEPLOYMENT_TARGET = 10.0 -SDKROOT[arch=x86_64] = macosx -SDKROOT[arch=arm64] = macosx +SDKROOT[arch=arm64] = iphoneos +//SDKROOT[arch=armv7] = iphoneos +//SDKROOT[arch=armv7s] = iphoneos -VALID_ARCHS[sdk=macosx*] = x86_64 arm64 -ARCHS = $(ARCHS_STANDARD) -PROJECT_TEMP_DIR = /Users/macbook/Documents/VPN/dev-branch/new-13112024/amnezia-client/client/3rd/OpenVPNAdapter/build/OpenVPNAdapter.build -CONFIGURATION_BUILD_DIR = /Users/macbook/Documents/VPN/dev-branch/new-13112024/amnezia-client/client/3rd/OpenVPNAdapter/build/Release-macos -BUILT_PRODUCTS_DIR = /Users/macbook/Documents/VPN/dev-branch/new-13112024/amnezia-client/client/3rd/OpenVPNAdapter/build/Release-macos +VALID_ARCHS[sdk=iphoneos*] = arm64 +// armv7 armv7s +//VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64 + +//////////////////////////////////////////////////////////////////////////////// +// +// macOS-specific settings +// +//MACOSX_DEPLOYMENT_TARGET = 10.11 +// +//SDKROOT[arch=i386] = macosx +//SDKROOT[arch=x86_64] = macosx +// +//VALID_ARCHS[sdk=macosx*] = i386 x86_64 + PROJECT_TEMP_DIR = /Users/anhviet/Documents/VPN/amnezia-client/client/3rd/OpenVPNAdapter/build/OpenVPNAdapter.build + CONFIGURATION_BUILD_DIR = /Users/anhviet/Documents/VPN/amnezia-client/client/3rd/OpenVPNAdapter/build/Release-iphoneos + BUILT_PRODUCTS_DIR = /Users/anhviet/Documents/VPN/amnezia-client/client/3rd/OpenVPNAdapter/build/Release-iphoneos diff --git a/Lib/ios/arm64/ck-ovpn-plugin.a b/Lib/ios/arm64/ck-ovpn-plugin.a index 41f1e7e..cbc5ff0 100644 Binary files a/Lib/ios/arm64/ck-ovpn-plugin.a and b/Lib/ios/arm64/ck-ovpn-plugin.a differ diff --git a/OpenVPNAdapter.xcodeproj/project.pbxproj b/OpenVPNAdapter.xcodeproj/project.pbxproj index 268e513..9392907 100644 --- a/OpenVPNAdapter.xcodeproj/project.pbxproj +++ b/OpenVPNAdapter.xcodeproj/project.pbxproj @@ -3,11 +3,12 @@ archiveVersion = 1; classes = { }; - objectVersion = 55; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ 4E51D4962BCE7A63006977DA /* ck-ovpn-plugin.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B7795A329DC896200D15D50 /* ck-ovpn-plugin.a */; }; + 7B7E1EA129E70FB400E76E6D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B7E1EA029E70FB400E76E6D /* UIKit.framework */; }; 7BFD7A8029E5BEF90066D7CC /* ovpncli.mm in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_73 /* ovpncli.mm */; }; C910EAE524EBB1DA0081AF13 /* OpenVPNReachabilityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97E5FD624123F48005C2EBC /* OpenVPNReachabilityTests.swift */; }; C910EAE724EBB5210081AF13 /* OpenVPNConfigurationEvaluation.h in Headers */ = {isa = PBXBuildFile; fileRef = C910EAE624EBB5210081AF13 /* OpenVPNConfigurationEvaluation.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -59,8 +60,8 @@ C97E5FE024123F48005C2EBC /* VPNProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97E5FDA24123F48005C2EBC /* VPNProfile.swift */; }; C97E5FE124123F48005C2EBC /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97E5FDB24123F48005C2EBC /* Bundle.swift */; }; C97E5FE624124B0E005C2EBC /* Umbrella-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = C97E5FBA2412344D005C2EBC /* Umbrella-Header.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C97E5FE724124B6F005C2EBC /* LZ4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::LZ4::Product" /* LZ4.framework */; }; - C97E5FEC24124B73005C2EBC /* mbedTLS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::mbedTLS::Product" /* mbedTLS.framework */; }; + C97E5FE724124B6F005C2EBC /* LZ4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::LZ4::Product" /* LZ4.framework */; platformFilter = ios; }; + C97E5FEC24124B73005C2EBC /* mbedTLS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::mbedTLS::Product" /* mbedTLS.framework */; platformFilter = ios; }; C9EABF3124110BE200D828D4 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9EABF3024110BE200D828D4 /* SystemConfiguration.framework */; }; OBJ_250 /* lz4.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_16 /* lz4.c */; }; OBJ_251 /* lz4frame.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_17 /* lz4frame.c */; }; @@ -106,9 +107,9 @@ OBJ_300 /* OpenVPNTransportStats.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_68 /* OpenVPNTransportStats.h */; settings = {ATTRIBUTES = (Public, ); }; }; OBJ_301 /* OpenVPNSessionToken.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_69 /* OpenVPNSessionToken.h */; settings = {ATTRIBUTES = (Public, ); }; }; OBJ_302 /* OpenVPNCertificate.h in Headers */ = {isa = PBXBuildFile; fileRef = OBJ_70 /* OpenVPNCertificate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - OBJ_304 /* OpenVPNClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::OpenVPNClient::Product" /* OpenVPNClient.framework */; platformFilters = (ios, macos, ); }; - OBJ_324 /* mbedTLS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::mbedTLS::Product" /* mbedTLS.framework */; }; - OBJ_325 /* LZ4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::LZ4::Product" /* LZ4.framework */; }; + OBJ_304 /* OpenVPNClient.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::OpenVPNClient::Product" /* OpenVPNClient.framework */; }; + OBJ_324 /* mbedTLS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::mbedTLS::Product" /* mbedTLS.framework */; platformFilter = ios; }; + OBJ_325 /* LZ4.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = "OpenVPNAdapter::LZ4::Product" /* LZ4.framework */; platformFilter = ios; }; OBJ_332 /* aes.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_85 /* aes.c */; }; OBJ_333 /* aesni.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_86 /* aesni.c */; }; OBJ_334 /* arc4.c in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_87 /* arc4.c */; }; @@ -230,6 +231,7 @@ /* Begin PBXFileReference section */ 7B7795A329DC896200D15D50 /* ck-ovpn-plugin.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "ck-ovpn-plugin.a"; path = "Lib/ios/arm64/ck-ovpn-plugin.a"; sourceTree = ""; }; + 7B7E1EA029E70FB400E76E6D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; C910EAE624EBB5210081AF13 /* OpenVPNConfigurationEvaluation.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = OpenVPNConfigurationEvaluation.h; sourceTree = ""; }; C910EAEB24EBBFB60081AF13 /* client.crt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = client.crt; sourceTree = ""; }; C910EAEC24EBBFB60081AF13 /* ca.crt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ca.crt; sourceTree = ""; }; @@ -508,6 +510,7 @@ buildActionMask = 0; files = ( OBJ_304 /* OpenVPNClient.framework in Frameworks */, + 7B7E1EA129E70FB400E76E6D /* UIKit.framework in Frameworks */, C9EABF3124110BE200D828D4 /* SystemConfiguration.framework in Frameworks */, 4E51D4962BCE7A63006977DA /* ck-ovpn-plugin.a in Frameworks */, C97E5FEC24124B73005C2EBC /* mbedTLS.framework in Frameworks */, @@ -562,6 +565,7 @@ C9EABF2F24110BE100D828D4 /* Frameworks */ = { isa = PBXGroup; children = ( + 7B7E1EA029E70FB400E76E6D /* UIKit.framework */, 7B7795A329DC896200D15D50 /* ck-ovpn-plugin.a */, C9EABF3024110BE200D828D4 /* SystemConfiguration.framework */, ); @@ -1323,30 +1327,30 @@ }; C97E5FEA24124B6F005C2EBC /* PBXTargetDependency */ = { isa = PBXTargetDependency; + platformFilter = ios; target = "OpenVPNAdapter::LZ4" /* LZ4 */; targetProxy = C97E5FE924124B6F005C2EBC /* PBXContainerItemProxy */; }; C97E5FEF24124B73005C2EBC /* PBXTargetDependency */ = { isa = PBXTargetDependency; + platformFilter = ios; target = "OpenVPNAdapter::mbedTLS" /* mbedTLS */; targetProxy = C97E5FEE24124B73005C2EBC /* PBXContainerItemProxy */; }; OBJ_307 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - platformFilters = ( - ios, - macos, - ); target = "OpenVPNAdapter::OpenVPNClient" /* OpenVPNClient */; targetProxy = C9EABF2C2411076400D828D4 /* PBXContainerItemProxy */; }; OBJ_326 /* PBXTargetDependency */ = { isa = PBXTargetDependency; + platformFilter = ios; target = "OpenVPNAdapter::mbedTLS" /* mbedTLS */; targetProxy = C9EABF2A2411076400D828D4 /* PBXContainerItemProxy */; }; OBJ_327 /* PBXTargetDependency */ = { isa = PBXTargetDependency; + platformFilter = ios; target = "OpenVPNAdapter::LZ4" /* LZ4 */; targetProxy = C9EABF2B2411076400D828D4 /* PBXContainerItemProxy */; }; @@ -1412,7 +1416,6 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = x86_64; }; name = Debug; }; @@ -1471,7 +1474,6 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; - VALID_ARCHS = x86_64; }; name = Release; }; @@ -1502,7 +1504,6 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; TARGET_NAME = LZ4; - VALID_ARCHS = "arm64 x86_64"; }; name = Debug; }; @@ -1533,7 +1534,6 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; TARGET_NAME = LZ4; - VALID_ARCHS = "arm64 x86_64"; }; name = Release; }; @@ -1542,8 +1542,6 @@ baseConfigurationReference = C9EABF7424111D6100D828D4 /* OpenVPNAdapter.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - ARCHSa = "$(ARCHS_STANDARD)"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_$(_DEVELOPMENT_TEAM_IS_EMPTY))"; CODE_SIGN_STYLE = Automatic; @@ -1572,17 +1570,16 @@ PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; - REGISTER_APP_GROUPS = NO; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SUPPORTS_MACCATALYST = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; TARGETED_DEVICE_FAMILY = "1,2"; TARGET_NAME = OpenVPNAdapter; - VALID_ARCHS = "arm64 x86_64"; - "VALID_ARCHS[arch=*]" = x86_64; - "VALID_ARCHS[sdk=iphoneos*]" = x86_64; + VALID_ARCHS = arm64; + "VALID_ARCHS[arch=*]" = arm64; + "VALID_ARCHS[sdk=iphoneos*]" = arm64; }; name = Debug; }; @@ -1591,8 +1588,6 @@ baseConfigurationReference = C9EABF7424111D6100D828D4 /* OpenVPNAdapter.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - ARCHSa = "$(ARCHS_STANDARD)"; CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "$(CODE_SIGN_IDENTITY_$(_DEVELOPMENT_TEAM_IS_EMPTY))"; CODE_SIGN_STYLE = Automatic; @@ -1621,16 +1616,15 @@ PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; - REGISTER_APP_GROUPS = NO; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SUPPORTS_MACCATALYST = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; TARGETED_DEVICE_FAMILY = "1,2"; TARGET_NAME = OpenVPNAdapter; - VALID_ARCHS = "arm64 x86_64"; - "VALID_ARCHS[arch=*]" = x86_64; + VALID_ARCHS = arm64; + "VALID_ARCHS[arch=*]" = arm64; "VALID_ARCHS[sdk=iphoneos*]" = arm64; }; name = Release; @@ -1676,7 +1670,6 @@ "$(PLATFORM_DIR)/Developer/Library/Frameworks", ); INFOPLIST_FILE = OpenVPNAdapter.xcodeproj/OpenVPNClient_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", @@ -1694,15 +1687,12 @@ PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; - REGISTER_APP_GROUPS = NO; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGETED_DEVICE_FAMILY = "1,2"; TARGET_NAME = OpenVPNClient; - VALID_ARCHS = "arm64 x86_64"; + VALID_ARCHS = arm64; a = ""; }; name = Debug; @@ -1723,7 +1713,6 @@ "$(PLATFORM_DIR)/Developer/Library/Frameworks", ); INFOPLIST_FILE = OpenVPNAdapter.xcodeproj/OpenVPNClient_Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "$(TOOLCHAIN_DIR)/usr/lib/swift/macosx", @@ -1741,16 +1730,12 @@ PRODUCT_MODULE_NAME = "$(TARGET_NAME:c99extidentifier)"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; PROVISIONING_PROFILE_SPECIFIER = ""; - REGISTER_APP_GROUPS = NO; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx"; - SUPPORTS_MACCATALYST = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; - TARGETED_DEVICE_FAMILY = "1,2"; TARGET_NAME = OpenVPNClient; - VALID_ARCHS = "arm64 x86_64"; - "VALID_ARCHS[sdk=iphoneos*]" = x86_64; + VALID_ARCHS = arm64; a = ""; }; name = Release; @@ -1785,7 +1770,6 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; TARGET_NAME = mbedTLS; - VALID_ARCHS = "arm64 x86_64"; }; name = Debug; }; @@ -1819,7 +1803,6 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited)"; TARGET_NAME = mbedTLS; - VALID_ARCHS = "arm64 x86_64"; }; name = Release; }; diff --git a/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.h b/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.h index c74dcc5..3fb0314 100644 --- a/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.h +++ b/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.h @@ -138,15 +138,6 @@ typedef NS_ENUM(NSInteger, OpenVPNTLSCertProfile); */ @property (nonatomic) NSInteger keyDirection; -/** - If YES, force ciphersuite to be one of: - 1. TLS_DHE_RSA_WITH_AES_256_CBC_SHA, or - 2. TLS_DHE_RSA_WITH_AES_128_CBC_SHA - and disable setting TLS minimum version. - This is intended for compatibility with legacy systems. - */ -@property (nonatomic) BOOL forceCiphersuitesAESCBC; - /** Override the minimum TLS version */ @@ -183,7 +174,7 @@ typedef NS_ENUM(NSInteger, OpenVPNTLSCertProfile); @property (nonatomic) BOOL info; /** - Periodic convenience clock tick in milliseconds. Will call + Periodic convenience clock tick in milliseconds. Will call [OpenVPNAdapterDelegate tick] at a frequency defined by this parameter. Set to 0 to disable. */ diff --git a/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.mm b/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.mm index a548b51..975054b 100644 --- a/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.mm +++ b/Sources/OpenVPNAdapter/library/OpenVPNConfiguration.mm @@ -419,15 +419,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default"; _config.defaultKeyDirection = keyDirection; } -- (BOOL)forceCiphersuitesAESCBC { -// return _config.forceAesCbcCiphersuites; - return _config.forceCiphersuitesAESCBC; -} - -- (void)setForceCiphersuitesAESCBC:(BOOL)forceCiphersuitesAESCBC { - _config.forceAesCbcCiphersuites = forceCiphersuitesAESCBC; -} - - (OpenVPNMinTLSVersion)minTLSVersion { NSString *currentValue = [NSString stringWithUTF8String:_config.tlsVersionMinOverride.c_str()]; return [OpenVPNConfiguration getMinTLSFromValue:currentValue]; @@ -551,7 +542,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default"; configuration.compressionMode = self.compressionMode; configuration.privateKeyPassword = [self.privateKeyPassword copyWithZone:zone]; configuration.keyDirection = self.keyDirection; - configuration.forceCiphersuitesAESCBC = self.forceCiphersuitesAESCBC; configuration.minTLSVersion = self.minTLSVersion; configuration.tlsCertProfile = self.tlsCertProfile; configuration.peerInfo = [self.peerInfo copyWithZone:zone]; @@ -581,7 +571,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default"; [aCoder encodeInteger:self.compressionMode forKey:NSStringFromSelector(@selector(compressionMode))]; [aCoder encodeObject:self.privateKeyPassword forKey:NSStringFromSelector(@selector(privateKeyPassword))]; [aCoder encodeInteger:self.keyDirection forKey:NSStringFromSelector(@selector(keyDirection))]; - [aCoder encodeBool:self.forceCiphersuitesAESCBC forKey:NSStringFromSelector(@selector(forceCiphersuitesAESCBC))]; [aCoder encodeInteger:self.minTLSVersion forKey:NSStringFromSelector(@selector(minTLSVersion))]; [aCoder encodeInteger:self.tlsCertProfile forKey:NSStringFromSelector(@selector(tlsCertProfile))]; [aCoder encodeObject:self.peerInfo forKey:NSStringFromSelector(@selector(peerInfo))]; @@ -611,7 +600,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default"; self.compressionMode = (OpenVPNCompressionMode)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(compressionMode))]; self.privateKeyPassword = [aDecoder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(privateKeyPassword))]; self.keyDirection = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(keyDirection))]; - self.forceCiphersuitesAESCBC = [aDecoder decodeBoolForKey:NSStringFromSelector(@selector(forceCiphersuitesAESCBC))]; self.minTLSVersion = (OpenVPNMinTLSVersion)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(minTLSVersion))]; self.tlsCertProfile = (OpenVPNTLSCertProfile)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(tlsCertProfile))]; self.peerInfo = [aDecoder decodeObjectOfClass:[NSDictionary class] forKey:NSStringFromSelector(@selector(peerInfo))];