From 50ea1ea81ace4a373f9ff02719805a0029ad98bc Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Mon, 25 Oct 2021 16:27:27 +0200 Subject: [PATCH] Convert CocoaPods project to SwiftPM --- .gitignore | 2 + .jazzy.yaml | 8 - {TunnelKit => Demo}/Demo/Configuration.swift | 3 +- {TunnelKit => Demo}/Demo/DemoTunnel.plist | 0 .../Demo/PacketTunnelProvider.swift | 2 +- .../Demo/iOS/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 Demo/Demo/iOS/Assets.xcassets/Contents.json | 6 + .../iOS/Base.lproj/LaunchScreen.storyboard | 0 .../Demo/iOS/Base.lproj/Main.storyboard | 0 .../Demo/iOS/Demo.entitlements | 0 {TunnelKit => Demo}/Demo/iOS/Demo.plist | 0 .../Demo/iOS/DemoTunnel.entitlements | 0 .../Demo/iOS/ViewController.swift | 5 +- .../Demo/macOS/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../Demo/macOS/Base.lproj/Main.storyboard | 0 .../Demo/macOS/Demo.entitlements | 0 {TunnelKit => Demo}/Demo/macOS/Demo.plist | 0 .../Demo/macOS/DemoTunnel.entitlements | 0 .../Demo/macOS/ViewController.swift | 5 +- {TunnelKit => Demo}/Host/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../Host/Base.lproj/LaunchScreen.storyboard | 0 .../Host/Base.lproj/Main.storyboard | 0 {TunnelKit => Demo}/Host/Host.entitlements | 0 {TunnelKit => Demo}/Host/Info.plist | 0 {TunnelKit => Demo}/Host/ViewController.swift | 0 Demo/TunnelKit.xcodeproj/project.pbxproj | 1054 ++++++ .../xcschemes/TunnelKitDemo-iOS.xcscheme | 0 .../xcschemes/TunnelKitDemo-macOS.xcscheme | 0 .../TunnelKitDemoTunnel-iOS.xcscheme | 0 .../TunnelKitDemoTunnel-macOS.xcscheme | 0 .../xcschemes/TunnelKitHost.xcscheme | 0 Gemfile | 3 - Gemfile.lock | 97 - Package.resolved | 25 + Package.swift | 116 + Podfile | 41 - Podfile.lock | 20 - .../InternalUtils}/Data+Manipulation.swift | 43 +- .../NSRegularExpression+Shortcuts.swift | 7 +- .../InternalUtils}/Utils.swift | 4 +- .../GenericSocket.swift | 0 .../InterfaceObserver.swift | 0 .../TunnelKitAppExtension}/Keychain.swift | 0 .../TunnelKitAppExtension}/LinkProducer.swift | 1 + .../MemoryDestination.swift | 0 .../Transport/NETCPSocket.swift | 1 + .../Transport/NETunnelInterface.swift | 1 + .../Transport/NEUDPSocket.swift | 1 + .../NWTCPConnectionState+Description.swift | 0 .../NWUDPSessionState+Description.swift | 0 .../TunnelKitCore}/BidirectionalState.swift | 0 .../TunnelKitCore}/ConfigurationError.swift | 0 .../TunnelKitCore}/CoreConfiguration.swift | 17 +- .../TunnelKitCore}/DNSProtocol.swift | 0 .../TunnelKitCore}/DNSResolver.swift | 6 + .../TunnelKitCore}/EndpointProtocol.swift | 0 .../TunnelKitCore}/Errors.swift | 6 +- .../TunnelKitCore}/IOInterface.swift | 0 .../TunnelKitCore}/IPHeader.swift | 0 .../TunnelKitCore}/IPv4Settings.swift | 11 +- .../TunnelKitCore}/IPv6Settings.swift | 11 +- .../TunnelKitCore}/LinkInterface.swift | 0 .../TunnelKitCore}/Proxy.swift | 0 .../TunnelKitCore}/SecureRandom.swift | 15 +- .../TunnelKitCore}/Session.swift | 0 .../TunnelKitCore}/SocketType.swift | 0 .../TunnelKitCore}/TunnelInterface.swift | 0 .../TunnelKitCore}/ZeroingData.swift | 18 +- .../TunnelKitCoreObjC}/Allocation.m | 0 .../TunnelKitCoreObjC}/Errors.m | 0 .../TunnelKitCoreObjC/LZOFactory.m | 12 +- .../TunnelKitCoreObjC}/RoutingTable.m | 0 .../TunnelKitCoreObjC}/RoutingTableEntry.m | 4 +- .../TunnelKitCoreObjC}/ZeroingData.m | 0 .../TunnelKitCoreObjC/include}/Allocation.h | 0 .../include/CompressionProvider.h | 8 +- .../TunnelKitCoreObjC/include}/Errors.h | 0 .../TunnelKitCoreObjC/include/LZOFactory.h | 13 +- .../TunnelKitCoreObjC/include}/RoutingTable.h | 0 .../include}/RoutingTableEntry.h | 0 .../TunnelKitCoreObjC/include}/ZeroingData.h | 0 .../TunnelKitCoreObjC/include}/route.h | 0 .../TunnelKitLZO}/StandardLZO.m | 5 +- Sources/TunnelKitLZO/include/Errors.h | 1 + Sources/TunnelKitLZO/include/lzo/lzoconf.h | 1 + Sources/TunnelKitLZO/include/lzo/lzodefs.h | 1 + .../LZO => Sources/TunnelKitLZO}/lib/COPYING | 0 .../LZO => Sources/TunnelKitLZO}/lib/Makefile | 0 .../TunnelKitLZO}/lib/README.LZO | 0 .../TunnelKitLZO}/lib/lzoconf.h | 0 .../TunnelKitLZO}/lib/lzodefs.h | 0 .../TunnelKitLZO}/lib/minilzo.c | 0 .../TunnelKitLZO}/lib/minilzo.h | 0 .../TunnelKitLZO}/lib/testmini.c | 0 .../TunnelKitManager}/MockVPNProvider.swift | 0 .../NetworkExtensionLocator.swift | 0 .../NetworkExtensionVPNConfiguration.swift | 0 .../NetworkExtensionVPNProvider.swift | 3 +- .../TunnelKitManager}/VPN.swift | 0 .../TunnelKitManager}/VPNConfiguration.swift | 0 .../TunnelKitManager}/VPNProvider.swift | 0 .../TunnelKitManager}/VPNProviderIPC.swift | 0 .../TunnelKitManager}/VPNStatus.swift | 0 .../TunnelKitNative}/NativeProvider.swift | 1 + .../AppExtension/ConnectionStrategy.swift | 2 + .../AppExtension/NETCPLink.swift | 4 +- .../AppExtension/NEUDPLink.swift | 2 + .../OpenVPNTunnelProvider+Configuration.swift | 4 + .../OpenVPNTunnelProvider+Interaction.swift | 0 .../AppExtension/OpenVPNTunnelProvider.swift | 4 +- .../TunnelKitOpenVPN}/Authenticator.swift | 5 +- .../CompressionAlgorithm.swift | 2 +- .../CompressionFraming.swift | 2 +- .../TunnelKitOpenVPN}/Configuration.swift | 1 + .../ConfigurationParser.swift | 8 +- .../TunnelKitOpenVPN}/ControlChannel.swift | 5 +- .../ControlChannelSerializer.swift | 5 +- .../CoreConfiguration+OpenVPN.swift | 7 +- .../TunnelKitOpenVPN}/CryptoContainer.swift | 2 +- .../TunnelKitOpenVPN}/EncryptionBridge.swift | 5 +- .../TunnelKitOpenVPN}/OpenVPN.swift | 5 +- .../TunnelKitOpenVPN}/OpenVPNError.swift | 0 .../TunnelKitOpenVPN}/OpenVPNProvider.swift | 1 + .../OpenVPNSession+PIA.swift | 1 + .../TunnelKitOpenVPN}/OpenVPNSession.swift | 7 +- .../TunnelKitOpenVPN}/Packet.swift | 4 +- .../TunnelKitOpenVPN}/ProtocolMacros.swift | 0 .../TunnelKitOpenVPN}/PushReply.swift | 0 .../TunnelKitOpenVPN}/SessionKey.swift | 5 +- .../TunnelKitOpenVPN}/StaticKey.swift | 3 +- .../TunnelKitOpenVPN}/TLSWrap.swift | 0 .../TunnelKitOpenVPNObjC}/ControlPacket.m | 0 .../TunnelKitOpenVPNObjC}/CryptoAEAD.m | 0 .../TunnelKitOpenVPNObjC}/CryptoBox.m | 0 .../TunnelKitOpenVPNObjC}/CryptoCBC.m | 0 .../TunnelKitOpenVPNObjC}/CryptoCTR.m | 0 .../TunnelKitOpenVPNObjC}/DataPath.m | 8 +- .../TunnelKitOpenVPNObjC}/MSS.m | 0 .../TunnelKitOpenVPNObjC}/PacketMacros.m | 0 .../TunnelKitOpenVPNObjC}/PacketStream.m | 0 .../TunnelKitOpenVPNObjC}/ReplayProtector.m | 0 .../TunnelKitOpenVPNObjC}/TLSBox.m | 0 .../include}/CompressionAlgorithmNative.h | 0 .../include}/CompressionFramingNative.h | 0 .../include}/ControlPacket.h | 0 .../TunnelKitOpenVPNObjC/include}/Crypto.h | 0 .../include}/CryptoAEAD.h | 0 .../TunnelKitOpenVPNObjC/include}/CryptoBox.h | 0 .../TunnelKitOpenVPNObjC/include}/CryptoCBC.h | 0 .../TunnelKitOpenVPNObjC/include}/CryptoCTR.h | 0 .../include}/CryptoMacros.h | 0 .../TunnelKitOpenVPNObjC/include}/DataPath.h | 0 .../include}/DataPathCrypto.h | 0 .../TunnelKitOpenVPNObjC/include}/MSS.h | 0 .../include}/PacketMacros.h | 0 .../include}/PacketStream.h | 0 .../include}/ReplayProtector.h | 0 .../TunnelKitOpenVPNObjC/include}/TLSBox.h | 0 .../DataManipulationTests.swift | 2 +- .../TunnelKitCoreTests}/RandomTests.swift | 2 +- .../RawPerformanceTests.swift | 2 +- .../TunnelKitCoreTests}/RoutingTests.swift | 2 +- .../TunnelKitCoreTests}/TestUtils+Core.swift | 8 +- .../TunnelKitLZOTests}/CompressionTests.swift | 9 +- .../AppExtensionTests.swift | 4 +- .../ConfigurationParserTests.swift | 5 +- .../ControlChannelTests.swift | 7 +- .../DataPathEncryptionTests.swift | 6 +- .../DataPathPerformanceTests.swift | 6 +- .../EncryptionPerformanceTests.swift | 7 +- .../EncryptionTests.swift | 13 +- .../TunnelKitOpenVPNTests}/LinkTests.swift | 5 +- .../TunnelKitOpenVPNTests}/PacketTests.swift | 4 +- .../TunnelKitOpenVPNTests}/PushTests.swift | 3 +- .../Resources}/pia-2048.pem | 0 .../Resources}/pia-hungary.ovpn | 0 .../Resources}/tunnelbear.crt | 0 .../Resources}/tunnelbear.enc.1.key | 0 .../Resources}/tunnelbear.enc.1.ovpn | 0 .../Resources}/tunnelbear.enc.8.key | 0 .../Resources}/tunnelbear.enc.8.ovpn | 0 .../Resources}/tunnelbear.key | 0 .../StaticKeyTests.swift | 3 +- .../TestUtils+OpenVPN.swift | 6 +- TunnelKit.podspec | 79 - TunnelKit.xcodeproj/project.pbxproj | 2916 ----------------- .../xcschemes/TunnelKit-iOS.xcscheme | 95 - .../xcschemes/TunnelKit-macOS.xcscheme | 95 - .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - TunnelKit/Info.plist | 24 - TunnelKit/Sources/Core/DNS.m | 82 - TunnelKit/Sources/Core/module.modulemap | 44 - .../Protocols/OpenVPN/module.modulemap | 51 - TunnelKit/Tests/Core/DNSTests.swift | 54 - TunnelKit/Tests/Info.plist | 22 - ci/pod-lint.sh | 2 - ci/pod-push.sh | 2 - ci/set-version.sh | 9 - 202 files changed, 1447 insertions(+), 3810 deletions(-) rename {TunnelKit => Demo}/Demo/Configuration.swift (99%) rename {TunnelKit => Demo}/Demo/DemoTunnel.plist (100%) rename {TunnelKit => Demo}/Demo/PacketTunnelProvider.swift (97%) rename {TunnelKit => Demo}/Demo/iOS/AppDelegate.swift (100%) rename {TunnelKit => Demo}/Demo/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) create mode 100644 Demo/Demo/iOS/Assets.xcassets/Contents.json rename {TunnelKit => Demo}/Demo/iOS/Base.lproj/LaunchScreen.storyboard (100%) rename {TunnelKit => Demo}/Demo/iOS/Base.lproj/Main.storyboard (100%) rename {TunnelKit => Demo}/Demo/iOS/Demo.entitlements (100%) rename {TunnelKit => Demo}/Demo/iOS/Demo.plist (100%) rename {TunnelKit => Demo}/Demo/iOS/DemoTunnel.entitlements (100%) rename {TunnelKit => Demo}/Demo/iOS/ViewController.swift (98%) rename {TunnelKit => Demo}/Demo/macOS/AppDelegate.swift (100%) rename {TunnelKit => Demo}/Demo/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {TunnelKit => Demo}/Demo/macOS/Base.lproj/Main.storyboard (100%) rename {TunnelKit => Demo}/Demo/macOS/Demo.entitlements (100%) rename {TunnelKit => Demo}/Demo/macOS/Demo.plist (100%) rename {TunnelKit => Demo}/Demo/macOS/DemoTunnel.entitlements (100%) rename {TunnelKit => Demo}/Demo/macOS/ViewController.swift (98%) rename {TunnelKit => Demo}/Host/AppDelegate.swift (100%) rename {TunnelKit => Demo}/Host/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {TunnelKit => Demo}/Host/Base.lproj/LaunchScreen.storyboard (100%) rename {TunnelKit => Demo}/Host/Base.lproj/Main.storyboard (100%) rename {TunnelKit => Demo}/Host/Host.entitlements (100%) rename {TunnelKit => Demo}/Host/Info.plist (100%) rename {TunnelKit => Demo}/Host/ViewController.swift (100%) create mode 100644 Demo/TunnelKit.xcodeproj/project.pbxproj rename {TunnelKit.xcodeproj => Demo/TunnelKit.xcodeproj}/xcshareddata/xcschemes/TunnelKitDemo-iOS.xcscheme (100%) rename {TunnelKit.xcodeproj => Demo/TunnelKit.xcodeproj}/xcshareddata/xcschemes/TunnelKitDemo-macOS.xcscheme (100%) rename {TunnelKit.xcodeproj => Demo/TunnelKit.xcodeproj}/xcshareddata/xcschemes/TunnelKitDemoTunnel-iOS.xcscheme (100%) rename {TunnelKit.xcodeproj => Demo/TunnelKit.xcodeproj}/xcshareddata/xcschemes/TunnelKitDemoTunnel-macOS.xcscheme (100%) rename {TunnelKit.xcodeproj => Demo/TunnelKit.xcodeproj}/xcshareddata/xcschemes/TunnelKitHost.xcscheme (100%) delete mode 100644 Gemfile delete mode 100644 Gemfile.lock create mode 100644 Package.resolved create mode 100644 Package.swift delete mode 100644 Podfile delete mode 100644 Podfile.lock rename {TunnelKit/Sources/Core => Sources/InternalUtils}/Data+Manipulation.swift (87%) rename {TunnelKit/Sources/Core => Sources/InternalUtils}/NSRegularExpression+Shortcuts.swift (86%) rename {TunnelKit/Sources/Core => Sources/InternalUtils}/Utils.swift (95%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/GenericSocket.swift (100%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/InterfaceObserver.swift (100%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/Keychain.swift (100%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/LinkProducer.swift (98%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/MemoryDestination.swift (100%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/Transport/NETCPSocket.swift (99%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/Transport/NETunnelInterface.swift (99%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/Transport/NEUDPSocket.swift (99%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/Transport/NWTCPConnectionState+Description.swift (100%) rename {TunnelKit/Sources/AppExtension => Sources/TunnelKitAppExtension}/Transport/NWUDPSessionState+Description.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/BidirectionalState.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/ConfigurationError.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/CoreConfiguration.swift (89%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/DNSProtocol.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/DNSResolver.swift (97%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/EndpointProtocol.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/Errors.swift (89%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/IOInterface.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/IPHeader.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/IPv4Settings.swift (86%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/IPv6Settings.swift (85%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/LinkInterface.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/Proxy.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/SecureRandom.swift (92%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/Session.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/SocketType.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/TunnelInterface.swift (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCore}/ZeroingData.swift (84%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC}/Allocation.m (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC}/Errors.m (100%) rename TunnelKit/Sources/Core/LZO.m => Sources/TunnelKitCoreObjC/LZOFactory.m (90%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC}/RoutingTable.m (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC}/RoutingTableEntry.m (99%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC}/ZeroingData.m (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC/include}/Allocation.h (100%) rename TunnelKit/Sources/Core/LZO.h => Sources/TunnelKitCoreObjC/include/CompressionProvider.h (91%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC/include}/Errors.h (100%) rename TunnelKit/Sources/Core/DNS.h => Sources/TunnelKitCoreObjC/include/LZOFactory.h (81%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC/include}/RoutingTable.h (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC/include}/RoutingTableEntry.h (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC/include}/ZeroingData.h (100%) rename {TunnelKit/Sources/Core => Sources/TunnelKitCoreObjC/include}/route.h (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/StandardLZO.m (97%) create mode 120000 Sources/TunnelKitLZO/include/Errors.h create mode 120000 Sources/TunnelKitLZO/include/lzo/lzoconf.h create mode 120000 Sources/TunnelKitLZO/include/lzo/lzodefs.h rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/COPYING (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/Makefile (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/README.LZO (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/lzoconf.h (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/lzodefs.h (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/minilzo.c (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/minilzo.h (100%) rename {TunnelKit/Sources/Extra/LZO => Sources/TunnelKitLZO}/lib/testmini.c (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/MockVPNProvider.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/NetworkExtensionLocator.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/NetworkExtensionVPNConfiguration.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/NetworkExtensionVPNProvider.swift (98%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/VPN.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/VPNConfiguration.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/VPNProvider.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/VPNProviderIPC.swift (100%) rename {TunnelKit/Sources/Manager => Sources/TunnelKitManager}/VPNStatus.swift (100%) rename {TunnelKit/Sources/Protocols/Native => Sources/TunnelKitNative}/NativeProvider.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/AppExtension/ConnectionStrategy.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/AppExtension/NETCPLink.swift (97%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/AppExtension/NEUDPLink.swift (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/AppExtension/OpenVPNTunnelProvider+Configuration.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/AppExtension/OpenVPNTunnelProvider+Interaction.swift (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/AppExtension/OpenVPNTunnelProvider.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/Authenticator.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/CompressionAlgorithm.swift (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/CompressionFraming.swift (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/Configuration.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/ConfigurationParser.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/ControlChannel.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/ControlChannelSerializer.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/CoreConfiguration+OpenVPN.swift (97%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/CryptoContainer.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/EncryptionBridge.swift (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/OpenVPN.swift (95%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/OpenVPNError.swift (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/OpenVPNProvider.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/OpenVPNSession+PIA.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/OpenVPNSession.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/Packet.swift (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/ProtocolMacros.swift (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/PushReply.swift (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/SessionKey.swift (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/StaticKey.swift (99%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPN}/TLSWrap.swift (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/ControlPacket.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/CryptoAEAD.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/CryptoBox.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/CryptoCBC.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/CryptoCTR.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/DataPath.m (98%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/MSS.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/PacketMacros.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/PacketStream.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/ReplayProtector.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC}/TLSBox.m (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CompressionAlgorithmNative.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CompressionFramingNative.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/ControlPacket.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/Crypto.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CryptoAEAD.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CryptoBox.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CryptoCBC.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CryptoCTR.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/CryptoMacros.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/DataPath.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/DataPathCrypto.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/MSS.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/PacketMacros.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/PacketStream.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/ReplayProtector.h (100%) rename {TunnelKit/Sources/Protocols/OpenVPN => Sources/TunnelKitOpenVPNObjC/include}/TLSBox.h (100%) rename {TunnelKit/Tests/Core => Tests/TunnelKitCoreTests}/DataManipulationTests.swift (99%) rename {TunnelKit/Tests/Core => Tests/TunnelKitCoreTests}/RandomTests.swift (98%) rename {TunnelKit/Tests/Core => Tests/TunnelKitCoreTests}/RawPerformanceTests.swift (99%) rename {TunnelKit/Tests/Core => Tests/TunnelKitCoreTests}/RoutingTests.swift (99%) rename {TunnelKit/Tests/Core => Tests/TunnelKitCoreTests}/TestUtils+Core.swift (92%) rename {TunnelKit/Tests/LZO => Tests/TunnelKitLZOTests}/CompressionTests.swift (91%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/AppExtensionTests.swift (98%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/ConfigurationParserTests.swift (97%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/ControlChannelTests.swift (98%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/DataPathEncryptionTests.swift (98%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/DataPathPerformanceTests.swift (97%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/EncryptionPerformanceTests.swift (97%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/EncryptionTests.swift (95%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/LinkTests.swift (98%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/PacketTests.swift (97%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/PushTests.swift (99%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/pia-2048.pem (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/pia-hungary.ovpn (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/tunnelbear.crt (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/tunnelbear.enc.1.key (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/tunnelbear.enc.1.ovpn (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/tunnelbear.enc.8.key (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/tunnelbear.enc.8.ovpn (100%) rename {TunnelKit/Tests => Tests/TunnelKitOpenVPNTests/Resources}/tunnelbear.key (100%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/StaticKeyTests.swift (98%) rename {TunnelKit/Tests/OpenVPN => Tests/TunnelKitOpenVPNTests}/TestUtils+OpenVPN.swift (97%) delete mode 100644 TunnelKit.podspec delete mode 100644 TunnelKit.xcodeproj/project.pbxproj delete mode 100644 TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-iOS.xcscheme delete mode 100644 TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-macOS.xcscheme delete mode 100644 TunnelKit.xcworkspace/contents.xcworkspacedata delete mode 100644 TunnelKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 TunnelKit/Info.plist delete mode 100644 TunnelKit/Sources/Core/DNS.m delete mode 100644 TunnelKit/Sources/Core/module.modulemap delete mode 100644 TunnelKit/Sources/Protocols/OpenVPN/module.modulemap delete mode 100644 TunnelKit/Tests/Core/DNSTests.swift delete mode 100644 TunnelKit/Tests/Info.plist delete mode 100755 ci/pod-lint.sh delete mode 100755 ci/pod-push.sh delete mode 100755 ci/set-version.sh diff --git a/.gitignore b/.gitignore index 8d56458..833a813 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ Pods docs build +.swiftpm +.build diff --git a/.jazzy.yaml b/.jazzy.yaml index 0c946f3..d898e0d 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -5,14 +5,6 @@ author_url: "https://github.com/passepartoutvpn/tunnelkit" theme: fullwidth -xcodebuild_arguments: - - "-workspace" - - "TunnelKit.xcworkspace" - - "-scheme" - - "TunnelKit-iOS" - - "-sdk" - - "iphoneos" - custom_categories: - name: Core children: diff --git a/TunnelKit/Demo/Configuration.swift b/Demo/Demo/Configuration.swift similarity index 99% rename from TunnelKit/Demo/Configuration.swift rename to Demo/Demo/Configuration.swift index 207ee99..558a008 100644 --- a/TunnelKit/Demo/Configuration.swift +++ b/Demo/Demo/Configuration.swift @@ -24,7 +24,8 @@ // import Foundation -import TunnelKit +import TunnelKitCore +import TunnelKitOpenVPN struct Configuration { static let ca = OpenVPN.CryptoContainer(pem: """ diff --git a/TunnelKit/Demo/DemoTunnel.plist b/Demo/Demo/DemoTunnel.plist similarity index 100% rename from TunnelKit/Demo/DemoTunnel.plist rename to Demo/Demo/DemoTunnel.plist diff --git a/TunnelKit/Demo/PacketTunnelProvider.swift b/Demo/Demo/PacketTunnelProvider.swift similarity index 97% rename from TunnelKit/Demo/PacketTunnelProvider.swift rename to Demo/Demo/PacketTunnelProvider.swift index 3d644c2..f0c1cf0 100644 --- a/TunnelKit/Demo/PacketTunnelProvider.swift +++ b/Demo/Demo/PacketTunnelProvider.swift @@ -23,7 +23,7 @@ // along with TunnelKit. If not, see . // -import TunnelKit +import TunnelKitOpenVPN class PacketTunnelProvider: OpenVPNTunnelProvider { } diff --git a/TunnelKit/Demo/iOS/AppDelegate.swift b/Demo/Demo/iOS/AppDelegate.swift similarity index 100% rename from TunnelKit/Demo/iOS/AppDelegate.swift rename to Demo/Demo/iOS/AppDelegate.swift diff --git a/TunnelKit/Demo/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/Demo/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from TunnelKit/Demo/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demo/Demo/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Demo/Demo/iOS/Assets.xcassets/Contents.json b/Demo/Demo/iOS/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Demo/Demo/iOS/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/TunnelKit/Demo/iOS/Base.lproj/LaunchScreen.storyboard b/Demo/Demo/iOS/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from TunnelKit/Demo/iOS/Base.lproj/LaunchScreen.storyboard rename to Demo/Demo/iOS/Base.lproj/LaunchScreen.storyboard diff --git a/TunnelKit/Demo/iOS/Base.lproj/Main.storyboard b/Demo/Demo/iOS/Base.lproj/Main.storyboard similarity index 100% rename from TunnelKit/Demo/iOS/Base.lproj/Main.storyboard rename to Demo/Demo/iOS/Base.lproj/Main.storyboard diff --git a/TunnelKit/Demo/iOS/Demo.entitlements b/Demo/Demo/iOS/Demo.entitlements similarity index 100% rename from TunnelKit/Demo/iOS/Demo.entitlements rename to Demo/Demo/iOS/Demo.entitlements diff --git a/TunnelKit/Demo/iOS/Demo.plist b/Demo/Demo/iOS/Demo.plist similarity index 100% rename from TunnelKit/Demo/iOS/Demo.plist rename to Demo/Demo/iOS/Demo.plist diff --git a/TunnelKit/Demo/iOS/DemoTunnel.entitlements b/Demo/Demo/iOS/DemoTunnel.entitlements similarity index 100% rename from TunnelKit/Demo/iOS/DemoTunnel.entitlements rename to Demo/Demo/iOS/DemoTunnel.entitlements diff --git a/TunnelKit/Demo/iOS/ViewController.swift b/Demo/Demo/iOS/ViewController.swift similarity index 98% rename from TunnelKit/Demo/iOS/ViewController.swift rename to Demo/Demo/iOS/ViewController.swift index 4708def..d51ae75 100644 --- a/TunnelKit/Demo/iOS/ViewController.swift +++ b/Demo/Demo/iOS/ViewController.swift @@ -24,7 +24,10 @@ // import UIKit -import TunnelKit +import TunnelKitCore +import TunnelKitAppExtension +import TunnelKitManager +import TunnelKitOpenVPN private let appGroup = "group.com.algoritmico.TunnelKit.Demo" diff --git a/TunnelKit/Demo/macOS/AppDelegate.swift b/Demo/Demo/macOS/AppDelegate.swift similarity index 100% rename from TunnelKit/Demo/macOS/AppDelegate.swift rename to Demo/Demo/macOS/AppDelegate.swift diff --git a/TunnelKit/Demo/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/Demo/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from TunnelKit/Demo/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demo/Demo/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/TunnelKit/Demo/macOS/Base.lproj/Main.storyboard b/Demo/Demo/macOS/Base.lproj/Main.storyboard similarity index 100% rename from TunnelKit/Demo/macOS/Base.lproj/Main.storyboard rename to Demo/Demo/macOS/Base.lproj/Main.storyboard diff --git a/TunnelKit/Demo/macOS/Demo.entitlements b/Demo/Demo/macOS/Demo.entitlements similarity index 100% rename from TunnelKit/Demo/macOS/Demo.entitlements rename to Demo/Demo/macOS/Demo.entitlements diff --git a/TunnelKit/Demo/macOS/Demo.plist b/Demo/Demo/macOS/Demo.plist similarity index 100% rename from TunnelKit/Demo/macOS/Demo.plist rename to Demo/Demo/macOS/Demo.plist diff --git a/TunnelKit/Demo/macOS/DemoTunnel.entitlements b/Demo/Demo/macOS/DemoTunnel.entitlements similarity index 100% rename from TunnelKit/Demo/macOS/DemoTunnel.entitlements rename to Demo/Demo/macOS/DemoTunnel.entitlements diff --git a/TunnelKit/Demo/macOS/ViewController.swift b/Demo/Demo/macOS/ViewController.swift similarity index 98% rename from TunnelKit/Demo/macOS/ViewController.swift rename to Demo/Demo/macOS/ViewController.swift index 3698a00..5ef1c91 100644 --- a/TunnelKit/Demo/macOS/ViewController.swift +++ b/Demo/Demo/macOS/ViewController.swift @@ -24,7 +24,10 @@ // import Cocoa -import TunnelKit +import TunnelKitCore +import TunnelKitAppExtension +import TunnelKitManager +import TunnelKitOpenVPN private let appGroup = "DTDYD63ZX9.group.com.algoritmico.TunnelKit.Demo" diff --git a/TunnelKit/Host/AppDelegate.swift b/Demo/Host/AppDelegate.swift similarity index 100% rename from TunnelKit/Host/AppDelegate.swift rename to Demo/Host/AppDelegate.swift diff --git a/TunnelKit/Host/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/Host/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from TunnelKit/Host/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Demo/Host/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/TunnelKit/Host/Base.lproj/LaunchScreen.storyboard b/Demo/Host/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from TunnelKit/Host/Base.lproj/LaunchScreen.storyboard rename to Demo/Host/Base.lproj/LaunchScreen.storyboard diff --git a/TunnelKit/Host/Base.lproj/Main.storyboard b/Demo/Host/Base.lproj/Main.storyboard similarity index 100% rename from TunnelKit/Host/Base.lproj/Main.storyboard rename to Demo/Host/Base.lproj/Main.storyboard diff --git a/TunnelKit/Host/Host.entitlements b/Demo/Host/Host.entitlements similarity index 100% rename from TunnelKit/Host/Host.entitlements rename to Demo/Host/Host.entitlements diff --git a/TunnelKit/Host/Info.plist b/Demo/Host/Info.plist similarity index 100% rename from TunnelKit/Host/Info.plist rename to Demo/Host/Info.plist diff --git a/TunnelKit/Host/ViewController.swift b/Demo/Host/ViewController.swift similarity index 100% rename from TunnelKit/Host/ViewController.swift rename to Demo/Host/ViewController.swift diff --git a/Demo/TunnelKit.xcodeproj/project.pbxproj b/Demo/TunnelKit.xcodeproj/project.pbxproj new file mode 100644 index 0000000..d329fb3 --- /dev/null +++ b/Demo/TunnelKit.xcodeproj/project.pbxproj @@ -0,0 +1,1054 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 0E05418725A2334500EFC5FF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05414B25A231D500EFC5FF /* AppDelegate.swift */; }; + 0E05418825A2334500EFC5FF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05414425A231D500EFC5FF /* ViewController.swift */; }; + 0E05418925A2334500EFC5FF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E05414525A231D500EFC5FF /* Assets.xcassets */; }; + 0E05418A25A2334900EFC5FF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E05414825A231D500EFC5FF /* Main.storyboard */; }; + 0E05418B25A2334900EFC5FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E05414625A231D500EFC5FF /* LaunchScreen.storyboard */; }; + 0E0541A125A2343500EFC5FF /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */; }; + 0E0541A925A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 0E0541D125A2354500EFC5FF /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */; }; + 0E0541D825A2355000EFC5FF /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413425A231D500EFC5FF /* Configuration.swift */; }; + 0E05425825A2392E00EFC5FF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05414125A231D500EFC5FF /* AppDelegate.swift */; }; + 0E05425925A2392E00EFC5FF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413C25A231D500EFC5FF /* ViewController.swift */; }; + 0E05426125A2393300EFC5FF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E05413D25A231D500EFC5FF /* Assets.xcassets */; }; + 0E05426925A2393B00EFC5FF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E05413E25A231D500EFC5FF /* Main.storyboard */; }; + 0E05427825A239C600EFC5FF /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */; }; + 0E05428025A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 0E0542B925A23A8100EFC5FF /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413425A231D500EFC5FF /* Configuration.swift */; }; + 0E0542C225A23A8400EFC5FF /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */; }; + 0E1108AC1F77B9F900A92462 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1108AB1F77B9F900A92462 /* AppDelegate.swift */; }; + 0E1108AE1F77B9F900A92462 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1108AD1F77B9F900A92462 /* ViewController.swift */; }; + 0E1108B11F77B9F900A92462 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E1108AF1F77B9F900A92462 /* Main.storyboard */; }; + 0E1108B31F77B9F900A92462 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E1108B21F77B9F900A92462 /* Assets.xcassets */; }; + 0E1108B61F77B9F900A92462 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E1108B41F77B9F900A92462 /* LaunchScreen.storyboard */; }; + 0EFD5B312727250500C7D5FD /* TunnelKitOpenVPN in Frameworks */ = {isa = PBXBuildFile; productRef = 0EFD5B302727250500C7D5FD /* TunnelKitOpenVPN */; }; + 0EFD5B332727250B00C7D5FD /* TunnelKitOpenVPN in Frameworks */ = {isa = PBXBuildFile; productRef = 0EFD5B322727250B00C7D5FD /* TunnelKitOpenVPN */; }; + 0EFD5B352727250E00C7D5FD /* TunnelKitOpenVPN in Frameworks */ = {isa = PBXBuildFile; productRef = 0EFD5B342727250E00C7D5FD /* TunnelKitOpenVPN */; }; + 0EFD5B372727251200C7D5FD /* TunnelKitOpenVPN in Frameworks */ = {isa = PBXBuildFile; productRef = 0EFD5B362727251200C7D5FD /* TunnelKitOpenVPN */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0E0541A725A2343500EFC5FF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E05419E25A2343500EFC5FF; + remoteInfo = Tunnel; + }; + 0E05427E25A239C600EFC5FF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E05427625A239C600EFC5FF; + remoteInfo = Tunnel; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 0E0541AD25A2343500EFC5FF /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 0E0541A925A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05428425A239C600EFC5FF /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 0E05428025A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05438525A240E400EFC5FF /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05438825A240E900EFC5FF /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0ECAF84C246697DA00D8266A /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0E05413025A231D500EFC5FF /* DemoTunnel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DemoTunnel.entitlements; sourceTree = ""; }; + 0E05413225A231D500EFC5FF /* DemoTunnel.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = DemoTunnel.plist; sourceTree = ""; }; + 0E05413425A231D500EFC5FF /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; + 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = ""; }; + 0E05413925A231D500EFC5FF /* DemoTunnel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DemoTunnel.entitlements; sourceTree = ""; }; + 0E05413C25A231D500EFC5FF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 0E05413D25A231D500EFC5FF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0E05413F25A231D500EFC5FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 0E05414025A231D500EFC5FF /* Demo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Demo.entitlements; sourceTree = ""; }; + 0E05414125A231D500EFC5FF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 0E05414225A231D500EFC5FF /* Demo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Demo.plist; sourceTree = ""; }; + 0E05414425A231D500EFC5FF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 0E05414525A231D500EFC5FF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0E05414725A231D500EFC5FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 0E05414925A231D500EFC5FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 0E05414A25A231D500EFC5FF /* Demo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Demo.entitlements; sourceTree = ""; }; + 0E05414B25A231D500EFC5FF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 0E05414C25A231D500EFC5FF /* Demo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Demo.plist; sourceTree = ""; }; + 0E05416925A232FD00EFC5FF /* TunnelKitDemo-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "TunnelKitDemo-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "TunnelKitDemoTunnel-iOS.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; + 0E05422C25A236EB00EFC5FF /* TunnelKitDemo-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "TunnelKitDemo-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "TunnelKitDemoTunnel-macOS.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E1108A91F77B9F900A92462 /* TunnelKitHost.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TunnelKitHost.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E1108AB1F77B9F900A92462 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 0E1108AD1F77B9F900A92462 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 0E1108B01F77B9F900A92462 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 0E1108B21F77B9F900A92462 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0E1108B51F77B9F900A92462 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 0E1108B71F77B9F900A92462 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0E26B05627272767008FB1E7 /* tunnelkit */ = {isa = PBXFileReference; lastKnownFileType = folder; name = tunnelkit; path = ..; sourceTree = ""; }; + 0E411B9F2271FA3300E0852C /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libresolv.tbd; sourceTree = DEVELOPER_DIR; }; + 0E411BA12271FA3C00E0852C /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; + 0E85A25B202CCA3D0059E9F9 /* Host.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Host.entitlements; sourceTree = ""; }; + 44612F27B9EF890AF8B926DB /* Pods_ios_TunnelKit_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKit_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 488FA71CA2DC38D2FDF7D1D8 /* Pods_ios_TunnelKitDemoTunnel_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitDemoTunnel_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4EF702DD650A65FCBA51506A /* Pods_macos_TunnelKit_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKit_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 501B04C95D9A457FFA483C3B /* Pods_macos_TunnelKitDemo_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKitDemo_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A49801900FA52CE67047623B /* Pods_macos_TunnelKitDemoTunnel_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKitDemoTunnel_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B24169970F957D36C9D0765C /* Pods_ios_TunnelKitDemo_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitDemo_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C34F78A0C56932A2127E6C81 /* Pods_ios_TunnelKitTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D383BA02D6881FDBEF55562A /* Pods_macos_TunnelKitTests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKitTests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D3B8B90F61D2F5537A5C0691 /* Pods_ios_TunnelKitHost.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitHost.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0E05416625A232FD00EFC5FF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0EFD5B332727250B00C7D5FD /* TunnelKitOpenVPN in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05419C25A2343500EFC5FF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0EFD5B352727250E00C7D5FD /* TunnelKitOpenVPN in Frameworks */, + 0E0541A125A2343500EFC5FF /* NetworkExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05422925A236EB00EFC5FF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0EFD5B312727250500C7D5FD /* TunnelKitOpenVPN in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05427425A239C600EFC5FF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0EFD5B372727251200C7D5FD /* TunnelKitOpenVPN in Frameworks */, + 0E05427825A239C600EFC5FF /* NetworkExtension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E1108A61F77B9F900A92462 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0E05412B25A231D500EFC5FF /* Demo */ = { + isa = PBXGroup; + children = ( + 0E05414325A231D500EFC5FF /* iOS */, + 0E05413B25A231D500EFC5FF /* macOS */, + 0E05413225A231D500EFC5FF /* DemoTunnel.plist */, + 0E05413425A231D500EFC5FF /* Configuration.swift */, + 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */, + ); + path = Demo; + sourceTree = ""; + }; + 0E05413B25A231D500EFC5FF /* macOS */ = { + isa = PBXGroup; + children = ( + 0E05414025A231D500EFC5FF /* Demo.entitlements */, + 0E05413025A231D500EFC5FF /* DemoTunnel.entitlements */, + 0E05414225A231D500EFC5FF /* Demo.plist */, + 0E05414125A231D500EFC5FF /* AppDelegate.swift */, + 0E05413C25A231D500EFC5FF /* ViewController.swift */, + 0E05413D25A231D500EFC5FF /* Assets.xcassets */, + 0E05413E25A231D500EFC5FF /* Main.storyboard */, + ); + path = macOS; + sourceTree = ""; + }; + 0E05414325A231D500EFC5FF /* iOS */ = { + isa = PBXGroup; + children = ( + 0E05414A25A231D500EFC5FF /* Demo.entitlements */, + 0E05413925A231D500EFC5FF /* DemoTunnel.entitlements */, + 0E05414C25A231D500EFC5FF /* Demo.plist */, + 0E05414B25A231D500EFC5FF /* AppDelegate.swift */, + 0E05414425A231D500EFC5FF /* ViewController.swift */, + 0E05414525A231D500EFC5FF /* Assets.xcassets */, + 0E05414625A231D500EFC5FF /* LaunchScreen.storyboard */, + 0E05414825A231D500EFC5FF /* Main.storyboard */, + ); + path = iOS; + sourceTree = ""; + }; + 0E1108AA1F77B9F900A92462 /* Host */ = { + isa = PBXGroup; + children = ( + 0E85A25B202CCA3D0059E9F9 /* Host.entitlements */, + 0E1108AB1F77B9F900A92462 /* AppDelegate.swift */, + 0E1108AD1F77B9F900A92462 /* ViewController.swift */, + 0E1108AF1F77B9F900A92462 /* Main.storyboard */, + 0E1108B21F77B9F900A92462 /* Assets.xcassets */, + 0E1108B41F77B9F900A92462 /* LaunchScreen.storyboard */, + 0E1108B71F77B9F900A92462 /* Info.plist */, + ); + path = Host; + sourceTree = ""; + }; + 0E17D7EF1F730D9F009EE129 = { + isa = PBXGroup; + children = ( + 0EFD5B28272723F000C7D5FD /* Packages */, + 0E05412B25A231D500EFC5FF /* Demo */, + 0E1108AA1F77B9F900A92462 /* Host */, + 0E17D7FA1F730D9F009EE129 /* Products */, + 1B27D1F0B446D5907FAF40E1 /* Frameworks */, + ); + sourceTree = ""; + }; + 0E17D7FA1F730D9F009EE129 /* Products */ = { + isa = PBXGroup; + children = ( + 0E1108A91F77B9F900A92462 /* TunnelKitHost.app */, + 0E05416925A232FD00EFC5FF /* TunnelKitDemo-iOS.app */, + 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */, + 0E05422C25A236EB00EFC5FF /* TunnelKitDemo-macOS.app */, + 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */, + ); + name = Products; + sourceTree = ""; + }; + 0EFD5B28272723F000C7D5FD /* Packages */ = { + isa = PBXGroup; + children = ( + 0E26B05627272767008FB1E7 /* tunnelkit */, + ); + name = Packages; + sourceTree = ""; + }; + 1B27D1F0B446D5907FAF40E1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0E411B9F2271FA3300E0852C /* libresolv.tbd */, + 0E411BA12271FA3C00E0852C /* libresolv.tbd */, + 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */, + 44612F27B9EF890AF8B926DB /* Pods_ios_TunnelKit_iOS.framework */, + D3B8B90F61D2F5537A5C0691 /* Pods_ios_TunnelKitHost.framework */, + C34F78A0C56932A2127E6C81 /* Pods_ios_TunnelKitTests_iOS.framework */, + 4EF702DD650A65FCBA51506A /* Pods_macos_TunnelKit_macOS.framework */, + D383BA02D6881FDBEF55562A /* Pods_macos_TunnelKitTests_macOS.framework */, + B24169970F957D36C9D0765C /* Pods_ios_TunnelKitDemo_iOS.framework */, + 488FA71CA2DC38D2FDF7D1D8 /* Pods_ios_TunnelKitDemoTunnel_iOS.framework */, + 501B04C95D9A457FFA483C3B /* Pods_macos_TunnelKitDemo_macOS.framework */, + A49801900FA52CE67047623B /* Pods_macos_TunnelKitDemoTunnel_macOS.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 0E05416825A232FD00EFC5FF /* TunnelKitDemo-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E05417A25A2330100EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-iOS" */; + buildPhases = ( + 0E05416525A232FD00EFC5FF /* Sources */, + 0E05416625A232FD00EFC5FF /* Frameworks */, + 0E05416725A232FD00EFC5FF /* Resources */, + 0E0541AD25A2343500EFC5FF /* Embed App Extensions */, + 0E05438525A240E400EFC5FF /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0E0541A825A2343500EFC5FF /* PBXTargetDependency */, + ); + name = "TunnelKitDemo-iOS"; + packageProductDependencies = ( + 0EFD5B322727250B00C7D5FD /* TunnelKitOpenVPN */, + ); + productName = Demo; + productReference = 0E05416925A232FD00EFC5FF /* TunnelKitDemo-iOS.app */; + productType = "com.apple.product-type.application"; + }; + 0E05419E25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E0541AA25A2343500EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-iOS" */; + buildPhases = ( + 0E05419B25A2343500EFC5FF /* Sources */, + 0E05419C25A2343500EFC5FF /* Frameworks */, + 0E05419D25A2343500EFC5FF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "TunnelKitDemoTunnel-iOS"; + packageProductDependencies = ( + 0EFD5B342727250E00C7D5FD /* TunnelKitOpenVPN */, + ); + productName = Tunnel; + productReference = 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 0E05422B25A236EB00EFC5FF /* TunnelKitDemo-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E05423B25A236EE00EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-macOS" */; + buildPhases = ( + 0E05422825A236EB00EFC5FF /* Sources */, + 0E05422925A236EB00EFC5FF /* Frameworks */, + 0E05422A25A236EB00EFC5FF /* Resources */, + 0E05428425A239C600EFC5FF /* Embed App Extensions */, + 0E05438825A240E900EFC5FF /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0E05427F25A239C600EFC5FF /* PBXTargetDependency */, + ); + name = "TunnelKitDemo-macOS"; + packageProductDependencies = ( + 0EFD5B302727250500C7D5FD /* TunnelKitOpenVPN */, + ); + productName = Demo; + productReference = 0E05422C25A236EB00EFC5FF /* TunnelKitDemo-macOS.app */; + productType = "com.apple.product-type.application"; + }; + 0E05427625A239C600EFC5FF /* TunnelKitDemoTunnel-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E05428125A239C600EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-macOS" */; + buildPhases = ( + 0E05427325A239C600EFC5FF /* Sources */, + 0E05427425A239C600EFC5FF /* Frameworks */, + 0E05427525A239C600EFC5FF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "TunnelKitDemoTunnel-macOS"; + packageProductDependencies = ( + 0EFD5B362727251200C7D5FD /* TunnelKitOpenVPN */, + ); + productName = Tunnel; + productReference = 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 0E1108A81F77B9F900A92462 /* TunnelKitHost */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E1108B81F77B9F900A92462 /* Build configuration list for PBXNativeTarget "TunnelKitHost" */; + buildPhases = ( + 0E1108A51F77B9F900A92462 /* Sources */, + 0E1108A61F77B9F900A92462 /* Frameworks */, + 0E1108A71F77B9F900A92462 /* Resources */, + 0ECAF84C246697DA00D8266A /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = TunnelKitHost; + productName = PIATunnelHost; + productReference = 0E1108A91F77B9F900A92462 /* TunnelKitHost.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0E17D7F01F730D9F009EE129 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1230; + LastUpgradeCheck = 1230; + ORGANIZATIONNAME = "Davide De Rosa"; + TargetAttributes = { + 0E05416825A232FD00EFC5FF = { + CreatedOnToolsVersion = 12.3; + ProvisioningStyle = Automatic; + }; + 0E05419E25A2343500EFC5FF = { + CreatedOnToolsVersion = 12.3; + ProvisioningStyle = Automatic; + }; + 0E05422B25A236EB00EFC5FF = { + CreatedOnToolsVersion = 12.3; + ProvisioningStyle = Automatic; + }; + 0E05427625A239C600EFC5FF = { + CreatedOnToolsVersion = 12.3; + ProvisioningStyle = Automatic; + }; + 0E1108A81F77B9F900A92462 = { + CreatedOnToolsVersion = 9.0; + LastSwiftMigration = 1020; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.ApplicationGroups.iOS = { + enabled = 1; + }; + com.apple.Keychain = { + enabled = 1; + }; + }; + }; + }; + }; + buildConfigurationList = 0E17D7F31F730D9F009EE129 /* Build configuration list for PBXProject "TunnelKit" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 0E17D7EF1F730D9F009EE129; + productRefGroup = 0E17D7FA1F730D9F009EE129 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 0E1108A81F77B9F900A92462 /* TunnelKitHost */, + 0E05416825A232FD00EFC5FF /* TunnelKitDemo-iOS */, + 0E05422B25A236EB00EFC5FF /* TunnelKitDemo-macOS */, + 0E05419E25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS */, + 0E05427625A239C600EFC5FF /* TunnelKitDemoTunnel-macOS */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0E05416725A232FD00EFC5FF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E05418A25A2334900EFC5FF /* Main.storyboard in Resources */, + 0E05418B25A2334900EFC5FF /* LaunchScreen.storyboard in Resources */, + 0E05418925A2334500EFC5FF /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05419D25A2343500EFC5FF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05422A25A236EB00EFC5FF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E05426125A2393300EFC5FF /* Assets.xcassets in Resources */, + 0E05426925A2393B00EFC5FF /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05427525A239C600EFC5FF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E1108A71F77B9F900A92462 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E1108B61F77B9F900A92462 /* LaunchScreen.storyboard in Resources */, + 0E1108B31F77B9F900A92462 /* Assets.xcassets in Resources */, + 0E1108B11F77B9F900A92462 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0E05416525A232FD00EFC5FF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E0541D825A2355000EFC5FF /* Configuration.swift in Sources */, + 0E05418825A2334500EFC5FF /* ViewController.swift in Sources */, + 0E05418725A2334500EFC5FF /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05419B25A2343500EFC5FF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E0541D125A2354500EFC5FF /* PacketTunnelProvider.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05422825A236EB00EFC5FF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E0542B925A23A8100EFC5FF /* Configuration.swift in Sources */, + 0E05425825A2392E00EFC5FF /* AppDelegate.swift in Sources */, + 0E05425925A2392E00EFC5FF /* ViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E05427325A239C600EFC5FF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E0542C225A23A8400EFC5FF /* PacketTunnelProvider.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E1108A51F77B9F900A92462 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E1108AE1F77B9F900A92462 /* ViewController.swift in Sources */, + 0E1108AC1F77B9F900A92462 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0E0541A825A2343500EFC5FF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E05419E25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS */; + targetProxy = 0E0541A725A2343500EFC5FF /* PBXContainerItemProxy */; + }; + 0E05427F25A239C600EFC5FF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E05427625A239C600EFC5FF /* TunnelKitDemoTunnel-macOS */; + targetProxy = 0E05427E25A239C600EFC5FF /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 0E05413E25A231D500EFC5FF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E05413F25A231D500EFC5FF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 0E05414625A231D500EFC5FF /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E05414725A231D500EFC5FF /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + 0E05414825A231D500EFC5FF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E05414925A231D500EFC5FF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 0E1108AF1F77B9F900A92462 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E1108B01F77B9F900A92462 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 0E1108B41F77B9F900A92462 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E1108B51F77B9F900A92462 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 0E05417B25A2330100EFC5FF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/iOS/Demo.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + INFOPLIST_FILE = "$(SRCROOT)/Demo/iOS/Demo.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 0E05417C25A2330100EFC5FF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/iOS/Demo.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + INFOPLIST_FILE = "$(SRCROOT)/Demo/iOS/Demo.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 0E0541AB25A2343500EFC5FF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/iOS/DemoTunnel.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + INFOPLIST_FILE = "$(SRCROOT)/Demo/DemoTunnel.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo.Tunnel; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 0E0541AC25A2343500EFC5FF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/iOS/DemoTunnel.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + INFOPLIST_FILE = "$(SRCROOT)/Demo/DemoTunnel.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo.Tunnel; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 0E05423925A236EE00EFC5FF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/macOS/Demo.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = "$(SRCROOT)/Demo/macOS/Demo.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0E05423A25A236EE00EFC5FF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/macOS/Demo.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = "$(SRCROOT)/Demo/macOS/Demo.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 0E05428225A239C600EFC5FF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/macOS/DemoTunnel.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = "$(SRCROOT)/Demo/DemoTunnel.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo.Tunnel; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0E05428325A239C600EFC5FF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = YES; + CODE_SIGN_ENTITLEMENTS = Demo/macOS/DemoTunnel.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = "$(SRCROOT)/Demo/DemoTunnel.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo.Tunnel; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 0E1108B91F77B9F900A92462 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Host/Host.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + INFOPLIST_FILE = "$(SRCROOT)/Host/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKitHost; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 0E1108BA1F77B9F900A92462 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_ENTITLEMENTS = Host/Host.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = DTDYD63ZX9; + INFOPLIST_FILE = "$(SRCROOT)/Host/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKitHost; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 0E17D7FF1F730D9F009EE129 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 902; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 0E17D8001F730D9F009EE129 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 902; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 4.2; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0E05417A25A2330100EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E05417B25A2330100EFC5FF /* Debug */, + 0E05417C25A2330100EFC5FF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E0541AA25A2343500EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E0541AB25A2343500EFC5FF /* Debug */, + 0E0541AC25A2343500EFC5FF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E05423B25A236EE00EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E05423925A236EE00EFC5FF /* Debug */, + 0E05423A25A236EE00EFC5FF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E05428125A239C600EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E05428225A239C600EFC5FF /* Debug */, + 0E05428325A239C600EFC5FF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E1108B81F77B9F900A92462 /* Build configuration list for PBXNativeTarget "TunnelKitHost" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E1108B91F77B9F900A92462 /* Debug */, + 0E1108BA1F77B9F900A92462 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E17D7F31F730D9F009EE129 /* Build configuration list for PBXProject "TunnelKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E17D7FF1F730D9F009EE129 /* Debug */, + 0E17D8001F730D9F009EE129 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCSwiftPackageProductDependency section */ + 0EFD5B302727250500C7D5FD /* TunnelKitOpenVPN */ = { + isa = XCSwiftPackageProductDependency; + productName = TunnelKitOpenVPN; + }; + 0EFD5B322727250B00C7D5FD /* TunnelKitOpenVPN */ = { + isa = XCSwiftPackageProductDependency; + productName = TunnelKitOpenVPN; + }; + 0EFD5B342727250E00C7D5FD /* TunnelKitOpenVPN */ = { + isa = XCSwiftPackageProductDependency; + productName = TunnelKitOpenVPN; + }; + 0EFD5B362727251200C7D5FD /* TunnelKitOpenVPN */ = { + isa = XCSwiftPackageProductDependency; + productName = TunnelKitOpenVPN; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 0E17D7F01F730D9F009EE129 /* Project object */; +} diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-iOS.xcscheme b/Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-iOS.xcscheme similarity index 100% rename from TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-iOS.xcscheme rename to Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-iOS.xcscheme diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-macOS.xcscheme b/Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-macOS.xcscheme similarity index 100% rename from TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-macOS.xcscheme rename to Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemo-macOS.xcscheme diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-iOS.xcscheme b/Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-iOS.xcscheme similarity index 100% rename from TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-iOS.xcscheme rename to Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-iOS.xcscheme diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-macOS.xcscheme b/Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-macOS.xcscheme similarity index 100% rename from TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-macOS.xcscheme rename to Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitDemoTunnel-macOS.xcscheme diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitHost.xcscheme b/Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitHost.xcscheme similarity index 100% rename from TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitHost.xcscheme rename to Demo/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKitHost.xcscheme diff --git a/Gemfile b/Gemfile deleted file mode 100644 index d1bf7c6..0000000 --- a/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem "cocoapods" diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index b96f435..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,97 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.4) - rexml - activesupport (6.1.4.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) - atomos (0.1.3) - claide (1.0.3) - cocoapods (1.11.2) - addressable (~> 2.8) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.11.2) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.8.0) - nap (~> 1.0) - ruby-macho (>= 1.0, < 3.0) - xcodeproj (>= 1.21.0, < 2.0) - cocoapods-core (1.11.2) - activesupport (>= 5.0, < 7) - addressable (~> 2.8) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix (~> 4.0) - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.5) - cocoapods-downloader (1.5.1) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.1) - cocoapods-trunk (1.6.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) - colored2 (3.1.2) - concurrent-ruby (1.1.9) - escape (0.0.4) - ethon (0.15.0) - ffi (>= 1.15.0) - ffi (1.15.4) - fourflusher (2.3.1) - fuzzy_match (2.0.4) - gh_inspector (1.1.3) - httpclient (2.8.3) - i18n (1.8.10) - concurrent-ruby (~> 1.0) - json (2.6.0) - minitest (5.14.4) - molinillo (0.8.0) - nanaimo (0.3.0) - nap (1.1.0) - netrc (0.11.0) - public_suffix (4.0.6) - rexml (3.2.5) - ruby-macho (2.5.1) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (2.0.4) - concurrent-ruby (~> 1.0) - xcodeproj (1.21.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (~> 3.2.4) - zeitwerk (2.4.2) - -PLATFORMS - ruby - -DEPENDENCIES - cocoapods - -BUNDLED WITH - 2.2.15 diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 0000000..dca1223 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,25 @@ +{ + "object": { + "pins": [ + { + "package": "openssl-apple", + "repositoryURL": "https://github.com/keeshux/openssl-apple", + "state": { + "branch": null, + "revision": "1889136399ba40e4fc358cfe7fafef7170aac3f7", + "version": "1.1.112" + } + }, + { + "package": "SwiftyBeaver", + "repositoryURL": "https://github.com/SwiftyBeaver/SwiftyBeaver", + "state": { + "branch": null, + "revision": "2c039501d6eeb4d4cd4aec4a8d884ad28862e044", + "version": "1.9.5" + } + } + ] + }, + "version": 1 +} diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..3149f99 --- /dev/null +++ b/Package.swift @@ -0,0 +1,116 @@ +// swift-tools-version:5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "TunnelKit", + platforms: [ + .macOS(.v10_15), .iOS(.v12) + ], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "TunnelKitCore", + targets: ["TunnelKitCore"] + ), + .library( + name: "TunnelKitAppExtension", + targets: ["TunnelKitAppExtension"] + ), + .library( + name: "TunnelKitManager", + targets: ["TunnelKitManager"] + ), + .library( + name: "TunnelKitNative", + targets: ["TunnelKitNative"] + ), + .library( + name: "TunnelKitOpenVPN", + targets: ["TunnelKitOpenVPN"] + ), + .library( + name: "TunnelKitLZO", + targets: ["TunnelKitLZO"] + ) + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + .package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver", from: "1.9.0"), + .package(url: "https://github.com/keeshux/openssl-apple", from: "1.1.100") + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "TunnelKitCore", + dependencies: [ + "InternalUtils", + "TunnelKitCoreObjC", + "SwiftyBeaver"]), + .target( + name: "TunnelKitCoreObjC", + dependencies: []), + .target( + name: "TunnelKitAppExtension", + dependencies: [ + "TunnelKitCore", + "SwiftyBeaver"]), + .target( + name: "TunnelKitManager", + dependencies: [ + "TunnelKitCore"]), + .target( + name: "TunnelKitNative", + dependencies: [ + "TunnelKitCore", + "TunnelKitManager"]), + .target( + name: "TunnelKitOpenVPN", + dependencies: [ + "TunnelKitCore", + "TunnelKitOpenVPNObjC", + "TunnelKitAppExtension", + "TunnelKitManager"]), + .target( + name: "TunnelKitOpenVPNObjC", + dependencies: [ + "TunnelKitCoreObjC", + "openssl-apple"]), + .target( + name: "TunnelKitLZO", + dependencies: [], + exclude: [ + "lib/COPYING", + "lib/Makefile", + "lib/README.LZO" + ]), + .target( + name: "InternalUtils", + dependencies: []), + .testTarget( + name: "TunnelKitCoreTests", + dependencies: [ + "TunnelKitCore", + "TunnelKitCoreObjC" + ]), + .testTarget( + name: "TunnelKitOpenVPNTests", + dependencies: [ + "TunnelKitCoreTests", + "TunnelKitOpenVPN", + "TunnelKitOpenVPNObjC", + "TunnelKitLZO" + ], + resources: [ + .process("Resources") + ]), + .testTarget( + name: "TunnelKitLZOTests", + dependencies: [ + "TunnelKitLZO" + ]), + ] +) diff --git a/Podfile b/Podfile deleted file mode 100644 index 8d984bc..0000000 --- a/Podfile +++ /dev/null @@ -1,41 +0,0 @@ -source 'https://github.com/CocoaPods/Specs.git' -use_frameworks! - -def shared_pods - pod 'SwiftyBeaver' - pod 'OpenSSL-Apple', '~> 1.1.1l.11' -end - -def demo_pods - pod 'SwiftyBeaver' -end - -abstract_target 'ios' do - platform :ios, '12.0' - target 'TunnelKit-iOS' do - shared_pods - end - target 'TunnelKitTests-iOS' do - end - target 'TunnelKitHost' do - end - target 'TunnelKitDemo-iOS' do - demo_pods - end - target 'TunnelKitDemoTunnel-iOS' do - end -end - -abstract_target 'macos' do - platform :osx, '10.15' - target 'TunnelKit-macOS' do - shared_pods - end - target 'TunnelKitTests-macOS' do - end - target 'TunnelKitDemo-macOS' do - demo_pods - end - target 'TunnelKitDemoTunnel-macOS' do - end -end diff --git a/Podfile.lock b/Podfile.lock deleted file mode 100644 index e00bfbf..0000000 --- a/Podfile.lock +++ /dev/null @@ -1,20 +0,0 @@ -PODS: - - OpenSSL-Apple (1.1.1l.11) - - SwiftyBeaver (1.9.5) - -DEPENDENCIES: - - OpenSSL-Apple (~> 1.1.1l.11) - - SwiftyBeaver - -SPEC REPOS: - https://github.com/CocoaPods/Specs.git: - - OpenSSL-Apple - - SwiftyBeaver - -SPEC CHECKSUMS: - OpenSSL-Apple: fb93d9a7ce4529054764ce19bb80947a38aee09b - SwiftyBeaver: 84069991dd5dca07d7069100985badaca7f0ce82 - -PODFILE CHECKSUM: acb440e8c365ee318f02b159fee4a173163fa454 - -COCOAPODS: 1.11.2 diff --git a/TunnelKit/Sources/Core/Data+Manipulation.swift b/Sources/InternalUtils/Data+Manipulation.swift similarity index 87% rename from TunnelKit/Sources/Core/Data+Manipulation.swift rename to Sources/InternalUtils/Data+Manipulation.swift index 0646a7c..81eb47e 100644 --- a/TunnelKit/Sources/Core/Data+Manipulation.swift +++ b/Sources/InternalUtils/Data+Manipulation.swift @@ -39,8 +39,9 @@ import Foundation // hex -> Data conversion code from: http://stackoverflow.com/questions/32231926/nsdata-from-hex-string // Data -> hex conversion code from: http://stackoverflow.com/questions/39075043/how-to-convert-data-to-hex-string-in-swift +/// :nodoc: extension UnicodeScalar { - var hexNibble: UInt8 { + public var hexNibble: UInt8 { let value = self.value if 48 <= value && value <= 57 { return UInt8(value - 48) @@ -55,8 +56,9 @@ extension UnicodeScalar { } } +/// :nodoc: extension Data { - init(hex: String) { + public init(hex: String) { let scalars = hex.unicodeScalars var bytes = Array(repeating: 0, count: (scalars.count + 1) >> 1) for (index, scalar) in scalars.enumerated() { @@ -69,21 +71,22 @@ extension Data { self = Data(bytes) } - func toHex() -> String { + public func toHex() -> String { return map { String(format: "%02hhx", $0) }.joined() } - mutating func zero() { + public mutating func zero() { resetBytes(in: 0.. String? { + public func nullTerminatedString(from: Int) -> String? { var nullOffset: Int? for i in from.. UInt16 { + public func UInt16Value(from: Int) -> UInt16 { var value: UInt16 = 0 for i in 0..<2 { let byte = self[from + i] @@ -169,7 +172,7 @@ extension Data { } // best - func UInt32Value(from: Int) -> UInt32 { + public func UInt32Value(from: Int) -> UInt32 { return subdata(in: from..<(from + 4)).withUnsafeBytes { $0.load(as: UInt32.self) } @@ -188,39 +191,43 @@ extension Data { return value } - func networkUInt16Value(from: Int) -> UInt16 { + public func networkUInt16Value(from: Int) -> UInt16 { return UInt16(bigEndian: subdata(in: from..<(from + 2)).withUnsafeBytes { $0.load(as: UInt16.self) }) } - func networkUInt32Value(from: Int) -> UInt32 { + public func networkUInt32Value(from: Int) -> UInt32 { return UInt32(bigEndian: subdata(in: from..<(from + 4)).withUnsafeBytes { $0.load(as: UInt32.self) }) } } +/// :nodoc: extension Data { - func subdata(offset: Int, count: Int) -> Data { + public func subdata(offset: Int, count: Int) -> Data { return subdata(in: offset..<(offset + count)) } } +/// :nodoc: extension Array where Element == Data { - var flatCount: Int { + public var flatCount: Int { return reduce(0) { $0 + $1.count } } } +/// :nodoc: extension UnsafeRawBufferPointer { - var bytePointer: UnsafePointer { + public var bytePointer: UnsafePointer { return bindMemory(to: Element.self).baseAddress! } } +/// :nodoc: extension UnsafeMutableRawBufferPointer { - var bytePointer: UnsafeMutablePointer { + public var bytePointer: UnsafeMutablePointer { return bindMemory(to: Element.self).baseAddress! } } diff --git a/TunnelKit/Sources/Core/NSRegularExpression+Shortcuts.swift b/Sources/InternalUtils/NSRegularExpression+Shortcuts.swift similarity index 86% rename from TunnelKit/Sources/Core/NSRegularExpression+Shortcuts.swift rename to Sources/InternalUtils/NSRegularExpression+Shortcuts.swift index 51a3c6e..f00ce68 100644 --- a/TunnelKit/Sources/Core/NSRegularExpression+Shortcuts.swift +++ b/Sources/InternalUtils/NSRegularExpression+Shortcuts.swift @@ -25,12 +25,13 @@ import Foundation +/// :nodoc: extension NSRegularExpression { - convenience init(_ pattern: String) { + public convenience init(_ pattern: String) { try! self.init(pattern: pattern, options: []) } - func enumerateComponents(in string: String, using block: ([String]) -> Void) { + public func enumerateComponents(in string: String, using block: ([String]) -> Void) { enumerateMatches(in: string, options: [], range: NSMakeRange(0, string.count)) { (result, flags, stop) in guard let range = result?.range else { return @@ -41,7 +42,7 @@ extension NSRegularExpression { } } - func enumerateArguments(in string: String, using block: ([String]) -> Void) { + public func enumerateArguments(in string: String, using block: ([String]) -> Void) { enumerateComponents(in: string) { (tokens) in var args = tokens args.removeFirst() diff --git a/TunnelKit/Sources/Core/Utils.swift b/Sources/InternalUtils/Utils.swift similarity index 95% rename from TunnelKit/Sources/Core/Utils.swift rename to Sources/InternalUtils/Utils.swift index 873c682..0fcd985 100644 --- a/TunnelKit/Sources/Core/Utils.swift +++ b/Sources/InternalUtils/Utils.swift @@ -44,7 +44,7 @@ public extension DispatchQueue { } /// :nodoc: -func fromDictionary(_ type: T.Type, _ dictionary: [String: Any]) throws -> T { +public func fromDictionary(_ type: T.Type, _ dictionary: [String: Any]) throws -> T { let data = try JSONSerialization.data(withJSONObject: dictionary, options: .fragmentsAllowed) return try JSONDecoder().decode(T.self, from: data) } @@ -62,7 +62,7 @@ public extension Encodable { /// :nodoc: extension TimeInterval { - var asTimeString: String { + public var asTimeString: String { var ticks = Int(self) let hours = ticks / 3600 ticks %= 3600 diff --git a/TunnelKit/Sources/AppExtension/GenericSocket.swift b/Sources/TunnelKitAppExtension/GenericSocket.swift similarity index 100% rename from TunnelKit/Sources/AppExtension/GenericSocket.swift rename to Sources/TunnelKitAppExtension/GenericSocket.swift diff --git a/TunnelKit/Sources/AppExtension/InterfaceObserver.swift b/Sources/TunnelKitAppExtension/InterfaceObserver.swift similarity index 100% rename from TunnelKit/Sources/AppExtension/InterfaceObserver.swift rename to Sources/TunnelKitAppExtension/InterfaceObserver.swift diff --git a/TunnelKit/Sources/AppExtension/Keychain.swift b/Sources/TunnelKitAppExtension/Keychain.swift similarity index 100% rename from TunnelKit/Sources/AppExtension/Keychain.swift rename to Sources/TunnelKitAppExtension/Keychain.swift diff --git a/TunnelKit/Sources/AppExtension/LinkProducer.swift b/Sources/TunnelKitAppExtension/LinkProducer.swift similarity index 98% rename from TunnelKit/Sources/AppExtension/LinkProducer.swift rename to Sources/TunnelKitAppExtension/LinkProducer.swift index 371500e..2c660e0 100644 --- a/TunnelKit/Sources/AppExtension/LinkProducer.swift +++ b/Sources/TunnelKitAppExtension/LinkProducer.swift @@ -24,6 +24,7 @@ // import Foundation +import TunnelKitCore /// Entity able to produce a `LinkInterface`. public protocol LinkProducer { diff --git a/TunnelKit/Sources/AppExtension/MemoryDestination.swift b/Sources/TunnelKitAppExtension/MemoryDestination.swift similarity index 100% rename from TunnelKit/Sources/AppExtension/MemoryDestination.swift rename to Sources/TunnelKitAppExtension/MemoryDestination.swift diff --git a/TunnelKit/Sources/AppExtension/Transport/NETCPSocket.swift b/Sources/TunnelKitAppExtension/Transport/NETCPSocket.swift similarity index 99% rename from TunnelKit/Sources/AppExtension/Transport/NETCPSocket.swift rename to Sources/TunnelKitAppExtension/Transport/NETCPSocket.swift index e084e92..2548968 100644 --- a/TunnelKit/Sources/AppExtension/Transport/NETCPSocket.swift +++ b/Sources/TunnelKitAppExtension/Transport/NETCPSocket.swift @@ -37,6 +37,7 @@ import Foundation import NetworkExtension import SwiftyBeaver +import TunnelKitCore private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/AppExtension/Transport/NETunnelInterface.swift b/Sources/TunnelKitAppExtension/Transport/NETunnelInterface.swift similarity index 99% rename from TunnelKit/Sources/AppExtension/Transport/NETunnelInterface.swift rename to Sources/TunnelKitAppExtension/Transport/NETunnelInterface.swift index 28f5a20..8d54fcb 100644 --- a/TunnelKit/Sources/AppExtension/Transport/NETunnelInterface.swift +++ b/Sources/TunnelKitAppExtension/Transport/NETunnelInterface.swift @@ -36,6 +36,7 @@ import Foundation import NetworkExtension +import TunnelKitCore import SwiftyBeaver private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/AppExtension/Transport/NEUDPSocket.swift b/Sources/TunnelKitAppExtension/Transport/NEUDPSocket.swift similarity index 99% rename from TunnelKit/Sources/AppExtension/Transport/NEUDPSocket.swift rename to Sources/TunnelKitAppExtension/Transport/NEUDPSocket.swift index 9312280..429baf3 100644 --- a/TunnelKit/Sources/AppExtension/Transport/NEUDPSocket.swift +++ b/Sources/TunnelKitAppExtension/Transport/NEUDPSocket.swift @@ -37,6 +37,7 @@ import Foundation import NetworkExtension import SwiftyBeaver +import TunnelKitCore private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/AppExtension/Transport/NWTCPConnectionState+Description.swift b/Sources/TunnelKitAppExtension/Transport/NWTCPConnectionState+Description.swift similarity index 100% rename from TunnelKit/Sources/AppExtension/Transport/NWTCPConnectionState+Description.swift rename to Sources/TunnelKitAppExtension/Transport/NWTCPConnectionState+Description.swift diff --git a/TunnelKit/Sources/AppExtension/Transport/NWUDPSessionState+Description.swift b/Sources/TunnelKitAppExtension/Transport/NWUDPSessionState+Description.swift similarity index 100% rename from TunnelKit/Sources/AppExtension/Transport/NWUDPSessionState+Description.swift rename to Sources/TunnelKitAppExtension/Transport/NWUDPSessionState+Description.swift diff --git a/TunnelKit/Sources/Core/BidirectionalState.swift b/Sources/TunnelKitCore/BidirectionalState.swift similarity index 100% rename from TunnelKit/Sources/Core/BidirectionalState.swift rename to Sources/TunnelKitCore/BidirectionalState.swift diff --git a/TunnelKit/Sources/Core/ConfigurationError.swift b/Sources/TunnelKitCore/ConfigurationError.swift similarity index 100% rename from TunnelKit/Sources/Core/ConfigurationError.swift rename to Sources/TunnelKitCore/ConfigurationError.swift diff --git a/TunnelKit/Sources/Core/CoreConfiguration.swift b/Sources/TunnelKitCore/CoreConfiguration.swift similarity index 89% rename from TunnelKit/Sources/Core/CoreConfiguration.swift rename to Sources/TunnelKitCore/CoreConfiguration.swift index 7987383..f2f81db 100644 --- a/TunnelKit/Sources/Core/CoreConfiguration.swift +++ b/Sources/TunnelKitCore/CoreConfiguration.swift @@ -36,10 +36,11 @@ import Foundation -class CoreConfiguration { - static let identifier = "com.algoritmico.TunnelKit" +/// :nodoc: +public class CoreConfiguration { + public static let identifier = "com.algoritmico.TunnelKit" - static let version: String = { + public static let version: String = { let bundle = Bundle(for: CoreConfiguration.self) guard let info = bundle.infoDictionary else { return "" @@ -55,17 +56,17 @@ class CoreConfiguration { }() // configurable - static var masksPrivateData = true + public static var masksPrivateData = true - static var versionIdentifier: String? + public static var versionIdentifier: String? - static let logsSensitiveData = false + public static let logsSensitiveData = false - static var reconnectionDelay = 2.0 + public static var reconnectionDelay = 2.0 } extension CustomStringConvertible { - var maskedDescription: String { + public var maskedDescription: String { guard CoreConfiguration.masksPrivateData else { return description } diff --git a/TunnelKit/Sources/Core/DNSProtocol.swift b/Sources/TunnelKitCore/DNSProtocol.swift similarity index 100% rename from TunnelKit/Sources/Core/DNSProtocol.swift rename to Sources/TunnelKitCore/DNSProtocol.swift diff --git a/TunnelKit/Sources/Core/DNSResolver.swift b/Sources/TunnelKitCore/DNSResolver.swift similarity index 97% rename from TunnelKit/Sources/Core/DNSResolver.swift rename to Sources/TunnelKitCore/DNSResolver.swift index cb0b294..9a88506 100644 --- a/TunnelKit/Sources/Core/DNSResolver.swift +++ b/Sources/TunnelKitCore/DNSResolver.swift @@ -44,6 +44,12 @@ public struct DNSRecord { /// `true` if IPv6. public let isIPv6: Bool + + /// :nodoc: + public init(address: String, isIPv6: Bool) { + self.address = address + self.isIPv6 = isIPv6 + } } /// Convenient methods for DNS resolution. diff --git a/TunnelKit/Sources/Core/EndpointProtocol.swift b/Sources/TunnelKitCore/EndpointProtocol.swift similarity index 100% rename from TunnelKit/Sources/Core/EndpointProtocol.swift rename to Sources/TunnelKitCore/EndpointProtocol.swift diff --git a/TunnelKit/Sources/Core/Errors.swift b/Sources/TunnelKitCore/Errors.swift similarity index 89% rename from TunnelKit/Sources/Core/Errors.swift rename to Sources/TunnelKitCore/Errors.swift index a7daa0d..80c81d2 100644 --- a/TunnelKit/Sources/Core/Errors.swift +++ b/Sources/TunnelKitCore/Errors.swift @@ -24,15 +24,15 @@ // import Foundation -import __TunnelKitCore +import TunnelKitCoreObjC extension Error { - func isTunnelKitError() -> Bool { + public func isTunnelKitError() -> Bool { let te = self as NSError return te.domain == TunnelKitErrorDomain } - func tunnelKitErrorCode() -> TunnelKitErrorCode? { + public func tunnelKitErrorCode() -> TunnelKitErrorCode? { let te = self as NSError guard te.domain == TunnelKitErrorDomain else { return nil diff --git a/TunnelKit/Sources/Core/IOInterface.swift b/Sources/TunnelKitCore/IOInterface.swift similarity index 100% rename from TunnelKit/Sources/Core/IOInterface.swift rename to Sources/TunnelKitCore/IOInterface.swift diff --git a/TunnelKit/Sources/Core/IPHeader.swift b/Sources/TunnelKitCore/IPHeader.swift similarity index 100% rename from TunnelKit/Sources/Core/IPHeader.swift rename to Sources/TunnelKitCore/IPHeader.swift diff --git a/TunnelKit/Sources/Core/IPv4Settings.swift b/Sources/TunnelKitCore/IPv4Settings.swift similarity index 86% rename from TunnelKit/Sources/Core/IPv4Settings.swift rename to Sources/TunnelKitCore/IPv4Settings.swift index adce721..0c5fb58 100644 --- a/TunnelKit/Sources/Core/IPv4Settings.swift +++ b/Sources/TunnelKitCore/IPv4Settings.swift @@ -40,7 +40,8 @@ public struct IPv4Settings: Codable, CustomStringConvertible { /// The address of the gateway (uses default gateway if not set). public let gateway: String - init(_ destination: String, _ mask: String?, _ gateway: String) { + /// :nodoc: + public init(_ destination: String, _ mask: String?, _ gateway: String) { self.destination = destination self.mask = mask ?? "255.255.255.255" self.gateway = gateway @@ -66,6 +67,14 @@ public struct IPv4Settings: Codable, CustomStringConvertible { /// The additional routes. public let routes: [Route] + /// :nodoc: + public init(address: String, addressMask: String, defaultGateway: String, routes: [Route]) { + self.address = address + self.addressMask = addressMask + self.defaultGateway = defaultGateway + self.routes = routes + } + // MARK: CustomStringConvertible /// :nodoc: diff --git a/TunnelKit/Sources/Core/IPv6Settings.swift b/Sources/TunnelKitCore/IPv6Settings.swift similarity index 85% rename from TunnelKit/Sources/Core/IPv6Settings.swift rename to Sources/TunnelKitCore/IPv6Settings.swift index 0d60b17..c3fbac1 100644 --- a/TunnelKit/Sources/Core/IPv6Settings.swift +++ b/Sources/TunnelKitCore/IPv6Settings.swift @@ -40,7 +40,8 @@ public struct IPv6Settings: Codable, CustomStringConvertible { /// The address of the gateway (uses default gateway if not set). public let gateway: String - init(_ destination: String, _ prefixLength: UInt8?, _ gateway: String) { + /// :nodoc: + public init(_ destination: String, _ prefixLength: UInt8?, _ gateway: String) { self.destination = destination self.prefixLength = prefixLength ?? 3 self.gateway = gateway @@ -66,6 +67,14 @@ public struct IPv6Settings: Codable, CustomStringConvertible { /// The additional routes. public let routes: [Route] + /// :nodoc: + public init(address: String, addressPrefixLength: UInt8, defaultGateway: String, routes: [Route]) { + self.address = address + self.addressPrefixLength = addressPrefixLength + self.defaultGateway = defaultGateway + self.routes = routes + } + // MARK: CustomStringConvertible /// :nodoc: diff --git a/TunnelKit/Sources/Core/LinkInterface.swift b/Sources/TunnelKitCore/LinkInterface.swift similarity index 100% rename from TunnelKit/Sources/Core/LinkInterface.swift rename to Sources/TunnelKitCore/LinkInterface.swift diff --git a/TunnelKit/Sources/Core/Proxy.swift b/Sources/TunnelKitCore/Proxy.swift similarity index 100% rename from TunnelKit/Sources/Core/Proxy.swift rename to Sources/TunnelKitCore/Proxy.swift diff --git a/TunnelKit/Sources/Core/SecureRandom.swift b/Sources/TunnelKitCore/SecureRandom.swift similarity index 92% rename from TunnelKit/Sources/Core/SecureRandom.swift rename to Sources/TunnelKitCore/SecureRandom.swift index 53a8c9b..6f6e57f 100644 --- a/TunnelKit/Sources/Core/SecureRandom.swift +++ b/Sources/TunnelKitCore/SecureRandom.swift @@ -36,13 +36,16 @@ import Foundation import Security.SecRandom -import __TunnelKitCore +import TunnelKitCoreObjC +import InternalUtils -enum SecureRandomError: Error { +/// :nodoc: +public enum SecureRandomError: Error { case randomGenerator } -class SecureRandom { +/// :nodoc: +public class SecureRandom { @available(*, deprecated) static func uint32FromBuffer() throws -> UInt32 { var randomBuffer = [UInt8](repeating: 0, count: 4) @@ -59,7 +62,7 @@ class SecureRandom { return randomNumber } - static func uint32() throws -> UInt32 { + public static func uint32() throws -> UInt32 { var randomNumber: UInt32 = 0 try withUnsafeMutablePointer(to: &randomNumber) { @@ -73,7 +76,7 @@ class SecureRandom { return randomNumber } - static func data(length: Int) throws -> Data { + public static func data(length: Int) throws -> Data { var randomData = Data(count: length) try randomData.withUnsafeMutableBytes { @@ -86,7 +89,7 @@ class SecureRandom { return randomData } - static func safeData(length: Int) throws -> ZeroingData { + public static func safeData(length: Int) throws -> ZeroingData { let randomBytes = UnsafeMutablePointer.allocate(capacity: length) defer { // randomBytes.initialize(to: 0, count: length) diff --git a/TunnelKit/Sources/Core/Session.swift b/Sources/TunnelKitCore/Session.swift similarity index 100% rename from TunnelKit/Sources/Core/Session.swift rename to Sources/TunnelKitCore/Session.swift diff --git a/TunnelKit/Sources/Core/SocketType.swift b/Sources/TunnelKitCore/SocketType.swift similarity index 100% rename from TunnelKit/Sources/Core/SocketType.swift rename to Sources/TunnelKitCore/SocketType.swift diff --git a/TunnelKit/Sources/Core/TunnelInterface.swift b/Sources/TunnelKitCore/TunnelInterface.swift similarity index 100% rename from TunnelKit/Sources/Core/TunnelInterface.swift rename to Sources/TunnelKitCore/TunnelInterface.swift diff --git a/TunnelKit/Sources/Core/ZeroingData.swift b/Sources/TunnelKitCore/ZeroingData.swift similarity index 84% rename from TunnelKit/Sources/Core/ZeroingData.swift rename to Sources/TunnelKitCore/ZeroingData.swift index 49cabc1..87f2dce 100644 --- a/TunnelKit/Sources/Core/ZeroingData.swift +++ b/Sources/TunnelKitCore/ZeroingData.swift @@ -35,36 +35,36 @@ // import Foundation -import __TunnelKitCore +import TunnelKitCoreObjC -func Z() -> ZeroingData { +public func Z() -> ZeroingData { return ZeroingData() } -func Z(count: Int) -> ZeroingData { +public func Z(count: Int) -> ZeroingData { return ZeroingData(count: count) } -func Z(bytes: UnsafePointer, count: Int) -> ZeroingData { +public func Z(bytes: UnsafePointer, count: Int) -> ZeroingData { return ZeroingData(bytes: bytes, count: count) } -func Z(_ uint8: UInt8) -> ZeroingData { +public func Z(_ uint8: UInt8) -> ZeroingData { return ZeroingData(uInt8: uint8) } -func Z(_ uint16: UInt16) -> ZeroingData { +public func Z(_ uint16: UInt16) -> ZeroingData { return ZeroingData(uInt16: uint16) } -func Z(_ data: Data) -> ZeroingData { +public func Z(_ data: Data) -> ZeroingData { return ZeroingData(data: data) } -//func Z(_ data: Data, _ offset: Int, _ count: Int) -> ZeroingData { +//public func Z(_ data: Data, _ offset: Int, _ count: Int) -> ZeroingData { // return ZeroingData(data: data, offset: offset, count: count) //} -func Z(_ string: String, nullTerminated: Bool) -> ZeroingData { +public func Z(_ string: String, nullTerminated: Bool) -> ZeroingData { return ZeroingData(string: string, nullTerminated: nullTerminated) } diff --git a/TunnelKit/Sources/Core/Allocation.m b/Sources/TunnelKitCoreObjC/Allocation.m similarity index 100% rename from TunnelKit/Sources/Core/Allocation.m rename to Sources/TunnelKitCoreObjC/Allocation.m diff --git a/TunnelKit/Sources/Core/Errors.m b/Sources/TunnelKitCoreObjC/Errors.m similarity index 100% rename from TunnelKit/Sources/Core/Errors.m rename to Sources/TunnelKitCoreObjC/Errors.m diff --git a/TunnelKit/Sources/Core/LZO.m b/Sources/TunnelKitCoreObjC/LZOFactory.m similarity index 90% rename from TunnelKit/Sources/Core/LZO.m rename to Sources/TunnelKitCoreObjC/LZOFactory.m index b9ff7bd..96b5cbc 100644 --- a/TunnelKit/Sources/Core/LZO.m +++ b/Sources/TunnelKitCoreObjC/LZOFactory.m @@ -1,5 +1,5 @@ // -// LZO.m +// LZOFactory.m // TunnelKit // // Created by Davide De Rosa on 3/18/19. @@ -23,7 +23,7 @@ // along with TunnelKit. If not, see . // -#import "LZO.h" +#import "LZOFactory.h" #import "ZeroingData.h" static NSString *const LZOClassName = @"StandardLZO"; @@ -34,12 +34,16 @@ static Class LZOClass() return [bundle classNamed:LZOClassName]; } -BOOL LZOIsSupported() +@implementation LZOFactory + ++ (BOOL)isSupported { return LZOClass() != nil; } -id LZOCreate() ++ (id)create { return [[LZOClass() alloc] init]; } + +@end diff --git a/TunnelKit/Sources/Core/RoutingTable.m b/Sources/TunnelKitCoreObjC/RoutingTable.m similarity index 100% rename from TunnelKit/Sources/Core/RoutingTable.m rename to Sources/TunnelKitCoreObjC/RoutingTable.m diff --git a/TunnelKit/Sources/Core/RoutingTableEntry.m b/Sources/TunnelKitCoreObjC/RoutingTableEntry.m similarity index 99% rename from TunnelKit/Sources/Core/RoutingTableEntry.m rename to Sources/TunnelKitCoreObjC/RoutingTableEntry.m index ea46515..0eb6e1c 100644 --- a/TunnelKit/Sources/Core/RoutingTableEntry.m +++ b/Sources/TunnelKitCoreObjC/RoutingTableEntry.m @@ -411,6 +411,7 @@ char *routename(uint32_t in) char *routename6(struct sockaddr_in6 *sa6) { static char line[MAXHOSTNAMELEN]; + int flag = NI_NUMERICHOST; /* use local variable for safety */ struct sockaddr_in6 sa6_local = {sizeof(sa6_local), AF_INET6, }; @@ -480,9 +481,10 @@ char *netname(uint32_t in, uint32_t mask) char *netname6(struct sockaddr_in6 *sa6, struct sockaddr *sam) { + char host[MAXHOSTNAMELEN]; static char line[MAXHOSTNAMELEN + 10]; u_char *lim; - int masklen, illegal = 0; + int masklen, illegal = 0, flag = NI_NUMERICHOST; struct in6_addr *mask = sam ? &((struct sockaddr_in6 *)sam)->sin6_addr : 0; if (sam && sam->sa_len == 0) { diff --git a/TunnelKit/Sources/Core/ZeroingData.m b/Sources/TunnelKitCoreObjC/ZeroingData.m similarity index 100% rename from TunnelKit/Sources/Core/ZeroingData.m rename to Sources/TunnelKitCoreObjC/ZeroingData.m diff --git a/TunnelKit/Sources/Core/Allocation.h b/Sources/TunnelKitCoreObjC/include/Allocation.h similarity index 100% rename from TunnelKit/Sources/Core/Allocation.h rename to Sources/TunnelKitCoreObjC/include/Allocation.h diff --git a/TunnelKit/Sources/Core/LZO.h b/Sources/TunnelKitCoreObjC/include/CompressionProvider.h similarity index 91% rename from TunnelKit/Sources/Core/LZO.h rename to Sources/TunnelKitCoreObjC/include/CompressionProvider.h index b219935..ba9b447 100644 --- a/TunnelKit/Sources/Core/LZO.h +++ b/Sources/TunnelKitCoreObjC/include/CompressionProvider.h @@ -1,5 +1,5 @@ // -// LZO.h +// CompressionProvider.h // TunnelKit // // Created by Davide De Rosa on 3/18/19. @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN -@protocol LZO +@protocol CompressionProvider - (nullable NSData *)compressedDataWithData:(NSData *)data error:(NSError **)error; - (nullable NSData *)decompressedDataWithData:(NSData *)data error:(NSError **)error; @@ -35,8 +35,4 @@ NS_ASSUME_NONNULL_BEGIN @end -//+ (NSString *)versionString; -BOOL LZOIsSupported(void); -id LZOCreate(void); - NS_ASSUME_NONNULL_END diff --git a/TunnelKit/Sources/Core/Errors.h b/Sources/TunnelKitCoreObjC/include/Errors.h similarity index 100% rename from TunnelKit/Sources/Core/Errors.h rename to Sources/TunnelKitCoreObjC/include/Errors.h diff --git a/TunnelKit/Sources/Core/DNS.h b/Sources/TunnelKitCoreObjC/include/LZOFactory.h similarity index 81% rename from TunnelKit/Sources/Core/DNS.h rename to Sources/TunnelKitCoreObjC/include/LZOFactory.h index fb5ab92..ffda675 100644 --- a/TunnelKit/Sources/Core/DNS.h +++ b/Sources/TunnelKitCoreObjC/include/LZOFactory.h @@ -1,8 +1,8 @@ // -// DNS.h +// LZOFactory.h // TunnelKit // -// Created by Davide De Rosa on 4/25/19. +// Created by Davide De Rosa on 3/18/19. // Copyright (c) 2021 Davide De Rosa. All rights reserved. // // https://github.com/passepartoutvpn @@ -24,13 +24,16 @@ // #import +#import "CompressionProvider.h" NS_ASSUME_NONNULL_BEGIN -@interface DNS : NSObject +@interface LZOFactory : NSObject + +//+ (NSString *)versionString; ++ (BOOL)isSupported; ++ (id)create; -- (NSArray *)systemServers; - @end NS_ASSUME_NONNULL_END diff --git a/TunnelKit/Sources/Core/RoutingTable.h b/Sources/TunnelKitCoreObjC/include/RoutingTable.h similarity index 100% rename from TunnelKit/Sources/Core/RoutingTable.h rename to Sources/TunnelKitCoreObjC/include/RoutingTable.h diff --git a/TunnelKit/Sources/Core/RoutingTableEntry.h b/Sources/TunnelKitCoreObjC/include/RoutingTableEntry.h similarity index 100% rename from TunnelKit/Sources/Core/RoutingTableEntry.h rename to Sources/TunnelKitCoreObjC/include/RoutingTableEntry.h diff --git a/TunnelKit/Sources/Core/ZeroingData.h b/Sources/TunnelKitCoreObjC/include/ZeroingData.h similarity index 100% rename from TunnelKit/Sources/Core/ZeroingData.h rename to Sources/TunnelKitCoreObjC/include/ZeroingData.h diff --git a/TunnelKit/Sources/Core/route.h b/Sources/TunnelKitCoreObjC/include/route.h similarity index 100% rename from TunnelKit/Sources/Core/route.h rename to Sources/TunnelKitCoreObjC/include/route.h diff --git a/TunnelKit/Sources/Extra/LZO/StandardLZO.m b/Sources/TunnelKitLZO/StandardLZO.m similarity index 97% rename from TunnelKit/Sources/Extra/LZO/StandardLZO.m rename to Sources/TunnelKitLZO/StandardLZO.m index fa3b41b..2480d5c 100644 --- a/TunnelKit/Sources/Extra/LZO/StandardLZO.m +++ b/Sources/TunnelKitLZO/StandardLZO.m @@ -23,9 +23,8 @@ // along with TunnelKit. If not, see . // -#import "minilzo.h" +#import "lib/minilzo.h" -#import "LZO.h" #import "Errors.h" #define HEAP_ALLOC(var,size) \ @@ -35,7 +34,7 @@ lzo_align_t __LZO_MMODEL var [ ((size) + (sizeof(lzo_align_t) - 1)) / sizeof(lzo static HEAP_ALLOC(wrkmem, LZO1X_1_MEM_COMPRESS); -@interface StandardLZO : NSObject +@interface StandardLZO : NSObject @property (nonatomic, strong) NSMutableData *decompressedBuffer; diff --git a/Sources/TunnelKitLZO/include/Errors.h b/Sources/TunnelKitLZO/include/Errors.h new file mode 120000 index 0000000..51651c1 --- /dev/null +++ b/Sources/TunnelKitLZO/include/Errors.h @@ -0,0 +1 @@ +../../TunnelKitCoreObjC/include/Errors.h \ No newline at end of file diff --git a/Sources/TunnelKitLZO/include/lzo/lzoconf.h b/Sources/TunnelKitLZO/include/lzo/lzoconf.h new file mode 120000 index 0000000..d86f264 --- /dev/null +++ b/Sources/TunnelKitLZO/include/lzo/lzoconf.h @@ -0,0 +1 @@ +../../lib/lzoconf.h \ No newline at end of file diff --git a/Sources/TunnelKitLZO/include/lzo/lzodefs.h b/Sources/TunnelKitLZO/include/lzo/lzodefs.h new file mode 120000 index 0000000..2347a19 --- /dev/null +++ b/Sources/TunnelKitLZO/include/lzo/lzodefs.h @@ -0,0 +1 @@ +../../lib/lzodefs.h \ No newline at end of file diff --git a/TunnelKit/Sources/Extra/LZO/lib/COPYING b/Sources/TunnelKitLZO/lib/COPYING similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/COPYING rename to Sources/TunnelKitLZO/lib/COPYING diff --git a/TunnelKit/Sources/Extra/LZO/lib/Makefile b/Sources/TunnelKitLZO/lib/Makefile similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/Makefile rename to Sources/TunnelKitLZO/lib/Makefile diff --git a/TunnelKit/Sources/Extra/LZO/lib/README.LZO b/Sources/TunnelKitLZO/lib/README.LZO similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/README.LZO rename to Sources/TunnelKitLZO/lib/README.LZO diff --git a/TunnelKit/Sources/Extra/LZO/lib/lzoconf.h b/Sources/TunnelKitLZO/lib/lzoconf.h similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/lzoconf.h rename to Sources/TunnelKitLZO/lib/lzoconf.h diff --git a/TunnelKit/Sources/Extra/LZO/lib/lzodefs.h b/Sources/TunnelKitLZO/lib/lzodefs.h similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/lzodefs.h rename to Sources/TunnelKitLZO/lib/lzodefs.h diff --git a/TunnelKit/Sources/Extra/LZO/lib/minilzo.c b/Sources/TunnelKitLZO/lib/minilzo.c similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/minilzo.c rename to Sources/TunnelKitLZO/lib/minilzo.c diff --git a/TunnelKit/Sources/Extra/LZO/lib/minilzo.h b/Sources/TunnelKitLZO/lib/minilzo.h similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/minilzo.h rename to Sources/TunnelKitLZO/lib/minilzo.h diff --git a/TunnelKit/Sources/Extra/LZO/lib/testmini.c b/Sources/TunnelKitLZO/lib/testmini.c similarity index 100% rename from TunnelKit/Sources/Extra/LZO/lib/testmini.c rename to Sources/TunnelKitLZO/lib/testmini.c diff --git a/TunnelKit/Sources/Manager/MockVPNProvider.swift b/Sources/TunnelKitManager/MockVPNProvider.swift similarity index 100% rename from TunnelKit/Sources/Manager/MockVPNProvider.swift rename to Sources/TunnelKitManager/MockVPNProvider.swift diff --git a/TunnelKit/Sources/Manager/NetworkExtensionLocator.swift b/Sources/TunnelKitManager/NetworkExtensionLocator.swift similarity index 100% rename from TunnelKit/Sources/Manager/NetworkExtensionLocator.swift rename to Sources/TunnelKitManager/NetworkExtensionLocator.swift diff --git a/TunnelKit/Sources/Manager/NetworkExtensionVPNConfiguration.swift b/Sources/TunnelKitManager/NetworkExtensionVPNConfiguration.swift similarity index 100% rename from TunnelKit/Sources/Manager/NetworkExtensionVPNConfiguration.swift rename to Sources/TunnelKitManager/NetworkExtensionVPNConfiguration.swift diff --git a/TunnelKit/Sources/Manager/NetworkExtensionVPNProvider.swift b/Sources/TunnelKitManager/NetworkExtensionVPNProvider.swift similarity index 98% rename from TunnelKit/Sources/Manager/NetworkExtensionVPNProvider.swift rename to Sources/TunnelKitManager/NetworkExtensionVPNProvider.swift index 334fb3d..5ca93b7 100644 --- a/TunnelKit/Sources/Manager/NetworkExtensionVPNProvider.swift +++ b/Sources/TunnelKitManager/NetworkExtensionVPNProvider.swift @@ -26,6 +26,7 @@ import Foundation import NetworkExtension import SwiftyBeaver +import TunnelKitCore private let log = SwiftyBeaver.self @@ -183,7 +184,7 @@ public class NetworkExtensionVPNProvider: VPNProvider { // MARK: Helpers - func lookup(completionHandler: @escaping (NEVPNManager?, Error?) -> Void) { + public func lookup(completionHandler: @escaping (NEVPNManager?, Error?) -> Void) { locator.lookup(completionHandler: completionHandler) } diff --git a/TunnelKit/Sources/Manager/VPN.swift b/Sources/TunnelKitManager/VPN.swift similarity index 100% rename from TunnelKit/Sources/Manager/VPN.swift rename to Sources/TunnelKitManager/VPN.swift diff --git a/TunnelKit/Sources/Manager/VPNConfiguration.swift b/Sources/TunnelKitManager/VPNConfiguration.swift similarity index 100% rename from TunnelKit/Sources/Manager/VPNConfiguration.swift rename to Sources/TunnelKitManager/VPNConfiguration.swift diff --git a/TunnelKit/Sources/Manager/VPNProvider.swift b/Sources/TunnelKitManager/VPNProvider.swift similarity index 100% rename from TunnelKit/Sources/Manager/VPNProvider.swift rename to Sources/TunnelKitManager/VPNProvider.swift diff --git a/TunnelKit/Sources/Manager/VPNProviderIPC.swift b/Sources/TunnelKitManager/VPNProviderIPC.swift similarity index 100% rename from TunnelKit/Sources/Manager/VPNProviderIPC.swift rename to Sources/TunnelKitManager/VPNProviderIPC.swift diff --git a/TunnelKit/Sources/Manager/VPNStatus.swift b/Sources/TunnelKitManager/VPNStatus.swift similarity index 100% rename from TunnelKit/Sources/Manager/VPNStatus.swift rename to Sources/TunnelKitManager/VPNStatus.swift diff --git a/TunnelKit/Sources/Protocols/Native/NativeProvider.swift b/Sources/TunnelKitNative/NativeProvider.swift similarity index 99% rename from TunnelKit/Sources/Protocols/Native/NativeProvider.swift rename to Sources/TunnelKitNative/NativeProvider.swift index 9b7bde1..6d12ad3 100644 --- a/TunnelKit/Sources/Protocols/Native/NativeProvider.swift +++ b/Sources/TunnelKitNative/NativeProvider.swift @@ -24,6 +24,7 @@ // import Foundation +import TunnelKitManager /// `VPNProvider` for native IPSec/IKEv2 configurations. public class NativeProvider: VPNProvider { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/ConnectionStrategy.swift b/Sources/TunnelKitOpenVPN/AppExtension/ConnectionStrategy.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/AppExtension/ConnectionStrategy.swift rename to Sources/TunnelKitOpenVPN/AppExtension/ConnectionStrategy.swift index 9385f8a..a41ea77 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/ConnectionStrategy.swift +++ b/Sources/TunnelKitOpenVPN/AppExtension/ConnectionStrategy.swift @@ -37,6 +37,8 @@ import Foundation import NetworkExtension import SwiftyBeaver +import TunnelKitCore +import TunnelKitAppExtension private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/NETCPLink.swift b/Sources/TunnelKitOpenVPN/AppExtension/NETCPLink.swift similarity index 97% rename from TunnelKit/Sources/Protocols/OpenVPN/AppExtension/NETCPLink.swift rename to Sources/TunnelKitOpenVPN/AppExtension/NETCPLink.swift index 61e10d1..b49c172 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/NETCPLink.swift +++ b/Sources/TunnelKitOpenVPN/AppExtension/NETCPLink.swift @@ -25,7 +25,9 @@ import Foundation import NetworkExtension -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitAppExtension +import TunnelKitOpenVPNObjC class NETCPLink: LinkInterface { private let impl: NWTCPConnection diff --git a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/NEUDPLink.swift b/Sources/TunnelKitOpenVPN/AppExtension/NEUDPLink.swift similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/AppExtension/NEUDPLink.swift rename to Sources/TunnelKitOpenVPN/AppExtension/NEUDPLink.swift index ebd7068..18a13d1 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/NEUDPLink.swift +++ b/Sources/TunnelKitOpenVPN/AppExtension/NEUDPLink.swift @@ -25,6 +25,8 @@ import Foundation import NetworkExtension +import TunnelKitCore +import TunnelKitAppExtension class NEUDPLink: LinkInterface { private let impl: NWUDPSession diff --git a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider+Configuration.swift b/Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider+Configuration.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider+Configuration.swift rename to Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider+Configuration.swift index 3558718..99f0f53 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider+Configuration.swift +++ b/Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider+Configuration.swift @@ -37,6 +37,10 @@ import Foundation import NetworkExtension import SwiftyBeaver +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitAppExtension +import InternalUtils private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider+Interaction.swift b/Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider+Interaction.swift similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider+Interaction.swift rename to Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider+Interaction.swift diff --git a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider.swift b/Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider.swift rename to Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider.swift index acfd1bb..97bad3d 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/AppExtension/OpenVPNTunnelProvider.swift +++ b/Sources/TunnelKitOpenVPN/AppExtension/OpenVPNTunnelProvider.swift @@ -41,7 +41,9 @@ import SystemConfiguration.CaptiveNetwork #else import CoreWLAN #endif -import __TunnelKitCore +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitAppExtension private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/Authenticator.swift b/Sources/TunnelKitOpenVPN/Authenticator.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/Authenticator.swift rename to Sources/TunnelKitOpenVPN/Authenticator.swift index ec1eb20..af42caf 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/Authenticator.swift +++ b/Sources/TunnelKitOpenVPN/Authenticator.swift @@ -36,8 +36,9 @@ import Foundation import SwiftyBeaver -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CompressionAlgorithm.swift b/Sources/TunnelKitOpenVPN/CompressionAlgorithm.swift similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/CompressionAlgorithm.swift rename to Sources/TunnelKitOpenVPN/CompressionAlgorithm.swift index d59c16e..ad7c2eb 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/CompressionAlgorithm.swift +++ b/Sources/TunnelKitOpenVPN/CompressionAlgorithm.swift @@ -24,7 +24,7 @@ // import Foundation -import __TunnelKitOpenVPN +import TunnelKitOpenVPNObjC extension OpenVPN { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CompressionFraming.swift b/Sources/TunnelKitOpenVPN/CompressionFraming.swift similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/CompressionFraming.swift rename to Sources/TunnelKitOpenVPN/CompressionFraming.swift index 85af696..dcca6b7 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/CompressionFraming.swift +++ b/Sources/TunnelKitOpenVPN/CompressionFraming.swift @@ -24,7 +24,7 @@ // import Foundation -import __TunnelKitOpenVPN +import TunnelKitOpenVPNObjC extension OpenVPN { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/Configuration.swift b/Sources/TunnelKitOpenVPN/Configuration.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/Configuration.swift rename to Sources/TunnelKitOpenVPN/Configuration.swift index 9f743a4..a046501 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/Configuration.swift +++ b/Sources/TunnelKitOpenVPN/Configuration.swift @@ -36,6 +36,7 @@ import Foundation import SwiftyBeaver +import TunnelKitCore private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ConfigurationParser.swift b/Sources/TunnelKitOpenVPN/ConfigurationParser.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/ConfigurationParser.swift rename to Sources/TunnelKitOpenVPN/ConfigurationParser.swift index 44b89c6..4b88c5f 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/ConfigurationParser.swift +++ b/Sources/TunnelKitOpenVPN/ConfigurationParser.swift @@ -25,7 +25,9 @@ import Foundation import SwiftyBeaver -import __TunnelKitCore +import TunnelKitCore +import TunnelKitCoreObjC +import InternalUtils private let log = SwiftyBeaver.self @@ -390,7 +392,7 @@ extension OpenVPN { isHandled = true optCompressionFraming = .compLZO - if !LZOIsSupported() { + if !LZOFactory.isSupported() { guard let arg = $0.first else { optWarning = optWarning ?? .unsupportedConfiguration(option: line) return @@ -408,7 +410,7 @@ extension OpenVPN { isHandled = true optCompressionFraming = .compress - if !LZOIsSupported() { + if !LZOFactory.isSupported() { guard $0.isEmpty else { unsupportedError = .unsupportedConfiguration(option: line) return diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ControlChannel.swift b/Sources/TunnelKitOpenVPN/ControlChannel.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/ControlChannel.swift rename to Sources/TunnelKitOpenVPN/ControlChannel.swift index bf1d9c1..c7aca56 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/ControlChannel.swift +++ b/Sources/TunnelKitOpenVPN/ControlChannel.swift @@ -25,8 +25,9 @@ import Foundation import SwiftyBeaver -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ControlChannelSerializer.swift b/Sources/TunnelKitOpenVPN/ControlChannelSerializer.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/ControlChannelSerializer.swift rename to Sources/TunnelKitOpenVPN/ControlChannelSerializer.swift index 949243d..a207fdb 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/ControlChannelSerializer.swift +++ b/Sources/TunnelKitOpenVPN/ControlChannelSerializer.swift @@ -25,8 +25,9 @@ import Foundation import SwiftyBeaver -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift b/Sources/TunnelKitOpenVPN/CoreConfiguration+OpenVPN.swift similarity index 97% rename from TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift rename to Sources/TunnelKitOpenVPN/CoreConfiguration+OpenVPN.swift index 6f7ad8a..e6b9282 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift +++ b/Sources/TunnelKitOpenVPN/CoreConfiguration+OpenVPN.swift @@ -35,8 +35,9 @@ // import Foundation -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC extension CoreConfiguration { struct OpenVPN { @@ -80,7 +81,7 @@ extension CoreConfiguration { "IV_NCP=2", "IV_LZO_STUB=1", ] - if LZOIsSupported() { + if LZOFactory.isSupported() { info.append("IV_LZO=1") } // XXX: always do --push-peer-info diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoContainer.swift b/Sources/TunnelKitOpenVPN/CryptoContainer.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoContainer.swift rename to Sources/TunnelKitOpenVPN/CryptoContainer.swift index 7545781..3f36c67 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/CryptoContainer.swift +++ b/Sources/TunnelKitOpenVPN/CryptoContainer.swift @@ -35,7 +35,7 @@ // import Foundation -import __TunnelKitOpenVPN +import TunnelKitOpenVPNObjC extension OpenVPN { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/EncryptionBridge.swift b/Sources/TunnelKitOpenVPN/EncryptionBridge.swift similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/EncryptionBridge.swift rename to Sources/TunnelKitOpenVPN/EncryptionBridge.swift index c2eb664..1148d64 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/EncryptionBridge.swift +++ b/Sources/TunnelKitOpenVPN/EncryptionBridge.swift @@ -35,8 +35,9 @@ // import Foundation -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC extension OpenVPN { class EncryptionBridge { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPN.swift b/Sources/TunnelKitOpenVPN/OpenVPN.swift similarity index 95% rename from TunnelKit/Sources/Protocols/OpenVPN/OpenVPN.swift rename to Sources/TunnelKitOpenVPN/OpenVPN.swift index 0fa0e41..f9ece43 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPN.swift +++ b/Sources/TunnelKitOpenVPN/OpenVPN.swift @@ -24,8 +24,9 @@ // import Foundation -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC /// Container for OpenVPN classes. public class OpenVPN { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNError.swift b/Sources/TunnelKitOpenVPN/OpenVPNError.swift similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/OpenVPNError.swift rename to Sources/TunnelKitOpenVPN/OpenVPNError.swift diff --git a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNProvider.swift b/Sources/TunnelKitOpenVPN/OpenVPNProvider.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/OpenVPNProvider.swift rename to Sources/TunnelKitOpenVPN/OpenVPNProvider.swift index d9a0a1f..912a6bf 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNProvider.swift +++ b/Sources/TunnelKitOpenVPN/OpenVPNProvider.swift @@ -25,6 +25,7 @@ import Foundation import NetworkExtension +import TunnelKitManager /// `VPNProvider` for OpenVPN protocol. public class OpenVPNProvider: VPNProvider, VPNProviderIPC { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNSession+PIA.swift b/Sources/TunnelKitOpenVPN/OpenVPNSession+PIA.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/OpenVPNSession+PIA.swift rename to Sources/TunnelKitOpenVPN/OpenVPNSession+PIA.swift index 5f359f0..c66127f 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNSession+PIA.swift +++ b/Sources/TunnelKitOpenVPN/OpenVPNSession+PIA.swift @@ -35,6 +35,7 @@ // import Foundation +import TunnelKitCore extension OpenVPNSession { struct PIAHardReset { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNSession.swift b/Sources/TunnelKitOpenVPN/OpenVPNSession.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/OpenVPNSession.swift rename to Sources/TunnelKitOpenVPN/OpenVPNSession.swift index a1d61d2..3928e10 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/OpenVPNSession.swift +++ b/Sources/TunnelKitOpenVPN/OpenVPNSession.swift @@ -36,8 +36,9 @@ import Foundation import SwiftyBeaver -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC private let log = SwiftyBeaver.self @@ -926,7 +927,7 @@ public class OpenVPNSession: Session { break case .LZO: - if !LZOIsSupported() { + if !LZOFactory.isSupported() { log.error("Server has LZO compression enabled and this was not built into the library (framing=\(framing))") throw OpenVPNError.serverCompression } diff --git a/TunnelKit/Sources/Protocols/OpenVPN/Packet.swift b/Sources/TunnelKitOpenVPN/Packet.swift similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/Packet.swift rename to Sources/TunnelKitOpenVPN/Packet.swift index a1c08bb..05a0b81 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/Packet.swift +++ b/Sources/TunnelKitOpenVPN/Packet.swift @@ -35,7 +35,9 @@ // import Foundation -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC /// :nodoc: extension ControlPacket { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ProtocolMacros.swift b/Sources/TunnelKitOpenVPN/ProtocolMacros.swift similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/ProtocolMacros.swift rename to Sources/TunnelKitOpenVPN/ProtocolMacros.swift diff --git a/TunnelKit/Sources/Protocols/OpenVPN/PushReply.swift b/Sources/TunnelKitOpenVPN/PushReply.swift similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/PushReply.swift rename to Sources/TunnelKitOpenVPN/PushReply.swift diff --git a/TunnelKit/Sources/Protocols/OpenVPN/SessionKey.swift b/Sources/TunnelKitOpenVPN/SessionKey.swift similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/SessionKey.swift rename to Sources/TunnelKitOpenVPN/SessionKey.swift index 872cbdf..e8f572a 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/SessionKey.swift +++ b/Sources/TunnelKitOpenVPN/SessionKey.swift @@ -36,8 +36,9 @@ import Foundation import SwiftyBeaver -import __TunnelKitCore -import __TunnelKitOpenVPN +import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC private let log = SwiftyBeaver.self diff --git a/TunnelKit/Sources/Protocols/OpenVPN/StaticKey.swift b/Sources/TunnelKitOpenVPN/StaticKey.swift similarity index 99% rename from TunnelKit/Sources/Protocols/OpenVPN/StaticKey.swift rename to Sources/TunnelKitOpenVPN/StaticKey.swift index fd7d9c9..ee5961b 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/StaticKey.swift +++ b/Sources/TunnelKitOpenVPN/StaticKey.swift @@ -24,7 +24,8 @@ // import Foundation -import __TunnelKitCore +import TunnelKitCore +import TunnelKitCoreObjC extension OpenVPN { diff --git a/TunnelKit/Sources/Protocols/OpenVPN/TLSWrap.swift b/Sources/TunnelKitOpenVPN/TLSWrap.swift similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/TLSWrap.swift rename to Sources/TunnelKitOpenVPN/TLSWrap.swift diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ControlPacket.m b/Sources/TunnelKitOpenVPNObjC/ControlPacket.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/ControlPacket.m rename to Sources/TunnelKitOpenVPNObjC/ControlPacket.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoAEAD.m b/Sources/TunnelKitOpenVPNObjC/CryptoAEAD.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoAEAD.m rename to Sources/TunnelKitOpenVPNObjC/CryptoAEAD.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoBox.m b/Sources/TunnelKitOpenVPNObjC/CryptoBox.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoBox.m rename to Sources/TunnelKitOpenVPNObjC/CryptoBox.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoCBC.m b/Sources/TunnelKitOpenVPNObjC/CryptoCBC.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoCBC.m rename to Sources/TunnelKitOpenVPNObjC/CryptoCBC.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoCTR.m b/Sources/TunnelKitOpenVPNObjC/CryptoCTR.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoCTR.m rename to Sources/TunnelKitOpenVPNObjC/CryptoCTR.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/DataPath.m b/Sources/TunnelKitOpenVPNObjC/DataPath.m similarity index 98% rename from TunnelKit/Sources/Protocols/OpenVPN/DataPath.m rename to Sources/TunnelKitOpenVPNObjC/DataPath.m index f797c41..87eeafb 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/DataPath.m +++ b/Sources/TunnelKitOpenVPNObjC/DataPath.m @@ -41,7 +41,7 @@ #import "PacketMacros.h" #import "MSS.h" #import "ReplayProtector.h" -#import "LZO.h" +#import "LZOFactory.h" #import "Allocation.h" #import "Errors.h" @@ -67,7 +67,7 @@ @property (nonatomic, copy) DataPathAssembleBlock assemblePayloadBlock; @property (nonatomic, copy) DataPathParseBlock parsePayloadBlock; -@property (nonatomic, strong) id lzo; +@property (nonatomic, strong) id lzo; @end @@ -118,8 +118,8 @@ [self.decrypter setPeerId:peerId]; [self setCompressionFraming:compressionFraming]; - if (LZOIsSupported() && (compressionAlgorithm == CompressionAlgorithmNativeLZO)) { - self.lzo = LZOCreate(); + if ([LZOFactory isSupported] && (compressionAlgorithm == CompressionAlgorithmNativeLZO)) { + self.lzo = [LZOFactory create]; } } return self; diff --git a/TunnelKit/Sources/Protocols/OpenVPN/MSS.m b/Sources/TunnelKitOpenVPNObjC/MSS.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/MSS.m rename to Sources/TunnelKitOpenVPNObjC/MSS.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/PacketMacros.m b/Sources/TunnelKitOpenVPNObjC/PacketMacros.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/PacketMacros.m rename to Sources/TunnelKitOpenVPNObjC/PacketMacros.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/PacketStream.m b/Sources/TunnelKitOpenVPNObjC/PacketStream.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/PacketStream.m rename to Sources/TunnelKitOpenVPNObjC/PacketStream.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ReplayProtector.m b/Sources/TunnelKitOpenVPNObjC/ReplayProtector.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/ReplayProtector.m rename to Sources/TunnelKitOpenVPNObjC/ReplayProtector.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/TLSBox.m b/Sources/TunnelKitOpenVPNObjC/TLSBox.m similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/TLSBox.m rename to Sources/TunnelKitOpenVPNObjC/TLSBox.m diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CompressionAlgorithmNative.h b/Sources/TunnelKitOpenVPNObjC/include/CompressionAlgorithmNative.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CompressionAlgorithmNative.h rename to Sources/TunnelKitOpenVPNObjC/include/CompressionAlgorithmNative.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CompressionFramingNative.h b/Sources/TunnelKitOpenVPNObjC/include/CompressionFramingNative.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CompressionFramingNative.h rename to Sources/TunnelKitOpenVPNObjC/include/CompressionFramingNative.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ControlPacket.h b/Sources/TunnelKitOpenVPNObjC/include/ControlPacket.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/ControlPacket.h rename to Sources/TunnelKitOpenVPNObjC/include/ControlPacket.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/Crypto.h b/Sources/TunnelKitOpenVPNObjC/include/Crypto.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/Crypto.h rename to Sources/TunnelKitOpenVPNObjC/include/Crypto.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoAEAD.h b/Sources/TunnelKitOpenVPNObjC/include/CryptoAEAD.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoAEAD.h rename to Sources/TunnelKitOpenVPNObjC/include/CryptoAEAD.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoBox.h b/Sources/TunnelKitOpenVPNObjC/include/CryptoBox.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoBox.h rename to Sources/TunnelKitOpenVPNObjC/include/CryptoBox.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoCBC.h b/Sources/TunnelKitOpenVPNObjC/include/CryptoCBC.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoCBC.h rename to Sources/TunnelKitOpenVPNObjC/include/CryptoCBC.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoCTR.h b/Sources/TunnelKitOpenVPNObjC/include/CryptoCTR.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoCTR.h rename to Sources/TunnelKitOpenVPNObjC/include/CryptoCTR.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CryptoMacros.h b/Sources/TunnelKitOpenVPNObjC/include/CryptoMacros.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/CryptoMacros.h rename to Sources/TunnelKitOpenVPNObjC/include/CryptoMacros.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/DataPath.h b/Sources/TunnelKitOpenVPNObjC/include/DataPath.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/DataPath.h rename to Sources/TunnelKitOpenVPNObjC/include/DataPath.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/DataPathCrypto.h b/Sources/TunnelKitOpenVPNObjC/include/DataPathCrypto.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/DataPathCrypto.h rename to Sources/TunnelKitOpenVPNObjC/include/DataPathCrypto.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/MSS.h b/Sources/TunnelKitOpenVPNObjC/include/MSS.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/MSS.h rename to Sources/TunnelKitOpenVPNObjC/include/MSS.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/PacketMacros.h b/Sources/TunnelKitOpenVPNObjC/include/PacketMacros.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/PacketMacros.h rename to Sources/TunnelKitOpenVPNObjC/include/PacketMacros.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/PacketStream.h b/Sources/TunnelKitOpenVPNObjC/include/PacketStream.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/PacketStream.h rename to Sources/TunnelKitOpenVPNObjC/include/PacketStream.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/ReplayProtector.h b/Sources/TunnelKitOpenVPNObjC/include/ReplayProtector.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/ReplayProtector.h rename to Sources/TunnelKitOpenVPNObjC/include/ReplayProtector.h diff --git a/TunnelKit/Sources/Protocols/OpenVPN/TLSBox.h b/Sources/TunnelKitOpenVPNObjC/include/TLSBox.h similarity index 100% rename from TunnelKit/Sources/Protocols/OpenVPN/TLSBox.h rename to Sources/TunnelKitOpenVPNObjC/include/TLSBox.h diff --git a/TunnelKit/Tests/Core/DataManipulationTests.swift b/Tests/TunnelKitCoreTests/DataManipulationTests.swift similarity index 99% rename from TunnelKit/Tests/Core/DataManipulationTests.swift rename to Tests/TunnelKitCoreTests/DataManipulationTests.swift index 6d1ec19..914afc1 100644 --- a/TunnelKit/Tests/Core/DataManipulationTests.swift +++ b/Tests/TunnelKitCoreTests/DataManipulationTests.swift @@ -35,7 +35,7 @@ // import XCTest -@testable import TunnelKit +@testable import TunnelKitCore class DataManipulationTests: XCTestCase { diff --git a/TunnelKit/Tests/Core/RandomTests.swift b/Tests/TunnelKitCoreTests/RandomTests.swift similarity index 98% rename from TunnelKit/Tests/Core/RandomTests.swift rename to Tests/TunnelKitCoreTests/RandomTests.swift index b8ac109..91671ac 100644 --- a/TunnelKit/Tests/Core/RandomTests.swift +++ b/Tests/TunnelKitCoreTests/RandomTests.swift @@ -35,7 +35,7 @@ // import XCTest -@testable import TunnelKit +@testable import TunnelKitCore class RandomTests: XCTestCase { diff --git a/TunnelKit/Tests/Core/RawPerformanceTests.swift b/Tests/TunnelKitCoreTests/RawPerformanceTests.swift similarity index 99% rename from TunnelKit/Tests/Core/RawPerformanceTests.swift rename to Tests/TunnelKitCoreTests/RawPerformanceTests.swift index 1b783ea..aa20c77 100644 --- a/TunnelKit/Tests/Core/RawPerformanceTests.swift +++ b/Tests/TunnelKitCoreTests/RawPerformanceTests.swift @@ -37,7 +37,7 @@ import Foundation import XCTest -@testable import TunnelKit +@testable import TunnelKitCore class RawPerformanceTests: XCTestCase { diff --git a/TunnelKit/Tests/Core/RoutingTests.swift b/Tests/TunnelKitCoreTests/RoutingTests.swift similarity index 99% rename from TunnelKit/Tests/Core/RoutingTests.swift rename to Tests/TunnelKitCoreTests/RoutingTests.swift index 6660adb..412893c 100644 --- a/TunnelKit/Tests/Core/RoutingTests.swift +++ b/Tests/TunnelKitCoreTests/RoutingTests.swift @@ -24,7 +24,7 @@ // import XCTest -import __TunnelKitCore +import TunnelKitCoreObjC class RoutingTests: XCTestCase { diff --git a/TunnelKit/Tests/Core/TestUtils+Core.swift b/Tests/TunnelKitCoreTests/TestUtils+Core.swift similarity index 92% rename from TunnelKit/Tests/Core/TestUtils+Core.swift rename to Tests/TunnelKitCoreTests/TestUtils+Core.swift index b623c4b..267f6d7 100644 --- a/TunnelKit/Tests/Core/TestUtils+Core.swift +++ b/Tests/TunnelKitCoreTests/TestUtils+Core.swift @@ -35,14 +35,14 @@ // import Foundation -@testable import TunnelKit +@testable import TunnelKitCore -class TestUtils { - static func uniqArray(_ v: [Int]) -> [Int] { +public class TestUtils { + public static func uniqArray(_ v: [Int]) -> [Int] { return v.reduce([]){ $0.contains($1) ? $0 : $0 + [$1] } } - static func generateDataSuite(_ size: Int, _ count: Int) -> [Data] { + public static func generateDataSuite(_ size: Int, _ count: Int) -> [Data] { var suite = [Data]() for _ in 0.. URL { - return Bundle(for: ConfigurationParserTests.self).url(forResource: name, withExtension: "ovpn")! + return Bundle.module.url(forResource: name, withExtension: "ovpn")! } } diff --git a/TunnelKit/Tests/OpenVPN/ControlChannelTests.swift b/Tests/TunnelKitOpenVPNTests/ControlChannelTests.swift similarity index 98% rename from TunnelKit/Tests/OpenVPN/ControlChannelTests.swift rename to Tests/TunnelKitOpenVPNTests/ControlChannelTests.swift index cdd32d4..5187cb0 100644 --- a/TunnelKit/Tests/OpenVPN/ControlChannelTests.swift +++ b/Tests/TunnelKitOpenVPNTests/ControlChannelTests.swift @@ -24,9 +24,10 @@ // import XCTest -@testable import TunnelKit -import __TunnelKitCore -import __TunnelKitOpenVPN +@testable import TunnelKitCore +import TunnelKitCoreObjC +@testable import TunnelKitOpenVPN +import TunnelKitOpenVPNObjC class ControlChannelTests: XCTestCase { private let hex = "634a4d2d459d606c8e6abbec168fdcd1871462eaa2eaed84c8f403bdf8c7da737d81b5774cc35fe0a42b38aa053f1335fd4a22d721880433bbb20ae1f2d88315b2d186b3b377685506fa39d85d38da16c2ecc0d631bda64f9d8f5a8d073f18aab97ade23e49ea9e7de86784d1ed5fa356df5f7fa1d163e5537efa8d4ba61239dc301a9aa55de0e06e33a7545f7d0cc153405576464ba92942dafa5fb79c7a60663ff1e7da3122ae09d4561653bef3eeb312ad68b191e2f94cbcf4e21caff0b59f8be86567bd21787070c2dc10a8baf7e87ce2e07d7d7de25ead11bd6d6e6ec030c0a3fd50d2d0ca3c0378022bb642e954868d7b93e18a131ecbb12b0bbedb1ce" diff --git a/TunnelKit/Tests/OpenVPN/DataPathEncryptionTests.swift b/Tests/TunnelKitOpenVPNTests/DataPathEncryptionTests.swift similarity index 98% rename from TunnelKit/Tests/OpenVPN/DataPathEncryptionTests.swift rename to Tests/TunnelKitOpenVPNTests/DataPathEncryptionTests.swift index 68ce16b..ff12b0f 100644 --- a/TunnelKit/Tests/OpenVPN/DataPathEncryptionTests.swift +++ b/Tests/TunnelKitOpenVPNTests/DataPathEncryptionTests.swift @@ -35,9 +35,9 @@ // import XCTest -@testable import TunnelKit -import __TunnelKitCore -import __TunnelKitOpenVPN +@testable import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC class DataPathEncryptionTests: XCTestCase { private let cipherKey = try! SecureRandom.safeData(length: 32) diff --git a/TunnelKit/Tests/OpenVPN/DataPathPerformanceTests.swift b/Tests/TunnelKitOpenVPNTests/DataPathPerformanceTests.swift similarity index 97% rename from TunnelKit/Tests/OpenVPN/DataPathPerformanceTests.swift rename to Tests/TunnelKitOpenVPNTests/DataPathPerformanceTests.swift index 1fd1132..acc735f 100644 --- a/TunnelKit/Tests/OpenVPN/DataPathPerformanceTests.swift +++ b/Tests/TunnelKitOpenVPNTests/DataPathPerformanceTests.swift @@ -35,8 +35,10 @@ // import XCTest -@testable import TunnelKit -import __TunnelKitOpenVPN +@testable import TunnelKitCore +@testable import TunnelKitOpenVPN +import TunnelKitOpenVPNObjC +import TunnelKitCoreTests class DataPathPerformanceTests: XCTestCase { private var dataPath: DataPath! diff --git a/TunnelKit/Tests/OpenVPN/EncryptionPerformanceTests.swift b/Tests/TunnelKitOpenVPNTests/EncryptionPerformanceTests.swift similarity index 97% rename from TunnelKit/Tests/OpenVPN/EncryptionPerformanceTests.swift rename to Tests/TunnelKitOpenVPNTests/EncryptionPerformanceTests.swift index 47e12ad..c5aa3d8 100644 --- a/TunnelKit/Tests/OpenVPN/EncryptionPerformanceTests.swift +++ b/Tests/TunnelKitOpenVPNTests/EncryptionPerformanceTests.swift @@ -35,9 +35,10 @@ // import XCTest -@testable import TunnelKit -import __TunnelKitCore -import __TunnelKitOpenVPN +@testable import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC +import TunnelKitCoreTests class EncryptionPerformanceTests: XCTestCase { private var cbcEncrypter: Encrypter! diff --git a/TunnelKit/Tests/OpenVPN/EncryptionTests.swift b/Tests/TunnelKitOpenVPNTests/EncryptionTests.swift similarity index 95% rename from TunnelKit/Tests/OpenVPN/EncryptionTests.swift rename to Tests/TunnelKitOpenVPNTests/EncryptionTests.swift index 7033915..7d0c173 100644 --- a/TunnelKit/Tests/OpenVPN/EncryptionTests.swift +++ b/Tests/TunnelKitOpenVPNTests/EncryptionTests.swift @@ -35,9 +35,10 @@ // import XCTest -@testable import TunnelKit -import __TunnelKitCore -import __TunnelKitOpenVPN +@testable import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPN +import TunnelKitOpenVPNObjC class EncryptionTests: XCTestCase { private var cipherEncKey: ZeroingData! @@ -112,7 +113,7 @@ class EncryptionTests: XCTestCase { } func testCertificateMD5() { - let path = Bundle(for: EncryptionTests.self).path(forResource: "pia-2048", ofType: "pem")! + let path = Bundle.module.path(forResource: "pia-2048", ofType: "pem")! let md5 = try! TLSBox.md5(forCertificatePath: path) let exp = "e2fccccaba712ccc68449b1c56427ac1" print(md5) @@ -130,7 +131,7 @@ class EncryptionTests: XCTestCase { } private func privateTestPrivateKeyDecryption(pkcs: String) { - let bundle = Bundle(for: EncryptionTests.self) + let bundle = Bundle.module let encryptedPath = bundle.path(forResource: "tunnelbear", ofType: "enc.\(pkcs).key")! let decryptedPath = bundle.path(forResource: "tunnelbear", ofType: "key")! @@ -147,7 +148,7 @@ class EncryptionTests: XCTestCase { } func testCertificatePreamble() { - let url = Bundle(for: EncryptionTests.self).url(forResource: "tunnelbear", withExtension: "crt")! + let url = Bundle.module.url(forResource: "tunnelbear", withExtension: "crt")! let cert = OpenVPN.CryptoContainer(pem: try! String(contentsOf: url)) XCTAssert(cert.pem.hasPrefix("-----BEGIN")) } diff --git a/TunnelKit/Tests/OpenVPN/LinkTests.swift b/Tests/TunnelKitOpenVPNTests/LinkTests.swift similarity index 98% rename from TunnelKit/Tests/OpenVPN/LinkTests.swift rename to Tests/TunnelKitOpenVPNTests/LinkTests.swift index 58a08c1..86a202c 100644 --- a/TunnelKit/Tests/OpenVPN/LinkTests.swift +++ b/Tests/TunnelKitOpenVPNTests/LinkTests.swift @@ -35,8 +35,9 @@ // import XCTest -@testable import TunnelKit -@testable import __TunnelKitCore +@testable import TunnelKitCore +@testable import TunnelKitCoreObjC +import TunnelKitCoreTests class LinkTests: XCTestCase { diff --git a/TunnelKit/Tests/OpenVPN/PacketTests.swift b/Tests/TunnelKitOpenVPNTests/PacketTests.swift similarity index 97% rename from TunnelKit/Tests/OpenVPN/PacketTests.swift rename to Tests/TunnelKitOpenVPNTests/PacketTests.swift index c4746ce..3e67f2d 100644 --- a/TunnelKit/Tests/OpenVPN/PacketTests.swift +++ b/Tests/TunnelKitOpenVPNTests/PacketTests.swift @@ -24,8 +24,8 @@ // import XCTest -@testable import TunnelKit -import __TunnelKitOpenVPN +@testable import TunnelKitCore +import TunnelKitOpenVPNObjC class PacketTests: XCTestCase { diff --git a/TunnelKit/Tests/OpenVPN/PushTests.swift b/Tests/TunnelKitOpenVPNTests/PushTests.swift similarity index 99% rename from TunnelKit/Tests/OpenVPN/PushTests.swift rename to Tests/TunnelKitOpenVPNTests/PushTests.swift index d2b5c28..d667991 100644 --- a/TunnelKit/Tests/OpenVPN/PushTests.swift +++ b/Tests/TunnelKitOpenVPNTests/PushTests.swift @@ -24,7 +24,8 @@ // import XCTest -@testable import TunnelKit +@testable import TunnelKitCore +@testable import TunnelKitOpenVPN private extension OpenVPN.PushReply { func debug() { diff --git a/TunnelKit/Tests/pia-2048.pem b/Tests/TunnelKitOpenVPNTests/Resources/pia-2048.pem similarity index 100% rename from TunnelKit/Tests/pia-2048.pem rename to Tests/TunnelKitOpenVPNTests/Resources/pia-2048.pem diff --git a/TunnelKit/Tests/pia-hungary.ovpn b/Tests/TunnelKitOpenVPNTests/Resources/pia-hungary.ovpn similarity index 100% rename from TunnelKit/Tests/pia-hungary.ovpn rename to Tests/TunnelKitOpenVPNTests/Resources/pia-hungary.ovpn diff --git a/TunnelKit/Tests/tunnelbear.crt b/Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.crt similarity index 100% rename from TunnelKit/Tests/tunnelbear.crt rename to Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.crt diff --git a/TunnelKit/Tests/tunnelbear.enc.1.key b/Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.1.key similarity index 100% rename from TunnelKit/Tests/tunnelbear.enc.1.key rename to Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.1.key diff --git a/TunnelKit/Tests/tunnelbear.enc.1.ovpn b/Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.1.ovpn similarity index 100% rename from TunnelKit/Tests/tunnelbear.enc.1.ovpn rename to Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.1.ovpn diff --git a/TunnelKit/Tests/tunnelbear.enc.8.key b/Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.8.key similarity index 100% rename from TunnelKit/Tests/tunnelbear.enc.8.key rename to Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.8.key diff --git a/TunnelKit/Tests/tunnelbear.enc.8.ovpn b/Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.8.ovpn similarity index 100% rename from TunnelKit/Tests/tunnelbear.enc.8.ovpn rename to Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.enc.8.ovpn diff --git a/TunnelKit/Tests/tunnelbear.key b/Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.key similarity index 100% rename from TunnelKit/Tests/tunnelbear.key rename to Tests/TunnelKitOpenVPNTests/Resources/tunnelbear.key diff --git a/TunnelKit/Tests/OpenVPN/StaticKeyTests.swift b/Tests/TunnelKitOpenVPNTests/StaticKeyTests.swift similarity index 98% rename from TunnelKit/Tests/OpenVPN/StaticKeyTests.swift rename to Tests/TunnelKitOpenVPNTests/StaticKeyTests.swift index e1b27b8..b890996 100644 --- a/TunnelKit/Tests/OpenVPN/StaticKeyTests.swift +++ b/Tests/TunnelKitOpenVPNTests/StaticKeyTests.swift @@ -24,7 +24,8 @@ // import XCTest -@testable import TunnelKit +@testable import TunnelKitCore +import TunnelKitOpenVPN class StaticKeyTests: XCTestCase { private let content = """ diff --git a/TunnelKit/Tests/OpenVPN/TestUtils+OpenVPN.swift b/Tests/TunnelKitOpenVPNTests/TestUtils+OpenVPN.swift similarity index 97% rename from TunnelKit/Tests/OpenVPN/TestUtils+OpenVPN.swift rename to Tests/TunnelKitOpenVPNTests/TestUtils+OpenVPN.swift index 9d5616f..78db63b 100644 --- a/TunnelKit/Tests/OpenVPN/TestUtils+OpenVPN.swift +++ b/Tests/TunnelKitOpenVPNTests/TestUtils+OpenVPN.swift @@ -35,9 +35,9 @@ // import Foundation -@testable import TunnelKit -import __TunnelKitCore -import __TunnelKitOpenVPN +@testable import TunnelKitCore +import TunnelKitCoreObjC +import TunnelKitOpenVPNObjC extension Encrypter { func encryptData(_ data: Data, flags: UnsafePointer?) throws -> Data { diff --git a/TunnelKit.podspec b/TunnelKit.podspec deleted file mode 100644 index 8636e8f..0000000 --- a/TunnelKit.podspec +++ /dev/null @@ -1,79 +0,0 @@ -Pod::Spec.new do |s| - s.name = "TunnelKit" - s.version = "3.6.0" - s.summary = "VPN client library for Apple platforms." - - s.homepage = "https://github.com/passepartoutvpn/tunnelkit" - s.license = { :type => "GPLv3", :file => "LICENSE" } - s.author = { "Davide De Rosa" => "me@davidederosa.com" } - s.source = { :git => "https://github.com/passepartoutvpn/tunnelkit.git", :tag => "v#{s.version}" } - s.swift_version = "5.1" - - s.ios.deployment_target = "12.0" - s.osx.deployment_target = "10.15" - - s.default_subspecs = "Protocols/OpenVPN" - - s.subspec "Core" do |p| - p.source_files = "TunnelKit/Sources/Core/**/*.{h,m,swift}" - p.private_header_files = "TunnelKit/Sources/Core/**/*.h" - p.preserve_paths = "TunnelKit/Sources/Core/*.modulemap" - p.pod_target_xcconfig = { "SWIFT_INCLUDE_PATHS" => "${PODS_TARGET_SRCROOT}/TunnelKit/Sources/Core", - "APPLICATION_EXTENSION_API_ONLY" => "YES" } - p.dependency "SwiftyBeaver" - p.libraries = "resolv" - end - - s.subspec "AppExtension" do |p| - p.source_files = "TunnelKit/Sources/AppExtension/**/*.swift" - p.frameworks = "NetworkExtension" - p.pod_target_xcconfig = { "APPLICATION_EXTENSION_API_ONLY" => "YES" } - - p.dependency "SwiftyBeaver" - p.dependency "TunnelKit/Core" - end - - s.subspec "Manager" do |p| - p.source_files = "TunnelKit/Sources/Manager/**/*.swift" - p.frameworks = "NetworkExtension" - - p.dependency "SwiftyBeaver" - p.dependency "TunnelKit/Core" - end - - s.subspec "Protocols" do |t| - t.subspec "Native" do |p| - p.source_files = "TunnelKit/Sources/Protocols/Native/**/*.swift" - p.pod_target_xcconfig = { "SWIFT_INCLUDE_PATHS" => "${PODS_TARGET_SRCROOT}/TunnelKit/Sources/Protocols/Native" } - - p.dependency "TunnelKit/Manager" - end - - t.subspec "OpenVPN" do |p| - p.source_files = "TunnelKit/Sources/Protocols/OpenVPN/**/*.{h,m,swift}" - p.private_header_files = "TunnelKit/Sources/Protocols/OpenVPN/**/*.h" - p.preserve_paths = "TunnelKit/Sources/Protocols/OpenVPN/*.modulemap" - p.pod_target_xcconfig = { "OTHER_LDFLAGS" => "-framework openssl", - "SWIFT_INCLUDE_PATHS" => "${PODS_TARGET_SRCROOT}/TunnelKit/Sources/Protocols/OpenVPN", - "APPLICATION_EXTENSION_API_ONLY" => "YES" } - - p.dependency "OpenSSL-Apple", "~> 1.1.1l.11" - p.dependency "TunnelKit/AppExtension" - p.dependency "TunnelKit/Manager" - end - end - - s.subspec "Extra" do |t| - t.subspec "LZO" do |p| - p.source_files = "TunnelKit/Sources/Core/LZO.h", - "TunnelKit/Sources/Core/Errors.{h,m}", - "TunnelKit/Sources/Extra/LZO/*.{h,m}", - "TunnelKit/Sources/Extra/LZO/lib/*lzo*.{h,m,c}" - p.private_header_files = "TunnelKit/Sources/Core/LZO.h", - "TunnelKit/Sources/Core/Errors.h", - "TunnelKit/Sources/Extra/LZO/*.h", - "TunnelKit/Sources/Extra/LZO/lib/*lzo*.h" - p.pod_target_xcconfig = { "APPLICATION_EXTENSION_API_ONLY" => "YES" } - end - end -end diff --git a/TunnelKit.xcodeproj/project.pbxproj b/TunnelKit.xcodeproj/project.pbxproj deleted file mode 100644 index be45448..0000000 --- a/TunnelKit.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2916 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 48; - objects = { - -/* Begin PBXBuildFile section */ - 059617B22CA9F55F1416F32D /* Pods_macos_TunnelKit_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EF702DD650A65FCBA51506A /* Pods_macos_TunnelKit_macOS.framework */; }; - 0E011F7A2196D93600BA59EE /* SocketType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E011F792196D93600BA59EE /* SocketType.swift */; }; - 0E011F7B2196D93600BA59EE /* SocketType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E011F792196D93600BA59EE /* SocketType.swift */; }; - 0E011F7D2196D97200BA59EE /* EndpointProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E011F7C2196D97200BA59EE /* EndpointProtocol.swift */; }; - 0E011F7E2196D97200BA59EE /* EndpointProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E011F7C2196D97200BA59EE /* EndpointProtocol.swift */; }; - 0E011F852196E25900BA59EE /* pia-hungary.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = 0E011F832196E25400BA59EE /* pia-hungary.ovpn */; }; - 0E011F862196E25A00BA59EE /* pia-hungary.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = 0E011F832196E25400BA59EE /* pia-hungary.ovpn */; }; - 0E05418725A2334500EFC5FF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05414B25A231D500EFC5FF /* AppDelegate.swift */; }; - 0E05418825A2334500EFC5FF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05414425A231D500EFC5FF /* ViewController.swift */; }; - 0E05418925A2334500EFC5FF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E05414525A231D500EFC5FF /* Assets.xcassets */; }; - 0E05418A25A2334900EFC5FF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E05414825A231D500EFC5FF /* Main.storyboard */; }; - 0E05418B25A2334900EFC5FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E05414625A231D500EFC5FF /* LaunchScreen.storyboard */; }; - 0E0541A125A2343500EFC5FF /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */; }; - 0E0541A925A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 0E0541D125A2354500EFC5FF /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */; }; - 0E0541D825A2355000EFC5FF /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413425A231D500EFC5FF /* Configuration.swift */; }; - 0E05425825A2392E00EFC5FF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05414125A231D500EFC5FF /* AppDelegate.swift */; }; - 0E05425925A2392E00EFC5FF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413C25A231D500EFC5FF /* ViewController.swift */; }; - 0E05426125A2393300EFC5FF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E05413D25A231D500EFC5FF /* Assets.xcassets */; }; - 0E05426925A2393B00EFC5FF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E05413E25A231D500EFC5FF /* Main.storyboard */; }; - 0E05427825A239C600EFC5FF /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */; }; - 0E05428025A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 0E0542B925A23A8100EFC5FF /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413425A231D500EFC5FF /* Configuration.swift */; }; - 0E0542C225A23A8400EFC5FF /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */; }; - 0E05438425A240E400EFC5FF /* TunnelKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 0E05438725A240E900EFC5FF /* TunnelKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0E3251C51F95770D00C108D9 /* TunnelKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 0E0B20402278A85C007A3CB9 /* RoutingTableEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E0B203E2278A85B007A3CB9 /* RoutingTableEntry.h */; }; - 0E0B20412278A85C007A3CB9 /* RoutingTableEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E0B203E2278A85B007A3CB9 /* RoutingTableEntry.h */; }; - 0E0B20422278A85C007A3CB9 /* RoutingTableEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E0B203F2278A85B007A3CB9 /* RoutingTableEntry.m */; }; - 0E0B20432278A85C007A3CB9 /* RoutingTableEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E0B203F2278A85B007A3CB9 /* RoutingTableEntry.m */; }; - 0E11089F1F77B9E800A92462 /* TunnelKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */; }; - 0E1108AC1F77B9F900A92462 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1108AB1F77B9F900A92462 /* AppDelegate.swift */; }; - 0E1108AE1F77B9F900A92462 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1108AD1F77B9F900A92462 /* ViewController.swift */; }; - 0E1108B11F77B9F900A92462 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E1108AF1F77B9F900A92462 /* Main.storyboard */; }; - 0E1108B31F77B9F900A92462 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E1108B21F77B9F900A92462 /* Assets.xcassets */; }; - 0E1108B61F77B9F900A92462 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E1108B41F77B9F900A92462 /* LaunchScreen.storyboard */; }; - 0E12B29E21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E12B29D21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift */; }; - 0E12B29F21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E12B29D21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift */; }; - 0E12B2A521454F7F00B4BAE9 /* BidirectionalState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E12B2A421454F7F00B4BAE9 /* BidirectionalState.swift */; }; - 0E12B2A621454F7F00B4BAE9 /* BidirectionalState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E12B2A421454F7F00B4BAE9 /* BidirectionalState.swift */; }; - 0E23B3DB2297466600304C30 /* TestUtils+Core.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3D82297463200304C30 /* TestUtils+Core.swift */; }; - 0E23B3DC2297466700304C30 /* TestUtils+Core.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3D82297463200304C30 /* TestUtils+Core.swift */; }; - 0E23B3DE229749C600304C30 /* LinkProducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3DD229749C600304C30 /* LinkProducer.swift */; }; - 0E23B3DF229749C600304C30 /* LinkProducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3DD229749C600304C30 /* LinkProducer.swift */; }; - 0E23B42522982AF800304C30 /* CryptoCBC.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3E222982AF800304C30 /* CryptoCBC.h */; }; - 0E23B42622982AF800304C30 /* CryptoCBC.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3E222982AF800304C30 /* CryptoCBC.h */; }; - 0E23B42722982AF800304C30 /* CryptoAEAD.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E322982AF800304C30 /* CryptoAEAD.m */; }; - 0E23B42822982AF800304C30 /* CryptoAEAD.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E322982AF800304C30 /* CryptoAEAD.m */; }; - 0E23B42922982AF800304C30 /* CryptoCTR.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3E422982AF800304C30 /* CryptoCTR.h */; }; - 0E23B42A22982AF800304C30 /* CryptoCTR.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3E422982AF800304C30 /* CryptoCTR.h */; }; - 0E23B42B22982AF800304C30 /* SessionKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E522982AF800304C30 /* SessionKey.swift */; }; - 0E23B42C22982AF800304C30 /* SessionKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E522982AF800304C30 /* SessionKey.swift */; }; - 0E23B42D22982AF800304C30 /* ControlChannelSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E622982AF800304C30 /* ControlChannelSerializer.swift */; }; - 0E23B42E22982AF800304C30 /* ControlChannelSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E622982AF800304C30 /* ControlChannelSerializer.swift */; }; - 0E23B42F22982AF800304C30 /* MSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3E722982AF800304C30 /* MSS.h */; }; - 0E23B43022982AF800304C30 /* MSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3E722982AF800304C30 /* MSS.h */; }; - 0E23B43122982AF800304C30 /* PacketMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E822982AF800304C30 /* PacketMacros.m */; }; - 0E23B43222982AF800304C30 /* PacketMacros.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E822982AF800304C30 /* PacketMacros.m */; }; - 0E23B43322982AF800304C30 /* ControlChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E922982AF800304C30 /* ControlChannel.swift */; }; - 0E23B43422982AF800304C30 /* ControlChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3E922982AF800304C30 /* ControlChannel.swift */; }; - 0E23B43522982AF800304C30 /* CoreConfiguration+OpenVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EA22982AF800304C30 /* CoreConfiguration+OpenVPN.swift */; }; - 0E23B43622982AF800304C30 /* CoreConfiguration+OpenVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EA22982AF800304C30 /* CoreConfiguration+OpenVPN.swift */; }; - 0E23B43722982AF800304C30 /* TLSBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EB22982AF800304C30 /* TLSBox.m */; }; - 0E23B43822982AF800304C30 /* TLSBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EB22982AF800304C30 /* TLSBox.m */; }; - 0E23B43922982AF800304C30 /* OpenVPNError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EC22982AF800304C30 /* OpenVPNError.swift */; }; - 0E23B43A22982AF800304C30 /* OpenVPNError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EC22982AF800304C30 /* OpenVPNError.swift */; }; - 0E23B43B22982AF800304C30 /* ControlPacket.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3ED22982AF800304C30 /* ControlPacket.h */; }; - 0E23B43C22982AF800304C30 /* ControlPacket.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3ED22982AF800304C30 /* ControlPacket.h */; }; - 0E23B43D22982AF800304C30 /* CryptoBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EE22982AF800304C30 /* CryptoBox.m */; }; - 0E23B43E22982AF800304C30 /* CryptoBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EE22982AF800304C30 /* CryptoBox.m */; }; - 0E23B43F22982AF800304C30 /* OpenVPNSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EF22982AF800304C30 /* OpenVPNSession.swift */; }; - 0E23B44022982AF800304C30 /* OpenVPNSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3EF22982AF800304C30 /* OpenVPNSession.swift */; }; - 0E23B44122982AF800304C30 /* OpenVPNSession+PIA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F022982AF800304C30 /* OpenVPNSession+PIA.swift */; }; - 0E23B44222982AF800304C30 /* OpenVPNSession+PIA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F022982AF800304C30 /* OpenVPNSession+PIA.swift */; }; - 0E23B44322982AF800304C30 /* CryptoContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F122982AF800304C30 /* CryptoContainer.swift */; }; - 0E23B44422982AF800304C30 /* CryptoContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F122982AF800304C30 /* CryptoContainer.swift */; }; - 0E23B44522982AF800304C30 /* DataPathCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3F222982AF800304C30 /* DataPathCrypto.h */; }; - 0E23B44622982AF800304C30 /* DataPathCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3F222982AF800304C30 /* DataPathCrypto.h */; }; - 0E23B44722982AF800304C30 /* OpenVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F322982AF800304C30 /* OpenVPN.swift */; }; - 0E23B44822982AF800304C30 /* OpenVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F322982AF800304C30 /* OpenVPN.swift */; }; - 0E23B44922982AF800304C30 /* CompressionAlgorithmNative.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3F422982AF800304C30 /* CompressionAlgorithmNative.h */; }; - 0E23B44A22982AF800304C30 /* CompressionAlgorithmNative.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3F422982AF800304C30 /* CompressionAlgorithmNative.h */; }; - 0E23B44B22982AF800304C30 /* TLSWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F522982AF800304C30 /* TLSWrap.swift */; }; - 0E23B44C22982AF800304C30 /* TLSWrap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F522982AF800304C30 /* TLSWrap.swift */; }; - 0E23B44D22982AF800304C30 /* DataPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3F622982AF800304C30 /* DataPath.h */; }; - 0E23B44E22982AF800304C30 /* DataPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3F622982AF800304C30 /* DataPath.h */; }; - 0E23B44F22982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F822982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift */; }; - 0E23B45022982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F822982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift */; }; - 0E23B45122982AF800304C30 /* NEUDPLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F922982AF800304C30 /* NEUDPLink.swift */; }; - 0E23B45222982AF800304C30 /* NEUDPLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3F922982AF800304C30 /* NEUDPLink.swift */; }; - 0E23B45322982AF800304C30 /* ConnectionStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FA22982AF800304C30 /* ConnectionStrategy.swift */; }; - 0E23B45422982AF800304C30 /* ConnectionStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FA22982AF800304C30 /* ConnectionStrategy.swift */; }; - 0E23B45522982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FB22982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift */; }; - 0E23B45622982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FB22982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift */; }; - 0E23B45722982AF800304C30 /* NETCPLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FC22982AF800304C30 /* NETCPLink.swift */; }; - 0E23B45822982AF800304C30 /* NETCPLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FC22982AF800304C30 /* NETCPLink.swift */; }; - 0E23B45922982AF800304C30 /* OpenVPNTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FD22982AF800304C30 /* OpenVPNTunnelProvider.swift */; }; - 0E23B45A22982AF800304C30 /* OpenVPNTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FD22982AF800304C30 /* OpenVPNTunnelProvider.swift */; }; - 0E23B45B22982AF800304C30 /* PacketStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3FE22982AF800304C30 /* PacketStream.h */; }; - 0E23B45C22982AF800304C30 /* PacketStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B3FE22982AF800304C30 /* PacketStream.h */; }; - 0E23B45D22982AF800304C30 /* ProtocolMacros.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FF22982AF800304C30 /* ProtocolMacros.swift */; }; - 0E23B45E22982AF800304C30 /* ProtocolMacros.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B3FF22982AF800304C30 /* ProtocolMacros.swift */; }; - 0E23B45F22982AF800304C30 /* ReplayProtector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40022982AF800304C30 /* ReplayProtector.h */; }; - 0E23B46022982AF800304C30 /* ReplayProtector.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40022982AF800304C30 /* ReplayProtector.h */; }; - 0E23B46122982AF800304C30 /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40122982AF800304C30 /* Crypto.h */; }; - 0E23B46222982AF800304C30 /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40122982AF800304C30 /* Crypto.h */; }; - 0E23B46322982AF800304C30 /* CompressionAlgorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40222982AF800304C30 /* CompressionAlgorithm.swift */; }; - 0E23B46422982AF800304C30 /* CompressionAlgorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40222982AF800304C30 /* CompressionAlgorithm.swift */; }; - 0E23B46522982AF800304C30 /* EncryptionBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40322982AF800304C30 /* EncryptionBridge.swift */; }; - 0E23B46622982AF800304C30 /* EncryptionBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40322982AF800304C30 /* EncryptionBridge.swift */; }; - 0E23B46722982AF800304C30 /* Authenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40422982AF800304C30 /* Authenticator.swift */; }; - 0E23B46822982AF800304C30 /* Authenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40422982AF800304C30 /* Authenticator.swift */; }; - 0E23B46922982AF800304C30 /* CompressionFraming.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40522982AF800304C30 /* CompressionFraming.swift */; }; - 0E23B46A22982AF800304C30 /* CompressionFraming.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40522982AF800304C30 /* CompressionFraming.swift */; }; - 0E23B46B22982AF800304C30 /* CryptoCBC.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40622982AF800304C30 /* CryptoCBC.m */; }; - 0E23B46C22982AF800304C30 /* CryptoCBC.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40622982AF800304C30 /* CryptoCBC.m */; }; - 0E23B46D22982AF800304C30 /* StaticKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40722982AF800304C30 /* StaticKey.swift */; }; - 0E23B46E22982AF800304C30 /* StaticKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40722982AF800304C30 /* StaticKey.swift */; }; - 0E23B46F22982AF800304C30 /* PushReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40822982AF800304C30 /* PushReply.swift */; }; - 0E23B47022982AF800304C30 /* PushReply.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40822982AF800304C30 /* PushReply.swift */; }; - 0E23B47122982AF800304C30 /* PacketMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40922982AF800304C30 /* PacketMacros.h */; }; - 0E23B47222982AF800304C30 /* PacketMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40922982AF800304C30 /* PacketMacros.h */; }; - 0E23B47322982AF800304C30 /* MSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40A22982AF800304C30 /* MSS.m */; }; - 0E23B47422982AF800304C30 /* MSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40A22982AF800304C30 /* MSS.m */; }; - 0E23B47522982AF800304C30 /* CryptoCTR.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40B22982AF800304C30 /* CryptoCTR.m */; }; - 0E23B47622982AF800304C30 /* CryptoCTR.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40B22982AF800304C30 /* CryptoCTR.m */; }; - 0E23B47722982AF800304C30 /* CryptoAEAD.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40C22982AF800304C30 /* CryptoAEAD.h */; }; - 0E23B47822982AF800304C30 /* CryptoAEAD.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40C22982AF800304C30 /* CryptoAEAD.h */; }; - 0E23B47922982AF800304C30 /* CompressionFramingNative.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40D22982AF800304C30 /* CompressionFramingNative.h */; }; - 0E23B47A22982AF800304C30 /* CompressionFramingNative.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B40D22982AF800304C30 /* CompressionFramingNative.h */; }; - 0E23B47B22982AF800304C30 /* ConfigurationParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40E22982AF800304C30 /* ConfigurationParser.swift */; }; - 0E23B47C22982AF800304C30 /* ConfigurationParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40E22982AF800304C30 /* ConfigurationParser.swift */; }; - 0E23B47D22982AF800304C30 /* Packet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40F22982AF800304C30 /* Packet.swift */; }; - 0E23B47E22982AF800304C30 /* Packet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B40F22982AF800304C30 /* Packet.swift */; }; - 0E23B47F22982AF800304C30 /* CryptoBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41022982AF800304C30 /* CryptoBox.h */; }; - 0E23B48022982AF800304C30 /* CryptoBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41022982AF800304C30 /* CryptoBox.h */; }; - 0E23B48122982AF800304C30 /* ControlPacket.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41122982AF800304C30 /* ControlPacket.m */; }; - 0E23B48222982AF800304C30 /* ControlPacket.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41122982AF800304C30 /* ControlPacket.m */; }; - 0E23B48322982AF800304C30 /* TLSBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41322982AF800304C30 /* TLSBox.h */; }; - 0E23B48422982AF800304C30 /* TLSBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41322982AF800304C30 /* TLSBox.h */; }; - 0E23B48522982AF800304C30 /* ReplayProtector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41422982AF800304C30 /* ReplayProtector.m */; }; - 0E23B48622982AF800304C30 /* ReplayProtector.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41422982AF800304C30 /* ReplayProtector.m */; }; - 0E23B48722982AF800304C30 /* CryptoMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41522982AF800304C30 /* CryptoMacros.h */; }; - 0E23B48822982AF800304C30 /* CryptoMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41522982AF800304C30 /* CryptoMacros.h */; }; - 0E23B48922982AF800304C30 /* PacketStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41622982AF800304C30 /* PacketStream.m */; }; - 0E23B48A22982AF800304C30 /* PacketStream.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41622982AF800304C30 /* PacketStream.m */; }; - 0E23B48B22982AF800304C30 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41722982AF800304C30 /* Configuration.swift */; }; - 0E23B48C22982AF800304C30 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41722982AF800304C30 /* Configuration.swift */; }; - 0E23B48D22982AF800304C30 /* DataPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41822982AF800304C30 /* DataPath.m */; }; - 0E23B48E22982AF800304C30 /* DataPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41822982AF800304C30 /* DataPath.m */; }; - 0E23B48F22982AF800304C30 /* StandardLZO.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41B22982AF800304C30 /* StandardLZO.m */; }; - 0E23B49022982AF800304C30 /* StandardLZO.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B41B22982AF800304C30 /* StandardLZO.m */; }; - 0E23B49122982AF800304C30 /* lzodefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41D22982AF800304C30 /* lzodefs.h */; }; - 0E23B49222982AF800304C30 /* lzodefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41D22982AF800304C30 /* lzodefs.h */; }; - 0E23B49322982AF800304C30 /* lzoconf.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41E22982AF800304C30 /* lzoconf.h */; }; - 0E23B49422982AF800304C30 /* lzoconf.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B41E22982AF800304C30 /* lzoconf.h */; }; - 0E23B49722982AF800304C30 /* minilzo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B42022982AF800304C30 /* minilzo.h */; }; - 0E23B49822982AF800304C30 /* minilzo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E23B42022982AF800304C30 /* minilzo.h */; }; - 0E23B49F22982AF800304C30 /* minilzo.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B42422982AF800304C30 /* minilzo.c */; }; - 0E23B4A022982AF800304C30 /* minilzo.c in Sources */ = {isa = PBXBuildFile; fileRef = 0E23B42422982AF800304C30 /* minilzo.c */; }; - 0E3B65742249253A00EFF4DA /* tunnelbear.enc.1.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = 0E3B656E224923EC00EFF4DA /* tunnelbear.enc.1.ovpn */; }; - 0E3B65752249253B00EFF4DA /* tunnelbear.enc.1.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = 0E3B656E224923EC00EFF4DA /* tunnelbear.enc.1.ovpn */; }; - 0E3B65762249253F00EFF4DA /* tunnelbear.key in Resources */ = {isa = PBXBuildFile; fileRef = 0E3B65712249247E00EFF4DA /* tunnelbear.key */; }; - 0E3B65772249254000EFF4DA /* tunnelbear.key in Resources */ = {isa = PBXBuildFile; fileRef = 0E3B65712249247E00EFF4DA /* tunnelbear.key */; }; - 0E411B9B2271F90700E0852C /* DNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E411B992271F90700E0852C /* DNS.h */; }; - 0E411B9C2271F90700E0852C /* DNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E411B992271F90700E0852C /* DNS.h */; }; - 0E411B9D2271F90700E0852C /* DNS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E411B9A2271F90700E0852C /* DNS.m */; }; - 0E411B9E2271F90700E0852C /* DNS.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E411B9A2271F90700E0852C /* DNS.m */; }; - 0E411BA02271FA3300E0852C /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E411B9F2271FA3300E0852C /* libresolv.tbd */; }; - 0E411BA22271FA3C00E0852C /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E411BA12271FA3C00E0852C /* libresolv.tbd */; }; - 0E500EA622493B5B00CAE560 /* tunnelbear.enc.1.key in Resources */ = {isa = PBXBuildFile; fileRef = 0E500EA522493B5B00CAE560 /* tunnelbear.enc.1.key */; }; - 0E500EA722493B5B00CAE560 /* tunnelbear.enc.1.key in Resources */ = {isa = PBXBuildFile; fileRef = 0E500EA522493B5B00CAE560 /* tunnelbear.enc.1.key */; }; - 0E58BF5622411F3D006FB157 /* LZO.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E58BF5522411F37006FB157 /* LZO.h */; }; - 0E58BF5722411F3E006FB157 /* LZO.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E58BF5522411F37006FB157 /* LZO.h */; }; - 0E58BF5922411FEF006FB157 /* LZO.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E58BF5822411FEF006FB157 /* LZO.m */; }; - 0E58BF5A22411FEF006FB157 /* LZO.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E58BF5822411FEF006FB157 /* LZO.m */; }; - 0E749F622178911D00BB2701 /* pia-2048.pem in Resources */ = {isa = PBXBuildFile; fileRef = 0E749F612178911C00BB2701 /* pia-2048.pem */; }; - 0E7F3F6A246ABA0F006BE77F /* IPHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E7F3F69246ABA0F006BE77F /* IPHeader.swift */; }; - 0E7F3F6B246ABA0F006BE77F /* IPHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E7F3F69246ABA0F006BE77F /* IPHeader.swift */; }; - 0E94E8EA25BACEBD0040BC30 /* DNSProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E94E8E925BACEBD0040BC30 /* DNSProtocol.swift */; }; - 0E94E8EB25BACEBD0040BC30 /* DNSProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E94E8E925BACEBD0040BC30 /* DNSProtocol.swift */; }; - 0EA82A282190B220007960EB /* TunnelKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E3251C51F95770D00C108D9 /* TunnelKit.framework */; }; - 0EA82A3E2190B2BC007960EB /* pia-2048.pem in Resources */ = {isa = PBXBuildFile; fileRef = 0E749F612178911C00BB2701 /* pia-2048.pem */; }; - 0EA9F28926D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F28826D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift */; }; - 0EA9F28A26D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F28826D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift */; }; - 0EA9F28C26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F28B26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift */; }; - 0EA9F28D26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F28B26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift */; }; - 0EA9F28F26D6AC6D00E806E1 /* VPNProviderIPC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F28E26D6AC6D00E806E1 /* VPNProviderIPC.swift */; }; - 0EA9F29026D6AC6D00E806E1 /* VPNProviderIPC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F28E26D6AC6D00E806E1 /* VPNProviderIPC.swift */; }; - 0EA9F29526D6CA7E00E806E1 /* NetworkExtensionLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F29426D6CA7E00E806E1 /* NetworkExtensionLocator.swift */; }; - 0EA9F29626D6CA7E00E806E1 /* NetworkExtensionLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA9F29426D6CA7E00E806E1 /* NetworkExtensionLocator.swift */; }; - 0EAC57372494277A00D0FCE0 /* OpenVPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57312494277A00D0FCE0 /* OpenVPNProvider.swift */; }; - 0EAC57382494277A00D0FCE0 /* OpenVPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57312494277A00D0FCE0 /* OpenVPNProvider.swift */; }; - 0EAC57392494277A00D0FCE0 /* MockVPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57322494277A00D0FCE0 /* MockVPNProvider.swift */; }; - 0EAC573A2494277A00D0FCE0 /* MockVPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57322494277A00D0FCE0 /* MockVPNProvider.swift */; }; - 0EAC573B2494277A00D0FCE0 /* VPNStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57332494277A00D0FCE0 /* VPNStatus.swift */; }; - 0EAC573C2494277A00D0FCE0 /* VPNStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57332494277A00D0FCE0 /* VPNStatus.swift */; }; - 0EAC573D2494277A00D0FCE0 /* VPNConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57342494277A00D0FCE0 /* VPNConfiguration.swift */; }; - 0EAC573E2494277A00D0FCE0 /* VPNConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57342494277A00D0FCE0 /* VPNConfiguration.swift */; }; - 0EAC573F2494277A00D0FCE0 /* VPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57352494277A00D0FCE0 /* VPNProvider.swift */; }; - 0EAC57402494277A00D0FCE0 /* VPNProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57352494277A00D0FCE0 /* VPNProvider.swift */; }; - 0EAC57412494277A00D0FCE0 /* VPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57362494277A00D0FCE0 /* VPN.swift */; }; - 0EAC57422494277A00D0FCE0 /* VPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC57362494277A00D0FCE0 /* VPN.swift */; }; - 0ECAF84A246697DA00D8266A /* TunnelKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */; }; - 0ECAF84B246697DA00D8266A /* TunnelKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 0ECC60D82254981A0020BEAC /* ConfigurationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECC60D72254981A0020BEAC /* ConfigurationError.swift */; }; - 0ECC60D92254981A0020BEAC /* ConfigurationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECC60D72254981A0020BEAC /* ConfigurationError.swift */; }; - 0ECCEA7F2622F2F00007DA28 /* NativeProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECCEA7E2622F2F00007DA28 /* NativeProvider.swift */; }; - 0ECCEA802622F2F00007DA28 /* NativeProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECCEA7E2622F2F00007DA28 /* NativeProvider.swift */; }; - 0ECEB1152252C8E900E9E551 /* tunnelbear.enc.8.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = 0ECEB1132252C8E900E9E551 /* tunnelbear.enc.8.ovpn */; }; - 0ECEB1162252C8E900E9E551 /* tunnelbear.enc.8.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = 0ECEB1132252C8E900E9E551 /* tunnelbear.enc.8.ovpn */; }; - 0ECEB1172252C8E900E9E551 /* tunnelbear.enc.8.key in Resources */ = {isa = PBXBuildFile; fileRef = 0ECEB1142252C8E900E9E551 /* tunnelbear.enc.8.key */; }; - 0ECEB1182252C8E900E9E551 /* tunnelbear.enc.8.key in Resources */ = {isa = PBXBuildFile; fileRef = 0ECEB1142252C8E900E9E551 /* tunnelbear.enc.8.key */; }; - 0ECEB11B2252CDAD00E9E551 /* tunnelbear.crt in Resources */ = {isa = PBXBuildFile; fileRef = 0ECEB11A2252CDAD00E9E551 /* tunnelbear.crt */; }; - 0ECEB11C2252CDAD00E9E551 /* tunnelbear.crt in Resources */ = {isa = PBXBuildFile; fileRef = 0ECEB11A2252CDAD00E9E551 /* tunnelbear.crt */; }; - 0EE2F96E2291636B00F56F49 /* IPv4Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F96D2291636B00F56F49 /* IPv4Settings.swift */; }; - 0EE2F96F2291636B00F56F49 /* IPv4Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F96D2291636B00F56F49 /* IPv4Settings.swift */; }; - 0EE2F9712291638600F56F49 /* IPv6Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9702291638600F56F49 /* IPv6Settings.swift */; }; - 0EE2F9722291638600F56F49 /* IPv6Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9702291638600F56F49 /* IPv6Settings.swift */; }; - 0EE2F974229163C900F56F49 /* Proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F973229163C900F56F49 /* Proxy.swift */; }; - 0EE2F975229163C900F56F49 /* Proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F973229163C900F56F49 /* Proxy.swift */; }; - 0EE2F97A2291817300F56F49 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9792291817300F56F49 /* Errors.swift */; }; - 0EE2F97B2291817300F56F49 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9792291817300F56F49 /* Errors.swift */; }; - 0EE2F9AC2291853D00F56F49 /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9AB2291853D00F56F49 /* Session.swift */; }; - 0EE2F9AD2291853D00F56F49 /* Session.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9AB2291853D00F56F49 /* Session.swift */; }; - 0EE2F9F022918DA100F56F49 /* NETCPSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E022918DA100F56F49 /* NETCPSocket.swift */; }; - 0EE2F9F122918DA100F56F49 /* NETCPSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E022918DA100F56F49 /* NETCPSocket.swift */; }; - 0EE2F9F222918DA100F56F49 /* NETunnelInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E122918DA100F56F49 /* NETunnelInterface.swift */; }; - 0EE2F9F322918DA100F56F49 /* NETunnelInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E122918DA100F56F49 /* NETunnelInterface.swift */; }; - 0EE2F9F422918DA100F56F49 /* NWTCPConnectionState+Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E222918DA100F56F49 /* NWTCPConnectionState+Description.swift */; }; - 0EE2F9F522918DA100F56F49 /* NWTCPConnectionState+Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E222918DA100F56F49 /* NWTCPConnectionState+Description.swift */; }; - 0EE2F9F622918DA100F56F49 /* NEUDPSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E322918DA100F56F49 /* NEUDPSocket.swift */; }; - 0EE2F9F722918DA100F56F49 /* NEUDPSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E322918DA100F56F49 /* NEUDPSocket.swift */; }; - 0EE2F9F822918DA100F56F49 /* NWUDPSessionState+Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E422918DA100F56F49 /* NWUDPSessionState+Description.swift */; }; - 0EE2F9F922918DA100F56F49 /* NWUDPSessionState+Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E422918DA100F56F49 /* NWUDPSessionState+Description.swift */; }; - 0EE2F9FA22918DA100F56F49 /* DNSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E522918DA100F56F49 /* DNSResolver.swift */; }; - 0EE2F9FB22918DA100F56F49 /* DNSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E522918DA100F56F49 /* DNSResolver.swift */; }; - 0EE2F9FE22918DA100F56F49 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E722918DA100F56F49 /* Keychain.swift */; }; - 0EE2F9FF22918DA100F56F49 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E722918DA100F56F49 /* Keychain.swift */; }; - 0EE2FA0022918DA100F56F49 /* MemoryDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E822918DA100F56F49 /* MemoryDestination.swift */; }; - 0EE2FA0122918DA100F56F49 /* MemoryDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E822918DA100F56F49 /* MemoryDestination.swift */; }; - 0EE2FA0222918DA100F56F49 /* GenericSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E922918DA100F56F49 /* GenericSocket.swift */; }; - 0EE2FA0322918DA100F56F49 /* GenericSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9E922918DA100F56F49 /* GenericSocket.swift */; }; - 0EE2FA0622918DA100F56F49 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9EB22918DA100F56F49 /* Utils.swift */; }; - 0EE2FA0722918DA100F56F49 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9EB22918DA100F56F49 /* Utils.swift */; }; - 0EE2FA0A22918DA100F56F49 /* InterfaceObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9ED22918DA100F56F49 /* InterfaceObserver.swift */; }; - 0EE2FA0B22918DA100F56F49 /* InterfaceObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2F9ED22918DA100F56F49 /* InterfaceObserver.swift */; }; - 0EE2FA422291954300F56F49 /* AppExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0E2291953300F56F49 /* AppExtensionTests.swift */; }; - 0EE2FA432291954300F56F49 /* CompressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1C2291953300F56F49 /* CompressionTests.swift */; }; - 0EE2FA442291954300F56F49 /* ConfigurationParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA162291953300F56F49 /* ConfigurationParserTests.swift */; }; - 0EE2FA452291954300F56F49 /* ControlChannelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1A2291953300F56F49 /* ControlChannelTests.swift */; }; - 0EE2FA462291954300F56F49 /* DataManipulationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA192291953300F56F49 /* DataManipulationTests.swift */; }; - 0EE2FA472291954300F56F49 /* DataPathEncryptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1D2291953300F56F49 /* DataPathEncryptionTests.swift */; }; - 0EE2FA482291954300F56F49 /* DataPathPerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0D2291953300F56F49 /* DataPathPerformanceTests.swift */; }; - 0EE2FA492291954300F56F49 /* DNSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA112291953300F56F49 /* DNSTests.swift */; }; - 0EE2FA4A2291954300F56F49 /* EncryptionPerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA172291953300F56F49 /* EncryptionPerformanceTests.swift */; }; - 0EE2FA4B2291954300F56F49 /* EncryptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA102291953300F56F49 /* EncryptionTests.swift */; }; - 0EE2FA4C2291954300F56F49 /* LinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA122291953300F56F49 /* LinkTests.swift */; }; - 0EE2FA4D2291954300F56F49 /* PacketTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA182291953300F56F49 /* PacketTests.swift */; }; - 0EE2FA4E2291954300F56F49 /* PushTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1B2291953300F56F49 /* PushTests.swift */; }; - 0EE2FA4F2291954300F56F49 /* RandomTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0F2291953300F56F49 /* RandomTests.swift */; }; - 0EE2FA502291954300F56F49 /* RawPerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0C2291953300F56F49 /* RawPerformanceTests.swift */; }; - 0EE2FA512291954300F56F49 /* RoutingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA132291953300F56F49 /* RoutingTests.swift */; }; - 0EE2FA522291954300F56F49 /* StaticKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA142291953300F56F49 /* StaticKeyTests.swift */; }; - 0EE2FA532291954300F56F49 /* TestUtils+OpenVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA152291953300F56F49 /* TestUtils+OpenVPN.swift */; }; - 0EE2FA542291954400F56F49 /* AppExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0E2291953300F56F49 /* AppExtensionTests.swift */; }; - 0EE2FA552291954400F56F49 /* CompressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1C2291953300F56F49 /* CompressionTests.swift */; }; - 0EE2FA562291954400F56F49 /* ConfigurationParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA162291953300F56F49 /* ConfigurationParserTests.swift */; }; - 0EE2FA572291954400F56F49 /* ControlChannelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1A2291953300F56F49 /* ControlChannelTests.swift */; }; - 0EE2FA582291954400F56F49 /* DataManipulationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA192291953300F56F49 /* DataManipulationTests.swift */; }; - 0EE2FA592291954400F56F49 /* DataPathEncryptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1D2291953300F56F49 /* DataPathEncryptionTests.swift */; }; - 0EE2FA5A2291954400F56F49 /* DataPathPerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0D2291953300F56F49 /* DataPathPerformanceTests.swift */; }; - 0EE2FA5B2291954400F56F49 /* DNSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA112291953300F56F49 /* DNSTests.swift */; }; - 0EE2FA5C2291954400F56F49 /* EncryptionPerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA172291953300F56F49 /* EncryptionPerformanceTests.swift */; }; - 0EE2FA5D2291954400F56F49 /* EncryptionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA102291953300F56F49 /* EncryptionTests.swift */; }; - 0EE2FA5E2291954400F56F49 /* LinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA122291953300F56F49 /* LinkTests.swift */; }; - 0EE2FA5F2291954400F56F49 /* PacketTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA182291953300F56F49 /* PacketTests.swift */; }; - 0EE2FA602291954400F56F49 /* PushTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA1B2291953300F56F49 /* PushTests.swift */; }; - 0EE2FA612291954400F56F49 /* RandomTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0F2291953300F56F49 /* RandomTests.swift */; }; - 0EE2FA622291954400F56F49 /* RawPerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA0C2291953300F56F49 /* RawPerformanceTests.swift */; }; - 0EE2FA632291954400F56F49 /* RoutingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA132291953300F56F49 /* RoutingTests.swift */; }; - 0EE2FA642291954400F56F49 /* StaticKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA142291953300F56F49 /* StaticKeyTests.swift */; }; - 0EE2FA652291954400F56F49 /* TestUtils+OpenVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE2FA152291953300F56F49 /* TestUtils+OpenVPN.swift */; }; - 0EEC49E120B5F7EA008FEB91 /* Allocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFEB42E2006D3C800F81029 /* Allocation.h */; }; - 0EEC49E520B5F7F6008FEB91 /* Errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFEB4362006D3C800F81029 /* Errors.h */; }; - 0EEC49EA20B5F7F6008FEB91 /* ZeroingData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFEB4412006D3C800F81029 /* ZeroingData.h */; }; - 0EFB902922788511006405E4 /* RoutingTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFB902722788511006405E4 /* RoutingTable.h */; }; - 0EFB902A22788511006405E4 /* RoutingTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFB902722788511006405E4 /* RoutingTable.h */; }; - 0EFB902B22788512006405E4 /* RoutingTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFB902822788511006405E4 /* RoutingTable.m */; }; - 0EFB902C22788512006405E4 /* RoutingTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFB902822788511006405E4 /* RoutingTable.m */; }; - 0EFEB4592006D3C800F81029 /* Allocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFEB42E2006D3C800F81029 /* Allocation.h */; }; - 0EFEB45A2006D3C800F81029 /* TunnelInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB42F2006D3C800F81029 /* TunnelInterface.swift */; }; - 0EFEB45C2006D3C800F81029 /* ZeroingData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4312006D3C800F81029 /* ZeroingData.m */; }; - 0EFEB4612006D3C800F81029 /* Errors.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFEB4362006D3C800F81029 /* Errors.h */; }; - 0EFEB4622006D3C800F81029 /* SecureRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4372006D3C800F81029 /* SecureRandom.swift */; }; - 0EFEB4662006D3C800F81029 /* ZeroingData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB43B2006D3C800F81029 /* ZeroingData.swift */; }; - 0EFEB46C2006D3C800F81029 /* ZeroingData.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFEB4412006D3C800F81029 /* ZeroingData.h */; }; - 0EFEB46D2006D3C800F81029 /* Data+Manipulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4432006D3C800F81029 /* Data+Manipulation.swift */; }; - 0EFEB46F2006D3C800F81029 /* IOInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4452006D3C800F81029 /* IOInterface.swift */; }; - 0EFEB4702006D3C800F81029 /* Allocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4462006D3C800F81029 /* Allocation.m */; }; - 0EFEB4732006D3C800F81029 /* LinkInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4492006D3C800F81029 /* LinkInterface.swift */; }; - 0EFEB4742006D3C800F81029 /* CoreConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB44A2006D3C800F81029 /* CoreConfiguration.swift */; }; - 0EFEB4752006D3C800F81029 /* Errors.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB44B2006D3C800F81029 /* Errors.m */; }; - 0EFEB4902006D7F300F81029 /* TunnelInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB42F2006D3C800F81029 /* TunnelInterface.swift */; }; - 0EFEB4922006D7F300F81029 /* ZeroingData.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4312006D3C800F81029 /* ZeroingData.m */; }; - 0EFEB4952006D7F300F81029 /* SecureRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4372006D3C800F81029 /* SecureRandom.swift */; }; - 0EFEB4982006D7F300F81029 /* ZeroingData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB43B2006D3C800F81029 /* ZeroingData.swift */; }; - 0EFEB49C2006D7F300F81029 /* Data+Manipulation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4432006D3C800F81029 /* Data+Manipulation.swift */; }; - 0EFEB49D2006D7F300F81029 /* IOInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4452006D3C800F81029 /* IOInterface.swift */; }; - 0EFEB49E2006D7F300F81029 /* Allocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4462006D3C800F81029 /* Allocation.m */; }; - 0EFEB4A12006D7F300F81029 /* LinkInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB4492006D3C800F81029 /* LinkInterface.swift */; }; - 0EFEB4A22006D7F300F81029 /* CoreConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB44A2006D3C800F81029 /* CoreConfiguration.swift */; }; - 0EFEB4A32006D7F300F81029 /* Errors.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFEB44B2006D3C800F81029 /* Errors.m */; }; - 14A98E2438394F91CA6E81FF /* Pods_ios_TunnelKitDemoTunnel_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 488FA71CA2DC38D2FDF7D1D8 /* Pods_ios_TunnelKitDemoTunnel_iOS.framework */; }; - 2E1C97B5CEB3ACB400B2B654 /* Pods_ios_TunnelKitDemo_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B24169970F957D36C9D0765C /* Pods_ios_TunnelKitDemo_iOS.framework */; }; - 3298292573C925E76D8DC769 /* Pods_macos_TunnelKitTests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D383BA02D6881FDBEF55562A /* Pods_macos_TunnelKitTests_macOS.framework */; }; - 51082C1C1032265B55A0DB50 /* Pods_macos_TunnelKitDemoTunnel_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A49801900FA52CE67047623B /* Pods_macos_TunnelKitDemoTunnel_macOS.framework */; }; - 721A20C2EC6A9738AEBC1F44 /* Pods_ios_TunnelKit_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44612F27B9EF890AF8B926DB /* Pods_ios_TunnelKit_iOS.framework */; }; - CD2AEAA866A43CDEC75AA2C1 /* Pods_ios_TunnelKitHost.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3B8B90F61D2F5537A5C0691 /* Pods_ios_TunnelKitHost.framework */; }; - E5A45D60EA9229A27490EE2C /* Pods_ios_TunnelKitTests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C34F78A0C56932A2127E6C81 /* Pods_ios_TunnelKitTests_iOS.framework */; }; - FDC8526145844D69D78C0F44 /* Pods_macos_TunnelKitDemo_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501B04C95D9A457FFA483C3B /* Pods_macos_TunnelKitDemo_macOS.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 0E0541A725A2343500EFC5FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E05419E25A2343500EFC5FF; - remoteInfo = Tunnel; - }; - 0E0541F625A235F200EFC5FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E17D7F81F730D9F009EE129; - remoteInfo = "TunnelKit-iOS"; - }; - 0E0541F825A235F700EFC5FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E17D7F81F730D9F009EE129; - remoteInfo = "TunnelKit-iOS"; - }; - 0E05427125A2399500EFC5FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E3251C41F95770D00C108D9; - remoteInfo = "TunnelKit-macOS"; - }; - 0E05427E25A239C600EFC5FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E05427625A239C600EFC5FF; - remoteInfo = Tunnel; - }; - 0E05428D25A239E700EFC5FF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E3251C41F95770D00C108D9; - remoteInfo = "TunnelKit-macOS"; - }; - 0E1108A01F77B9E800A92462 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E17D7F81F730D9F009EE129; - remoteInfo = PIATunnel; - }; - 0E1108BB1F77BA0200A92462 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E1108A81F77B9F900A92462; - remoteInfo = PIATunnelHost; - }; - 0E9379CA1F819A4600CE91B6 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E17D7F81F730D9F009EE129; - remoteInfo = PIATunnel; - }; - 0EA82A292190B220007960EB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 0E17D7F01F730D9F009EE129 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0E3251C41F95770D00C108D9; - remoteInfo = "TunnelKit-macOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 0E0541AD25A2343500EFC5FF /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 0E0541A925A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05428425A239C600EFC5FF /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 0E05428025A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05438525A240E400EFC5FF /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 0E05438425A240E400EFC5FF /* TunnelKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05438825A240E900EFC5FF /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 0E05438725A240E900EFC5FF /* TunnelKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 0ECAF84C246697DA00D8266A /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 0ECAF84B246697DA00D8266A /* TunnelKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 003F0DF74DE0A7292E643803 /* Pods-ios-TunnelKitTests-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitTests-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitTests-iOS/Pods-ios-TunnelKitTests-iOS.release.xcconfig"; sourceTree = ""; }; - 0AF4DDAD0F2B526865FF49E2 /* Pods-macos-TunnelKitTests-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKitTests-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKitTests-macOS/Pods-macos-TunnelKitTests-macOS.debug.xcconfig"; sourceTree = ""; }; - 0E011F792196D93600BA59EE /* SocketType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SocketType.swift; sourceTree = ""; }; - 0E011F7C2196D97200BA59EE /* EndpointProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndpointProtocol.swift; sourceTree = ""; }; - 0E011F832196E25400BA59EE /* pia-hungary.ovpn */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "pia-hungary.ovpn"; sourceTree = ""; }; - 0E05413025A231D500EFC5FF /* DemoTunnel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DemoTunnel.entitlements; sourceTree = ""; }; - 0E05413225A231D500EFC5FF /* DemoTunnel.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = DemoTunnel.plist; sourceTree = ""; }; - 0E05413425A231D500EFC5FF /* Configuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; - 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = ""; }; - 0E05413925A231D500EFC5FF /* DemoTunnel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DemoTunnel.entitlements; sourceTree = ""; }; - 0E05413C25A231D500EFC5FF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 0E05413D25A231D500EFC5FF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 0E05413F25A231D500EFC5FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 0E05414025A231D500EFC5FF /* Demo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Demo.entitlements; sourceTree = ""; }; - 0E05414125A231D500EFC5FF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 0E05414225A231D500EFC5FF /* Demo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Demo.plist; sourceTree = ""; }; - 0E05414425A231D500EFC5FF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 0E05414525A231D500EFC5FF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 0E05414725A231D500EFC5FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 0E05414925A231D500EFC5FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 0E05414A25A231D500EFC5FF /* Demo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Demo.entitlements; sourceTree = ""; }; - 0E05414B25A231D500EFC5FF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 0E05414C25A231D500EFC5FF /* Demo.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Demo.plist; sourceTree = ""; }; - 0E05416925A232FD00EFC5FF /* TunnelKitDemo-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "TunnelKitDemo-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "TunnelKitDemoTunnel-iOS.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; - 0E05422C25A236EB00EFC5FF /* TunnelKitDemo-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "TunnelKitDemo-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "TunnelKitDemoTunnel-macOS.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E0B203E2278A85B007A3CB9 /* RoutingTableEntry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoutingTableEntry.h; sourceTree = ""; }; - 0E0B203F2278A85B007A3CB9 /* RoutingTableEntry.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoutingTableEntry.m; sourceTree = ""; }; - 0E11089A1F77B9E800A92462 /* TunnelKitTests-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "TunnelKitTests-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E11089E1F77B9E800A92462 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0E1108A91F77B9F900A92462 /* TunnelKitHost.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TunnelKitHost.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E1108AB1F77B9F900A92462 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 0E1108AD1F77B9F900A92462 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 0E1108B01F77B9F900A92462 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 0E1108B21F77B9F900A92462 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 0E1108B51F77B9F900A92462 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 0E1108B71F77B9F900A92462 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0E12B29D21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSRegularExpression+Shortcuts.swift"; sourceTree = ""; }; - 0E12B2A421454F7F00B4BAE9 /* BidirectionalState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BidirectionalState.swift; sourceTree = ""; }; - 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TunnelKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E23B3D82297463200304C30 /* TestUtils+Core.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TestUtils+Core.swift"; sourceTree = ""; }; - 0E23B3DD229749C600304C30 /* LinkProducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkProducer.swift; sourceTree = ""; }; - 0E23B3E222982AF800304C30 /* CryptoCBC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoCBC.h; sourceTree = ""; }; - 0E23B3E322982AF800304C30 /* CryptoAEAD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptoAEAD.m; sourceTree = ""; }; - 0E23B3E422982AF800304C30 /* CryptoCTR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoCTR.h; sourceTree = ""; }; - 0E23B3E522982AF800304C30 /* SessionKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SessionKey.swift; sourceTree = ""; }; - 0E23B3E622982AF800304C30 /* ControlChannelSerializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlChannelSerializer.swift; sourceTree = ""; }; - 0E23B3E722982AF800304C30 /* MSS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSS.h; sourceTree = ""; }; - 0E23B3E822982AF800304C30 /* PacketMacros.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PacketMacros.m; sourceTree = ""; }; - 0E23B3E922982AF800304C30 /* ControlChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlChannel.swift; sourceTree = ""; }; - 0E23B3EA22982AF800304C30 /* CoreConfiguration+OpenVPN.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CoreConfiguration+OpenVPN.swift"; sourceTree = ""; }; - 0E23B3EB22982AF800304C30 /* TLSBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TLSBox.m; sourceTree = ""; }; - 0E23B3EC22982AF800304C30 /* OpenVPNError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenVPNError.swift; sourceTree = ""; }; - 0E23B3ED22982AF800304C30 /* ControlPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ControlPacket.h; sourceTree = ""; }; - 0E23B3EE22982AF800304C30 /* CryptoBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptoBox.m; sourceTree = ""; }; - 0E23B3EF22982AF800304C30 /* OpenVPNSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenVPNSession.swift; sourceTree = ""; }; - 0E23B3F022982AF800304C30 /* OpenVPNSession+PIA.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OpenVPNSession+PIA.swift"; sourceTree = ""; }; - 0E23B3F122982AF800304C30 /* CryptoContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CryptoContainer.swift; sourceTree = ""; }; - 0E23B3F222982AF800304C30 /* DataPathCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataPathCrypto.h; sourceTree = ""; }; - 0E23B3F322982AF800304C30 /* OpenVPN.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenVPN.swift; sourceTree = ""; }; - 0E23B3F422982AF800304C30 /* CompressionAlgorithmNative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompressionAlgorithmNative.h; sourceTree = ""; }; - 0E23B3F522982AF800304C30 /* TLSWrap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TLSWrap.swift; sourceTree = ""; }; - 0E23B3F622982AF800304C30 /* DataPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataPath.h; sourceTree = ""; }; - 0E23B3F822982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OpenVPNTunnelProvider+Interaction.swift"; sourceTree = ""; }; - 0E23B3F922982AF800304C30 /* NEUDPLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NEUDPLink.swift; sourceTree = ""; }; - 0E23B3FA22982AF800304C30 /* ConnectionStrategy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConnectionStrategy.swift; sourceTree = ""; }; - 0E23B3FB22982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OpenVPNTunnelProvider+Configuration.swift"; sourceTree = ""; }; - 0E23B3FC22982AF800304C30 /* NETCPLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NETCPLink.swift; sourceTree = ""; }; - 0E23B3FD22982AF800304C30 /* OpenVPNTunnelProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenVPNTunnelProvider.swift; sourceTree = ""; }; - 0E23B3FE22982AF800304C30 /* PacketStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketStream.h; sourceTree = ""; }; - 0E23B3FF22982AF800304C30 /* ProtocolMacros.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProtocolMacros.swift; sourceTree = ""; }; - 0E23B40022982AF800304C30 /* ReplayProtector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReplayProtector.h; sourceTree = ""; }; - 0E23B40122982AF800304C30 /* Crypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Crypto.h; sourceTree = ""; }; - 0E23B40222982AF800304C30 /* CompressionAlgorithm.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CompressionAlgorithm.swift; sourceTree = ""; }; - 0E23B40322982AF800304C30 /* EncryptionBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EncryptionBridge.swift; sourceTree = ""; }; - 0E23B40422982AF800304C30 /* Authenticator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Authenticator.swift; sourceTree = ""; }; - 0E23B40522982AF800304C30 /* CompressionFraming.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CompressionFraming.swift; sourceTree = ""; }; - 0E23B40622982AF800304C30 /* CryptoCBC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptoCBC.m; sourceTree = ""; }; - 0E23B40722982AF800304C30 /* StaticKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StaticKey.swift; sourceTree = ""; }; - 0E23B40822982AF800304C30 /* PushReply.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushReply.swift; sourceTree = ""; }; - 0E23B40922982AF800304C30 /* PacketMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketMacros.h; sourceTree = ""; }; - 0E23B40A22982AF800304C30 /* MSS.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MSS.m; sourceTree = ""; }; - 0E23B40B22982AF800304C30 /* CryptoCTR.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptoCTR.m; sourceTree = ""; }; - 0E23B40C22982AF800304C30 /* CryptoAEAD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAEAD.h; sourceTree = ""; }; - 0E23B40D22982AF800304C30 /* CompressionFramingNative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompressionFramingNative.h; sourceTree = ""; }; - 0E23B40E22982AF800304C30 /* ConfigurationParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigurationParser.swift; sourceTree = ""; }; - 0E23B40F22982AF800304C30 /* Packet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Packet.swift; sourceTree = ""; }; - 0E23B41022982AF800304C30 /* CryptoBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoBox.h; sourceTree = ""; }; - 0E23B41122982AF800304C30 /* ControlPacket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ControlPacket.m; sourceTree = ""; }; - 0E23B41222982AF800304C30 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; - 0E23B41322982AF800304C30 /* TLSBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TLSBox.h; sourceTree = ""; }; - 0E23B41422982AF800304C30 /* ReplayProtector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReplayProtector.m; sourceTree = ""; }; - 0E23B41522982AF800304C30 /* CryptoMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoMacros.h; sourceTree = ""; }; - 0E23B41622982AF800304C30 /* PacketStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PacketStream.m; sourceTree = ""; }; - 0E23B41722982AF800304C30 /* Configuration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Configuration.swift; sourceTree = ""; }; - 0E23B41822982AF800304C30 /* DataPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DataPath.m; sourceTree = ""; }; - 0E23B41B22982AF800304C30 /* StandardLZO.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StandardLZO.m; sourceTree = ""; }; - 0E23B41D22982AF800304C30 /* lzodefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lzodefs.h; sourceTree = ""; }; - 0E23B41E22982AF800304C30 /* lzoconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lzoconf.h; sourceTree = ""; }; - 0E23B42022982AF800304C30 /* minilzo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = minilzo.h; sourceTree = ""; }; - 0E23B42422982AF800304C30 /* minilzo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = minilzo.c; sourceTree = ""; }; - 0E3251C51F95770D00C108D9 /* TunnelKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TunnelKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0E3B656E224923EC00EFF4DA /* tunnelbear.enc.1.ovpn */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tunnelbear.enc.1.ovpn; sourceTree = ""; }; - 0E3B65712249247E00EFF4DA /* tunnelbear.key */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tunnelbear.key; sourceTree = ""; }; - 0E411B992271F90700E0852C /* DNS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DNS.h; sourceTree = ""; }; - 0E411B9A2271F90700E0852C /* DNS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DNS.m; sourceTree = ""; }; - 0E411B9F2271FA3300E0852C /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libresolv.tbd; sourceTree = DEVELOPER_DIR; }; - 0E411BA12271FA3C00E0852C /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; - 0E500EA522493B5B00CAE560 /* tunnelbear.enc.1.key */ = {isa = PBXFileReference; lastKnownFileType = text; path = tunnelbear.enc.1.key; sourceTree = ""; }; - 0E58BF5522411F37006FB157 /* LZO.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LZO.h; sourceTree = ""; }; - 0E58BF5822411FEF006FB157 /* LZO.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LZO.m; sourceTree = ""; }; - 0E6479E0212EACD6008E6888 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0E749F612178911C00BB2701 /* pia-2048.pem */ = {isa = PBXFileReference; lastKnownFileType = text; path = "pia-2048.pem"; sourceTree = ""; }; - 0E7F3F69246ABA0F006BE77F /* IPHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IPHeader.swift; sourceTree = ""; }; - 0E85A25B202CCA3D0059E9F9 /* Host.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Host.entitlements; sourceTree = ""; }; - 0E94E8E925BACEBD0040BC30 /* DNSProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DNSProtocol.swift; sourceTree = ""; }; - 0EA82A232190B220007960EB /* TunnelKitTests-macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "TunnelKitTests-macOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0EA9F28826D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkExtensionVPNConfiguration.swift; sourceTree = ""; }; - 0EA9F28B26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkExtensionVPNProvider.swift; sourceTree = ""; }; - 0EA9F28E26D6AC6D00E806E1 /* VPNProviderIPC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VPNProviderIPC.swift; sourceTree = ""; }; - 0EA9F29426D6CA7E00E806E1 /* NetworkExtensionLocator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkExtensionLocator.swift; sourceTree = ""; }; - 0EAC57312494277A00D0FCE0 /* OpenVPNProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenVPNProvider.swift; sourceTree = ""; }; - 0EAC57322494277A00D0FCE0 /* MockVPNProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockVPNProvider.swift; sourceTree = ""; }; - 0EAC57332494277A00D0FCE0 /* VPNStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPNStatus.swift; sourceTree = ""; }; - 0EAC57342494277A00D0FCE0 /* VPNConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPNConfiguration.swift; sourceTree = ""; }; - 0EAC57352494277A00D0FCE0 /* VPNProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPNProvider.swift; sourceTree = ""; }; - 0EAC57362494277A00D0FCE0 /* VPN.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VPN.swift; sourceTree = ""; }; - 0EB03E0E2290CF52006D03A0 /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; - 0ECC60D72254981A0020BEAC /* ConfigurationError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationError.swift; sourceTree = ""; }; - 0ECCEA7E2622F2F00007DA28 /* NativeProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeProvider.swift; sourceTree = ""; }; - 0ECEB1132252C8E900E9E551 /* tunnelbear.enc.8.ovpn */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tunnelbear.enc.8.ovpn; sourceTree = ""; }; - 0ECEB1142252C8E900E9E551 /* tunnelbear.enc.8.key */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tunnelbear.enc.8.key; sourceTree = ""; }; - 0ECEB11A2252CDAD00E9E551 /* tunnelbear.crt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tunnelbear.crt; sourceTree = ""; }; - 0EE2F96D2291636B00F56F49 /* IPv4Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IPv4Settings.swift; sourceTree = ""; }; - 0EE2F9702291638600F56F49 /* IPv6Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IPv6Settings.swift; sourceTree = ""; }; - 0EE2F973229163C900F56F49 /* Proxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Proxy.swift; sourceTree = ""; }; - 0EE2F9792291817300F56F49 /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - 0EE2F9AB2291853D00F56F49 /* Session.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Session.swift; sourceTree = ""; }; - 0EE2F9E022918DA100F56F49 /* NETCPSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NETCPSocket.swift; sourceTree = ""; }; - 0EE2F9E122918DA100F56F49 /* NETunnelInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NETunnelInterface.swift; sourceTree = ""; }; - 0EE2F9E222918DA100F56F49 /* NWTCPConnectionState+Description.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NWTCPConnectionState+Description.swift"; sourceTree = ""; }; - 0EE2F9E322918DA100F56F49 /* NEUDPSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NEUDPSocket.swift; sourceTree = ""; }; - 0EE2F9E422918DA100F56F49 /* NWUDPSessionState+Description.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NWUDPSessionState+Description.swift"; sourceTree = ""; }; - 0EE2F9E522918DA100F56F49 /* DNSResolver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DNSResolver.swift; sourceTree = ""; }; - 0EE2F9E722918DA100F56F49 /* Keychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = ""; }; - 0EE2F9E822918DA100F56F49 /* MemoryDestination.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemoryDestination.swift; sourceTree = ""; }; - 0EE2F9E922918DA100F56F49 /* GenericSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GenericSocket.swift; sourceTree = ""; }; - 0EE2F9EB22918DA100F56F49 /* Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; - 0EE2F9ED22918DA100F56F49 /* InterfaceObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InterfaceObserver.swift; sourceTree = ""; }; - 0EE2FA0C2291953300F56F49 /* RawPerformanceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RawPerformanceTests.swift; sourceTree = ""; }; - 0EE2FA0D2291953300F56F49 /* DataPathPerformanceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataPathPerformanceTests.swift; sourceTree = ""; }; - 0EE2FA0E2291953300F56F49 /* AppExtensionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppExtensionTests.swift; sourceTree = ""; }; - 0EE2FA0F2291953300F56F49 /* RandomTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RandomTests.swift; sourceTree = ""; }; - 0EE2FA102291953300F56F49 /* EncryptionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EncryptionTests.swift; sourceTree = ""; }; - 0EE2FA112291953300F56F49 /* DNSTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DNSTests.swift; sourceTree = ""; }; - 0EE2FA122291953300F56F49 /* LinkTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinkTests.swift; sourceTree = ""; }; - 0EE2FA132291953300F56F49 /* RoutingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoutingTests.swift; sourceTree = ""; }; - 0EE2FA142291953300F56F49 /* StaticKeyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StaticKeyTests.swift; sourceTree = ""; }; - 0EE2FA152291953300F56F49 /* TestUtils+OpenVPN.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TestUtils+OpenVPN.swift"; sourceTree = ""; }; - 0EE2FA162291953300F56F49 /* ConfigurationParserTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigurationParserTests.swift; sourceTree = ""; }; - 0EE2FA172291953300F56F49 /* EncryptionPerformanceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EncryptionPerformanceTests.swift; sourceTree = ""; }; - 0EE2FA182291953300F56F49 /* PacketTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PacketTests.swift; sourceTree = ""; }; - 0EE2FA192291953300F56F49 /* DataManipulationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataManipulationTests.swift; sourceTree = ""; }; - 0EE2FA1A2291953300F56F49 /* ControlChannelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlChannelTests.swift; sourceTree = ""; }; - 0EE2FA1B2291953300F56F49 /* PushTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushTests.swift; sourceTree = ""; }; - 0EE2FA1C2291953300F56F49 /* CompressionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CompressionTests.swift; sourceTree = ""; }; - 0EE2FA1D2291953300F56F49 /* DataPathEncryptionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataPathEncryptionTests.swift; sourceTree = ""; }; - 0EFB902722788511006405E4 /* RoutingTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoutingTable.h; sourceTree = ""; }; - 0EFB902822788511006405E4 /* RoutingTable.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RoutingTable.m; sourceTree = ""; }; - 0EFEB42E2006D3C800F81029 /* Allocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Allocation.h; sourceTree = ""; }; - 0EFEB42F2006D3C800F81029 /* TunnelInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TunnelInterface.swift; sourceTree = ""; }; - 0EFEB4312006D3C800F81029 /* ZeroingData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZeroingData.m; sourceTree = ""; }; - 0EFEB4362006D3C800F81029 /* Errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Errors.h; sourceTree = ""; }; - 0EFEB4372006D3C800F81029 /* SecureRandom.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureRandom.swift; sourceTree = ""; }; - 0EFEB43B2006D3C800F81029 /* ZeroingData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZeroingData.swift; sourceTree = ""; }; - 0EFEB4412006D3C800F81029 /* ZeroingData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZeroingData.h; sourceTree = ""; }; - 0EFEB4432006D3C800F81029 /* Data+Manipulation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+Manipulation.swift"; sourceTree = ""; }; - 0EFEB4452006D3C800F81029 /* IOInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IOInterface.swift; sourceTree = ""; }; - 0EFEB4462006D3C800F81029 /* Allocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Allocation.m; sourceTree = ""; }; - 0EFEB4492006D3C800F81029 /* LinkInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinkInterface.swift; sourceTree = ""; }; - 0EFEB44A2006D3C800F81029 /* CoreConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreConfiguration.swift; sourceTree = ""; }; - 0EFEB44B2006D3C800F81029 /* Errors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Errors.m; sourceTree = ""; }; - 1067E0DA76AE8CAF89D71584 /* Pods-ios-Demo-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-Demo-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-Demo-iOS/Pods-ios-Demo-iOS.debug.xcconfig"; sourceTree = ""; }; - 157488BB58C4CC25BC563A54 /* Pods-macos-DemoTunnel-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-DemoTunnel-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-DemoTunnel-macOS/Pods-macos-DemoTunnel-macOS.debug.xcconfig"; sourceTree = ""; }; - 1DF4ACC345765CF3A1576D4A /* Pods-macos-Demo-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-Demo-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-Demo-macOS/Pods-macos-Demo-macOS.release.xcconfig"; sourceTree = ""; }; - 237CD7047F4B1693AB36A1A1 /* Pods-macos-TunnelKit-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKit-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKit-macOS/Pods-macos-TunnelKit-macOS.release.xcconfig"; sourceTree = ""; }; - 2DD764A8C3908CB48A442295 /* Pods-TunnelKit-TunnelKitTests-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKitTests-macOS.release.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKitTests-macOS/Pods-TunnelKit-TunnelKitTests-macOS.release.xcconfig"; sourceTree = ""; }; - 33C00B882D0DF7C28257630B /* Pods-TunnelKit-TunnelKit-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKit-macOS.debug.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKit-macOS/Pods-TunnelKit-TunnelKit-macOS.debug.xcconfig"; sourceTree = ""; }; - 358F3D1B9B9A8FEE29E522F6 /* Pods-TunnelKit-TunnelKitHost.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKitHost.debug.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKitHost/Pods-TunnelKit-TunnelKitHost.debug.xcconfig"; sourceTree = ""; }; - 3DE692CD2FA087ED390CB9C6 /* Pods-TunnelKit-TunnelKitTests-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKitTests-iOS.debug.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKitTests-iOS/Pods-TunnelKit-TunnelKitTests-iOS.debug.xcconfig"; sourceTree = ""; }; - 3EB4715EDD7F534B7198FDED /* Pods-ios-TunnelKitDemoTunnel-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitDemoTunnel-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitDemoTunnel-iOS/Pods-ios-TunnelKitDemoTunnel-iOS.debug.xcconfig"; sourceTree = ""; }; - 4226303B698C4BB5A2D3EA0B /* Pods-ios-TunnelKit-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKit-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKit-iOS/Pods-ios-TunnelKit-iOS.release.xcconfig"; sourceTree = ""; }; - 442D4665BCE9ADD09F63F180 /* Pods-ios-Demo-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-Demo-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-Demo-iOS/Pods-ios-Demo-iOS.release.xcconfig"; sourceTree = ""; }; - 44612F27B9EF890AF8B926DB /* Pods_ios_TunnelKit_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKit_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 488FA71CA2DC38D2FDF7D1D8 /* Pods_ios_TunnelKitDemoTunnel_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitDemoTunnel_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 4EF702DD650A65FCBA51506A /* Pods_macos_TunnelKit_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKit_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 501B04C95D9A457FFA483C3B /* Pods_macos_TunnelKitDemo_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKitDemo_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 64037042B4D72C5837330825 /* Pods-ios-TunnelKitTests-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitTests-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitTests-iOS/Pods-ios-TunnelKitTests-iOS.debug.xcconfig"; sourceTree = ""; }; - 699D1F9CD94BC7F9348EB407 /* Pods-macos-TunnelKitTests-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKitTests-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKitTests-macOS/Pods-macos-TunnelKitTests-macOS.release.xcconfig"; sourceTree = ""; }; - 7495E11A5285EEDEFF4CE52C /* Pods-macos-TunnelKitDemoTunnel-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKitDemoTunnel-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKitDemoTunnel-macOS/Pods-macos-TunnelKitDemoTunnel-macOS.debug.xcconfig"; sourceTree = ""; }; - 7CE8A5CE244CC80CAF8BD890 /* Pods-TunnelKit-TunnelKitTests-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKitTests-macOS.debug.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKitTests-macOS/Pods-TunnelKit-TunnelKitTests-macOS.debug.xcconfig"; sourceTree = ""; }; - 82499AC779944BE0D1CA651C /* Pods-TunnelKit-TunnelKitTests-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKitTests-iOS.release.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKitTests-iOS/Pods-TunnelKit-TunnelKitTests-iOS.release.xcconfig"; sourceTree = ""; }; - 83830F707A0FDAE3EBFA9008 /* Pods-ios-DemoTunnel-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-DemoTunnel-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-DemoTunnel-iOS/Pods-ios-DemoTunnel-iOS.debug.xcconfig"; sourceTree = ""; }; - 8D69E51508704ECD5ACEBE79 /* Pods-ios-TunnelKitDemoTunnel-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitDemoTunnel-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitDemoTunnel-iOS/Pods-ios-TunnelKitDemoTunnel-iOS.release.xcconfig"; sourceTree = ""; }; - 9D2F19A70BA726DCE60AAFFB /* Pods-ios-TunnelKitDemo-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitDemo-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitDemo-iOS/Pods-ios-TunnelKitDemo-iOS.debug.xcconfig"; sourceTree = ""; }; - A0C15F7E031B3D09730175D7 /* Pods-macos-TunnelKitDemo-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKitDemo-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKitDemo-macOS/Pods-macos-TunnelKitDemo-macOS.release.xcconfig"; sourceTree = ""; }; - A43E3F5B33D769164DD14EC8 /* Pods-ios-TunnelKitHost.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitHost.release.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitHost/Pods-ios-TunnelKitHost.release.xcconfig"; sourceTree = ""; }; - A49801900FA52CE67047623B /* Pods_macos_TunnelKitDemoTunnel_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKitDemoTunnel_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A762728F862EA173640D3A97 /* Pods-TunnelKit-TunnelKit-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKit-iOS.release.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKit-iOS/Pods-TunnelKit-TunnelKit-iOS.release.xcconfig"; sourceTree = ""; }; - ABA2E2882F0B8F6523E34161 /* Pods-macos-TunnelKit-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKit-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKit-macOS/Pods-macos-TunnelKit-macOS.debug.xcconfig"; sourceTree = ""; }; - B09331876EB06B7AE0D3FCB8 /* Pods-macos-DemoTunnel-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-DemoTunnel-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-DemoTunnel-macOS/Pods-macos-DemoTunnel-macOS.release.xcconfig"; sourceTree = ""; }; - B24169970F957D36C9D0765C /* Pods_ios_TunnelKitDemo_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitDemo_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C34F78A0C56932A2127E6C81 /* Pods_ios_TunnelKitTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CB9BB9617ACEA441E0AEA67E /* Pods-ios-TunnelKit-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKit-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKit-iOS/Pods-ios-TunnelKit-iOS.debug.xcconfig"; sourceTree = ""; }; - CED3394EFA1921EA509733F9 /* Pods-TunnelKit-TunnelKitHost.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKitHost.release.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKitHost/Pods-TunnelKit-TunnelKitHost.release.xcconfig"; sourceTree = ""; }; - D383BA02D6881FDBEF55562A /* Pods_macos_TunnelKitTests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_TunnelKitTests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D3B8B90F61D2F5537A5C0691 /* Pods_ios_TunnelKitHost.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_TunnelKitHost.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DADE23B0846CE92650EB7D86 /* Pods-TunnelKit-TunnelKit-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKit-macOS.release.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKit-macOS/Pods-TunnelKit-TunnelKit-macOS.release.xcconfig"; sourceTree = ""; }; - DE4FDDA826C589F80328BE1D /* Pods-ios-TunnelKitDemo-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitDemo-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitDemo-iOS/Pods-ios-TunnelKitDemo-iOS.release.xcconfig"; sourceTree = ""; }; - EE99E5D92B1FFAC463F582C2 /* Pods-macos-TunnelKitDemo-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKitDemo-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKitDemo-macOS/Pods-macos-TunnelKitDemo-macOS.debug.xcconfig"; sourceTree = ""; }; - EEC658ED16E01A856F5DECE3 /* Pods-ios-DemoTunnel-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-DemoTunnel-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-DemoTunnel-iOS/Pods-ios-DemoTunnel-iOS.release.xcconfig"; sourceTree = ""; }; - F24743BB5D4C718576B270FA /* Pods-macos-TunnelKitDemoTunnel-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-TunnelKitDemoTunnel-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-TunnelKitDemoTunnel-macOS/Pods-macos-TunnelKitDemoTunnel-macOS.release.xcconfig"; sourceTree = ""; }; - F34879B2239747D1719131F3 /* Pods-TunnelKit-TunnelKit-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TunnelKit-TunnelKit-iOS.debug.xcconfig"; path = "Target Support Files/Pods-TunnelKit-TunnelKit-iOS/Pods-TunnelKit-TunnelKit-iOS.debug.xcconfig"; sourceTree = ""; }; - F7902F7ED688CF5A114F2582 /* Pods-macos-Demo-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-Demo-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-Demo-macOS/Pods-macos-Demo-macOS.debug.xcconfig"; sourceTree = ""; }; - F9C57886F6F3BEE985AA2D4D /* Pods-ios-TunnelKitHost.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-TunnelKitHost.debug.xcconfig"; path = "Target Support Files/Pods-ios-TunnelKitHost/Pods-ios-TunnelKitHost.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 0E05416625A232FD00EFC5FF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2E1C97B5CEB3ACB400B2B654 /* Pods_ios_TunnelKitDemo_iOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05419C25A2343500EFC5FF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E0541A125A2343500EFC5FF /* NetworkExtension.framework in Frameworks */, - 14A98E2438394F91CA6E81FF /* Pods_ios_TunnelKitDemoTunnel_iOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05422925A236EB00EFC5FF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FDC8526145844D69D78C0F44 /* Pods_macos_TunnelKitDemo_macOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05427425A239C600EFC5FF /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E05427825A239C600EFC5FF /* NetworkExtension.framework in Frameworks */, - 51082C1C1032265B55A0DB50 /* Pods_macos_TunnelKitDemoTunnel_macOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E1108971F77B9E800A92462 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E11089F1F77B9E800A92462 /* TunnelKit.framework in Frameworks */, - E5A45D60EA9229A27490EE2C /* Pods_ios_TunnelKitTests_iOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E1108A61F77B9F900A92462 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0ECAF84A246697DA00D8266A /* TunnelKit.framework in Frameworks */, - CD2AEAA866A43CDEC75AA2C1 /* Pods_ios_TunnelKitHost.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E17D7F51F730D9F009EE129 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E411BA22271FA3C00E0852C /* libresolv.tbd in Frameworks */, - 721A20C2EC6A9738AEBC1F44 /* Pods_ios_TunnelKit_iOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E3251C11F95770D00C108D9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E411BA02271FA3300E0852C /* libresolv.tbd in Frameworks */, - 059617B22CA9F55F1416F32D /* Pods_macos_TunnelKit_macOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0EA82A202190B220007960EB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EA82A282190B220007960EB /* TunnelKit.framework in Frameworks */, - 3298292573C925E76D8DC769 /* Pods_macos_TunnelKitTests_macOS.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0E05412B25A231D500EFC5FF /* Demo */ = { - isa = PBXGroup; - children = ( - 0E05414325A231D500EFC5FF /* iOS */, - 0E05413B25A231D500EFC5FF /* macOS */, - 0E05413225A231D500EFC5FF /* DemoTunnel.plist */, - 0E05413425A231D500EFC5FF /* Configuration.swift */, - 0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */, - ); - path = Demo; - sourceTree = ""; - }; - 0E05413B25A231D500EFC5FF /* macOS */ = { - isa = PBXGroup; - children = ( - 0E05414025A231D500EFC5FF /* Demo.entitlements */, - 0E05413025A231D500EFC5FF /* DemoTunnel.entitlements */, - 0E05414225A231D500EFC5FF /* Demo.plist */, - 0E05414125A231D500EFC5FF /* AppDelegate.swift */, - 0E05413C25A231D500EFC5FF /* ViewController.swift */, - 0E05413D25A231D500EFC5FF /* Assets.xcassets */, - 0E05413E25A231D500EFC5FF /* Main.storyboard */, - ); - path = macOS; - sourceTree = ""; - }; - 0E05414325A231D500EFC5FF /* iOS */ = { - isa = PBXGroup; - children = ( - 0E05414A25A231D500EFC5FF /* Demo.entitlements */, - 0E05413925A231D500EFC5FF /* DemoTunnel.entitlements */, - 0E05414C25A231D500EFC5FF /* Demo.plist */, - 0E05414B25A231D500EFC5FF /* AppDelegate.swift */, - 0E05414425A231D500EFC5FF /* ViewController.swift */, - 0E05414525A231D500EFC5FF /* Assets.xcassets */, - 0E05414625A231D500EFC5FF /* LaunchScreen.storyboard */, - 0E05414825A231D500EFC5FF /* Main.storyboard */, - ); - path = iOS; - sourceTree = ""; - }; - 0E11089B1F77B9E800A92462 /* Tests */ = { - isa = PBXGroup; - children = ( - 0E23B3D52297451700304C30 /* OpenVPN */, - 0E23B3D62297452B00304C30 /* LZO */, - 0E23B3D72297452E00304C30 /* Core */, - 0E11089E1F77B9E800A92462 /* Info.plist */, - 0E749F612178911C00BB2701 /* pia-2048.pem */, - 0E011F832196E25400BA59EE /* pia-hungary.ovpn */, - 0ECEB11A2252CDAD00E9E551 /* tunnelbear.crt */, - 0E500EA522493B5B00CAE560 /* tunnelbear.enc.1.key */, - 0E3B656E224923EC00EFF4DA /* tunnelbear.enc.1.ovpn */, - 0ECEB1142252C8E900E9E551 /* tunnelbear.enc.8.key */, - 0ECEB1132252C8E900E9E551 /* tunnelbear.enc.8.ovpn */, - 0E3B65712249247E00EFF4DA /* tunnelbear.key */, - ); - path = Tests; - sourceTree = ""; - }; - 0E1108AA1F77B9F900A92462 /* Host */ = { - isa = PBXGroup; - children = ( - 0E85A25B202CCA3D0059E9F9 /* Host.entitlements */, - 0E1108AB1F77B9F900A92462 /* AppDelegate.swift */, - 0E1108AD1F77B9F900A92462 /* ViewController.swift */, - 0E1108AF1F77B9F900A92462 /* Main.storyboard */, - 0E1108B21F77B9F900A92462 /* Assets.xcassets */, - 0E1108B41F77B9F900A92462 /* LaunchScreen.storyboard */, - 0E1108B71F77B9F900A92462 /* Info.plist */, - ); - path = Host; - sourceTree = ""; - }; - 0E17D7EF1F730D9F009EE129 = { - isa = PBXGroup; - children = ( - 0E17D7FB1F730D9F009EE129 /* TunnelKit */, - 0E17D7FA1F730D9F009EE129 /* Products */, - 4A8A97836BAB183DA0A91902 /* Pods */, - 1B27D1F0B446D5907FAF40E1 /* Frameworks */, - ); - sourceTree = ""; - }; - 0E17D7FA1F730D9F009EE129 /* Products */ = { - isa = PBXGroup; - children = ( - 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */, - 0E11089A1F77B9E800A92462 /* TunnelKitTests-iOS.xctest */, - 0E1108A91F77B9F900A92462 /* TunnelKitHost.app */, - 0E3251C51F95770D00C108D9 /* TunnelKit.framework */, - 0EA82A232190B220007960EB /* TunnelKitTests-macOS.xctest */, - 0E05416925A232FD00EFC5FF /* TunnelKitDemo-iOS.app */, - 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */, - 0E05422C25A236EB00EFC5FF /* TunnelKitDemo-macOS.app */, - 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */, - ); - name = Products; - sourceTree = ""; - }; - 0E17D7FB1F730D9F009EE129 /* TunnelKit */ = { - isa = PBXGroup; - children = ( - 0E6479E0212EACD6008E6888 /* Info.plist */, - 0E05412B25A231D500EFC5FF /* Demo */, - 0E1108AA1F77B9F900A92462 /* Host */, - 0E17D8041F730DDD009EE129 /* Sources */, - 0E11089B1F77B9E800A92462 /* Tests */, - ); - path = TunnelKit; - sourceTree = ""; - }; - 0E17D8041F730DDD009EE129 /* Sources */ = { - isa = PBXGroup; - children = ( - 0EE2F9DD22918DA100F56F49 /* AppExtension */, - 0EFEB4292006D3C800F81029 /* Core */, - 0E23B41922982AF800304C30 /* Extra */, - 0EAC57302494277A00D0FCE0 /* Manager */, - 0E23B3E022982AF800304C30 /* Protocols */, - ); - path = Sources; - sourceTree = ""; - }; - 0E23B3D52297451700304C30 /* OpenVPN */ = { - isa = PBXGroup; - children = ( - 0EE2FA0E2291953300F56F49 /* AppExtensionTests.swift */, - 0EE2FA162291953300F56F49 /* ConfigurationParserTests.swift */, - 0EE2FA1A2291953300F56F49 /* ControlChannelTests.swift */, - 0EE2FA1D2291953300F56F49 /* DataPathEncryptionTests.swift */, - 0EE2FA0D2291953300F56F49 /* DataPathPerformanceTests.swift */, - 0EE2FA172291953300F56F49 /* EncryptionPerformanceTests.swift */, - 0EE2FA102291953300F56F49 /* EncryptionTests.swift */, - 0EE2FA122291953300F56F49 /* LinkTests.swift */, - 0EE2FA182291953300F56F49 /* PacketTests.swift */, - 0EE2FA1B2291953300F56F49 /* PushTests.swift */, - 0EE2FA142291953300F56F49 /* StaticKeyTests.swift */, - 0EE2FA152291953300F56F49 /* TestUtils+OpenVPN.swift */, - ); - path = OpenVPN; - sourceTree = ""; - }; - 0E23B3D62297452B00304C30 /* LZO */ = { - isa = PBXGroup; - children = ( - 0EE2FA1C2291953300F56F49 /* CompressionTests.swift */, - ); - path = LZO; - sourceTree = ""; - }; - 0E23B3D72297452E00304C30 /* Core */ = { - isa = PBXGroup; - children = ( - 0EE2FA192291953300F56F49 /* DataManipulationTests.swift */, - 0EE2FA112291953300F56F49 /* DNSTests.swift */, - 0EE2FA0F2291953300F56F49 /* RandomTests.swift */, - 0EE2FA0C2291953300F56F49 /* RawPerformanceTests.swift */, - 0EE2FA132291953300F56F49 /* RoutingTests.swift */, - 0E23B3D82297463200304C30 /* TestUtils+Core.swift */, - ); - path = Core; - sourceTree = ""; - }; - 0E23B3E022982AF800304C30 /* Protocols */ = { - isa = PBXGroup; - children = ( - 0ECCEA7D2622F2D30007DA28 /* Native */, - 0E23B3E122982AF800304C30 /* OpenVPN */, - ); - path = Protocols; - sourceTree = ""; - }; - 0E23B3E122982AF800304C30 /* OpenVPN */ = { - isa = PBXGroup; - children = ( - 0E23B3F722982AF800304C30 /* AppExtension */, - 0E23B40422982AF800304C30 /* Authenticator.swift */, - 0E23B40222982AF800304C30 /* CompressionAlgorithm.swift */, - 0E23B3F422982AF800304C30 /* CompressionAlgorithmNative.h */, - 0E23B40522982AF800304C30 /* CompressionFraming.swift */, - 0E23B40D22982AF800304C30 /* CompressionFramingNative.h */, - 0E23B41722982AF800304C30 /* Configuration.swift */, - 0E23B40E22982AF800304C30 /* ConfigurationParser.swift */, - 0E23B3E922982AF800304C30 /* ControlChannel.swift */, - 0E23B3E622982AF800304C30 /* ControlChannelSerializer.swift */, - 0E23B3ED22982AF800304C30 /* ControlPacket.h */, - 0E23B41122982AF800304C30 /* ControlPacket.m */, - 0E23B3EA22982AF800304C30 /* CoreConfiguration+OpenVPN.swift */, - 0E23B40122982AF800304C30 /* Crypto.h */, - 0E23B40C22982AF800304C30 /* CryptoAEAD.h */, - 0E23B3E322982AF800304C30 /* CryptoAEAD.m */, - 0E23B41022982AF800304C30 /* CryptoBox.h */, - 0E23B3EE22982AF800304C30 /* CryptoBox.m */, - 0E23B3E222982AF800304C30 /* CryptoCBC.h */, - 0E23B40622982AF800304C30 /* CryptoCBC.m */, - 0E23B3F122982AF800304C30 /* CryptoContainer.swift */, - 0E23B3E422982AF800304C30 /* CryptoCTR.h */, - 0E23B40B22982AF800304C30 /* CryptoCTR.m */, - 0E23B41522982AF800304C30 /* CryptoMacros.h */, - 0E23B3F622982AF800304C30 /* DataPath.h */, - 0E23B41822982AF800304C30 /* DataPath.m */, - 0E23B3F222982AF800304C30 /* DataPathCrypto.h */, - 0E23B40322982AF800304C30 /* EncryptionBridge.swift */, - 0E23B41222982AF800304C30 /* module.modulemap */, - 0E23B3E722982AF800304C30 /* MSS.h */, - 0E23B40A22982AF800304C30 /* MSS.m */, - 0E23B3F322982AF800304C30 /* OpenVPN.swift */, - 0E23B3EC22982AF800304C30 /* OpenVPNError.swift */, - 0EAC57312494277A00D0FCE0 /* OpenVPNProvider.swift */, - 0E23B3EF22982AF800304C30 /* OpenVPNSession.swift */, - 0E23B3F022982AF800304C30 /* OpenVPNSession+PIA.swift */, - 0E23B40F22982AF800304C30 /* Packet.swift */, - 0E23B40922982AF800304C30 /* PacketMacros.h */, - 0E23B3E822982AF800304C30 /* PacketMacros.m */, - 0E23B3FE22982AF800304C30 /* PacketStream.h */, - 0E23B41622982AF800304C30 /* PacketStream.m */, - 0E23B3FF22982AF800304C30 /* ProtocolMacros.swift */, - 0E23B40822982AF800304C30 /* PushReply.swift */, - 0E23B40022982AF800304C30 /* ReplayProtector.h */, - 0E23B41422982AF800304C30 /* ReplayProtector.m */, - 0E23B3E522982AF800304C30 /* SessionKey.swift */, - 0E23B40722982AF800304C30 /* StaticKey.swift */, - 0E23B41322982AF800304C30 /* TLSBox.h */, - 0E23B3EB22982AF800304C30 /* TLSBox.m */, - 0E23B3F522982AF800304C30 /* TLSWrap.swift */, - ); - path = OpenVPN; - sourceTree = ""; - }; - 0E23B3F722982AF800304C30 /* AppExtension */ = { - isa = PBXGroup; - children = ( - 0E23B3FA22982AF800304C30 /* ConnectionStrategy.swift */, - 0E23B3FC22982AF800304C30 /* NETCPLink.swift */, - 0E23B3F922982AF800304C30 /* NEUDPLink.swift */, - 0E23B3FD22982AF800304C30 /* OpenVPNTunnelProvider.swift */, - 0E23B3FB22982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift */, - 0E23B3F822982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift */, - ); - path = AppExtension; - sourceTree = ""; - }; - 0E23B41922982AF800304C30 /* Extra */ = { - isa = PBXGroup; - children = ( - 0E23B41A22982AF800304C30 /* LZO */, - ); - path = Extra; - sourceTree = ""; - }; - 0E23B41A22982AF800304C30 /* LZO */ = { - isa = PBXGroup; - children = ( - 0E23B41C22982AF800304C30 /* lib */, - 0E23B41B22982AF800304C30 /* StandardLZO.m */, - ); - path = LZO; - sourceTree = ""; - }; - 0E23B41C22982AF800304C30 /* lib */ = { - isa = PBXGroup; - children = ( - 0E23B41E22982AF800304C30 /* lzoconf.h */, - 0E23B41D22982AF800304C30 /* lzodefs.h */, - 0E23B42422982AF800304C30 /* minilzo.c */, - 0E23B42022982AF800304C30 /* minilzo.h */, - ); - path = lib; - sourceTree = ""; - }; - 0EAC57302494277A00D0FCE0 /* Manager */ = { - isa = PBXGroup; - children = ( - 0EAC57322494277A00D0FCE0 /* MockVPNProvider.swift */, - 0EA9F29426D6CA7E00E806E1 /* NetworkExtensionLocator.swift */, - 0EA9F28826D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift */, - 0EA9F28B26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift */, - 0EAC57362494277A00D0FCE0 /* VPN.swift */, - 0EAC57342494277A00D0FCE0 /* VPNConfiguration.swift */, - 0EAC57352494277A00D0FCE0 /* VPNProvider.swift */, - 0EA9F28E26D6AC6D00E806E1 /* VPNProviderIPC.swift */, - 0EAC57332494277A00D0FCE0 /* VPNStatus.swift */, - ); - path = Manager; - sourceTree = ""; - }; - 0ECCEA7D2622F2D30007DA28 /* Native */ = { - isa = PBXGroup; - children = ( - 0ECCEA7E2622F2F00007DA28 /* NativeProvider.swift */, - ); - path = Native; - sourceTree = ""; - }; - 0EE2F9DD22918DA100F56F49 /* AppExtension */ = { - isa = PBXGroup; - children = ( - 0EE2F9DF22918DA100F56F49 /* Transport */, - 0EE2F9E922918DA100F56F49 /* GenericSocket.swift */, - 0EE2F9ED22918DA100F56F49 /* InterfaceObserver.swift */, - 0EE2F9E722918DA100F56F49 /* Keychain.swift */, - 0E23B3DD229749C600304C30 /* LinkProducer.swift */, - 0EE2F9E822918DA100F56F49 /* MemoryDestination.swift */, - ); - path = AppExtension; - sourceTree = ""; - }; - 0EE2F9DF22918DA100F56F49 /* Transport */ = { - isa = PBXGroup; - children = ( - 0EE2F9E022918DA100F56F49 /* NETCPSocket.swift */, - 0EE2F9E122918DA100F56F49 /* NETunnelInterface.swift */, - 0EE2F9E322918DA100F56F49 /* NEUDPSocket.swift */, - 0EE2F9E222918DA100F56F49 /* NWTCPConnectionState+Description.swift */, - 0EE2F9E422918DA100F56F49 /* NWUDPSessionState+Description.swift */, - ); - path = Transport; - sourceTree = ""; - }; - 0EFEB4292006D3C800F81029 /* Core */ = { - isa = PBXGroup; - children = ( - 0EFEB42E2006D3C800F81029 /* Allocation.h */, - 0EFEB4462006D3C800F81029 /* Allocation.m */, - 0E12B2A421454F7F00B4BAE9 /* BidirectionalState.swift */, - 0ECC60D72254981A0020BEAC /* ConfigurationError.swift */, - 0EFEB44A2006D3C800F81029 /* CoreConfiguration.swift */, - 0EFEB4432006D3C800F81029 /* Data+Manipulation.swift */, - 0E411B992271F90700E0852C /* DNS.h */, - 0E411B9A2271F90700E0852C /* DNS.m */, - 0E94E8E925BACEBD0040BC30 /* DNSProtocol.swift */, - 0EE2F9E522918DA100F56F49 /* DNSResolver.swift */, - 0E011F7C2196D97200BA59EE /* EndpointProtocol.swift */, - 0EFEB4362006D3C800F81029 /* Errors.h */, - 0EFEB44B2006D3C800F81029 /* Errors.m */, - 0EE2F9792291817300F56F49 /* Errors.swift */, - 0EFEB4452006D3C800F81029 /* IOInterface.swift */, - 0E7F3F69246ABA0F006BE77F /* IPHeader.swift */, - 0EE2F96D2291636B00F56F49 /* IPv4Settings.swift */, - 0EE2F9702291638600F56F49 /* IPv6Settings.swift */, - 0EFEB4492006D3C800F81029 /* LinkInterface.swift */, - 0E58BF5522411F37006FB157 /* LZO.h */, - 0E58BF5822411FEF006FB157 /* LZO.m */, - 0EB03E0E2290CF52006D03A0 /* module.modulemap */, - 0E12B29D21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift */, - 0EE2F973229163C900F56F49 /* Proxy.swift */, - 0EFB902722788511006405E4 /* RoutingTable.h */, - 0EFB902822788511006405E4 /* RoutingTable.m */, - 0E0B203E2278A85B007A3CB9 /* RoutingTableEntry.h */, - 0E0B203F2278A85B007A3CB9 /* RoutingTableEntry.m */, - 0EFEB4372006D3C800F81029 /* SecureRandom.swift */, - 0EE2F9AB2291853D00F56F49 /* Session.swift */, - 0E011F792196D93600BA59EE /* SocketType.swift */, - 0EFEB42F2006D3C800F81029 /* TunnelInterface.swift */, - 0EE2F9EB22918DA100F56F49 /* Utils.swift */, - 0EFEB4412006D3C800F81029 /* ZeroingData.h */, - 0EFEB4312006D3C800F81029 /* ZeroingData.m */, - 0EFEB43B2006D3C800F81029 /* ZeroingData.swift */, - ); - path = Core; - sourceTree = ""; - }; - 1B27D1F0B446D5907FAF40E1 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0E411B9F2271FA3300E0852C /* libresolv.tbd */, - 0E411BA12271FA3C00E0852C /* libresolv.tbd */, - 0E0541A025A2343500EFC5FF /* NetworkExtension.framework */, - 44612F27B9EF890AF8B926DB /* Pods_ios_TunnelKit_iOS.framework */, - D3B8B90F61D2F5537A5C0691 /* Pods_ios_TunnelKitHost.framework */, - C34F78A0C56932A2127E6C81 /* Pods_ios_TunnelKitTests_iOS.framework */, - 4EF702DD650A65FCBA51506A /* Pods_macos_TunnelKit_macOS.framework */, - D383BA02D6881FDBEF55562A /* Pods_macos_TunnelKitTests_macOS.framework */, - B24169970F957D36C9D0765C /* Pods_ios_TunnelKitDemo_iOS.framework */, - 488FA71CA2DC38D2FDF7D1D8 /* Pods_ios_TunnelKitDemoTunnel_iOS.framework */, - 501B04C95D9A457FFA483C3B /* Pods_macos_TunnelKitDemo_macOS.framework */, - A49801900FA52CE67047623B /* Pods_macos_TunnelKitDemoTunnel_macOS.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 4A8A97836BAB183DA0A91902 /* Pods */ = { - isa = PBXGroup; - children = ( - F34879B2239747D1719131F3 /* Pods-TunnelKit-TunnelKit-iOS.debug.xcconfig */, - A762728F862EA173640D3A97 /* Pods-TunnelKit-TunnelKit-iOS.release.xcconfig */, - 33C00B882D0DF7C28257630B /* Pods-TunnelKit-TunnelKit-macOS.debug.xcconfig */, - DADE23B0846CE92650EB7D86 /* Pods-TunnelKit-TunnelKit-macOS.release.xcconfig */, - 7CE8A5CE244CC80CAF8BD890 /* Pods-TunnelKit-TunnelKitTests-macOS.debug.xcconfig */, - 2DD764A8C3908CB48A442295 /* Pods-TunnelKit-TunnelKitTests-macOS.release.xcconfig */, - 358F3D1B9B9A8FEE29E522F6 /* Pods-TunnelKit-TunnelKitHost.debug.xcconfig */, - CED3394EFA1921EA509733F9 /* Pods-TunnelKit-TunnelKitHost.release.xcconfig */, - 3DE692CD2FA087ED390CB9C6 /* Pods-TunnelKit-TunnelKitTests-iOS.debug.xcconfig */, - 82499AC779944BE0D1CA651C /* Pods-TunnelKit-TunnelKitTests-iOS.release.xcconfig */, - 1067E0DA76AE8CAF89D71584 /* Pods-ios-Demo-iOS.debug.xcconfig */, - 442D4665BCE9ADD09F63F180 /* Pods-ios-Demo-iOS.release.xcconfig */, - 83830F707A0FDAE3EBFA9008 /* Pods-ios-DemoTunnel-iOS.debug.xcconfig */, - EEC658ED16E01A856F5DECE3 /* Pods-ios-DemoTunnel-iOS.release.xcconfig */, - CB9BB9617ACEA441E0AEA67E /* Pods-ios-TunnelKit-iOS.debug.xcconfig */, - 4226303B698C4BB5A2D3EA0B /* Pods-ios-TunnelKit-iOS.release.xcconfig */, - F9C57886F6F3BEE985AA2D4D /* Pods-ios-TunnelKitHost.debug.xcconfig */, - A43E3F5B33D769164DD14EC8 /* Pods-ios-TunnelKitHost.release.xcconfig */, - 64037042B4D72C5837330825 /* Pods-ios-TunnelKitTests-iOS.debug.xcconfig */, - 003F0DF74DE0A7292E643803 /* Pods-ios-TunnelKitTests-iOS.release.xcconfig */, - ABA2E2882F0B8F6523E34161 /* Pods-macos-TunnelKit-macOS.debug.xcconfig */, - 237CD7047F4B1693AB36A1A1 /* Pods-macos-TunnelKit-macOS.release.xcconfig */, - 0AF4DDAD0F2B526865FF49E2 /* Pods-macos-TunnelKitTests-macOS.debug.xcconfig */, - 699D1F9CD94BC7F9348EB407 /* Pods-macos-TunnelKitTests-macOS.release.xcconfig */, - F7902F7ED688CF5A114F2582 /* Pods-macos-Demo-macOS.debug.xcconfig */, - 1DF4ACC345765CF3A1576D4A /* Pods-macos-Demo-macOS.release.xcconfig */, - 157488BB58C4CC25BC563A54 /* Pods-macos-DemoTunnel-macOS.debug.xcconfig */, - B09331876EB06B7AE0D3FCB8 /* Pods-macos-DemoTunnel-macOS.release.xcconfig */, - 9D2F19A70BA726DCE60AAFFB /* Pods-ios-TunnelKitDemo-iOS.debug.xcconfig */, - DE4FDDA826C589F80328BE1D /* Pods-ios-TunnelKitDemo-iOS.release.xcconfig */, - 3EB4715EDD7F534B7198FDED /* Pods-ios-TunnelKitDemoTunnel-iOS.debug.xcconfig */, - 8D69E51508704ECD5ACEBE79 /* Pods-ios-TunnelKitDemoTunnel-iOS.release.xcconfig */, - EE99E5D92B1FFAC463F582C2 /* Pods-macos-TunnelKitDemo-macOS.debug.xcconfig */, - A0C15F7E031B3D09730175D7 /* Pods-macos-TunnelKitDemo-macOS.release.xcconfig */, - 7495E11A5285EEDEFF4CE52C /* Pods-macos-TunnelKitDemoTunnel-macOS.debug.xcconfig */, - F24743BB5D4C718576B270FA /* Pods-macos-TunnelKitDemoTunnel-macOS.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 0E17D7F61F730D9F009EE129 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E58BF5622411F3D006FB157 /* LZO.h in Headers */, - 0E23B48722982AF800304C30 /* CryptoMacros.h in Headers */, - 0E23B44922982AF800304C30 /* CompressionAlgorithmNative.h in Headers */, - 0EFEB4612006D3C800F81029 /* Errors.h in Headers */, - 0E23B45B22982AF800304C30 /* PacketStream.h in Headers */, - 0E23B42F22982AF800304C30 /* MSS.h in Headers */, - 0E23B42522982AF800304C30 /* CryptoCBC.h in Headers */, - 0E23B45F22982AF800304C30 /* ReplayProtector.h in Headers */, - 0E23B44D22982AF800304C30 /* DataPath.h in Headers */, - 0E23B46122982AF800304C30 /* Crypto.h in Headers */, - 0E0B20402278A85C007A3CB9 /* RoutingTableEntry.h in Headers */, - 0E411B9B2271F90700E0852C /* DNS.h in Headers */, - 0E23B47F22982AF800304C30 /* CryptoBox.h in Headers */, - 0E23B44522982AF800304C30 /* DataPathCrypto.h in Headers */, - 0E23B49322982AF800304C30 /* lzoconf.h in Headers */, - 0EFEB4592006D3C800F81029 /* Allocation.h in Headers */, - 0E23B47122982AF800304C30 /* PacketMacros.h in Headers */, - 0E23B43B22982AF800304C30 /* ControlPacket.h in Headers */, - 0EFB902922788511006405E4 /* RoutingTable.h in Headers */, - 0EFEB46C2006D3C800F81029 /* ZeroingData.h in Headers */, - 0E23B47922982AF800304C30 /* CompressionFramingNative.h in Headers */, - 0E23B49722982AF800304C30 /* minilzo.h in Headers */, - 0E23B47722982AF800304C30 /* CryptoAEAD.h in Headers */, - 0E23B48322982AF800304C30 /* TLSBox.h in Headers */, - 0E23B49122982AF800304C30 /* lzodefs.h in Headers */, - 0E23B42922982AF800304C30 /* CryptoCTR.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E3251C21F95770D00C108D9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E58BF5722411F3E006FB157 /* LZO.h in Headers */, - 0E23B48822982AF800304C30 /* CryptoMacros.h in Headers */, - 0E23B44A22982AF800304C30 /* CompressionAlgorithmNative.h in Headers */, - 0EEC49E520B5F7F6008FEB91 /* Errors.h in Headers */, - 0E23B45C22982AF800304C30 /* PacketStream.h in Headers */, - 0E23B43022982AF800304C30 /* MSS.h in Headers */, - 0E23B42622982AF800304C30 /* CryptoCBC.h in Headers */, - 0E23B46022982AF800304C30 /* ReplayProtector.h in Headers */, - 0E23B44E22982AF800304C30 /* DataPath.h in Headers */, - 0E23B46222982AF800304C30 /* Crypto.h in Headers */, - 0E0B20412278A85C007A3CB9 /* RoutingTableEntry.h in Headers */, - 0EEC49EA20B5F7F6008FEB91 /* ZeroingData.h in Headers */, - 0E23B48022982AF800304C30 /* CryptoBox.h in Headers */, - 0E23B44622982AF800304C30 /* DataPathCrypto.h in Headers */, - 0E23B49422982AF800304C30 /* lzoconf.h in Headers */, - 0E411B9C2271F90700E0852C /* DNS.h in Headers */, - 0E23B47222982AF800304C30 /* PacketMacros.h in Headers */, - 0E23B43C22982AF800304C30 /* ControlPacket.h in Headers */, - 0EEC49E120B5F7EA008FEB91 /* Allocation.h in Headers */, - 0EFB902A22788511006405E4 /* RoutingTable.h in Headers */, - 0E23B47A22982AF800304C30 /* CompressionFramingNative.h in Headers */, - 0E23B49822982AF800304C30 /* minilzo.h in Headers */, - 0E23B47822982AF800304C30 /* CryptoAEAD.h in Headers */, - 0E23B48422982AF800304C30 /* TLSBox.h in Headers */, - 0E23B49222982AF800304C30 /* lzodefs.h in Headers */, - 0E23B42A22982AF800304C30 /* CryptoCTR.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 0E05416825A232FD00EFC5FF /* TunnelKitDemo-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E05417A25A2330100EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-iOS" */; - buildPhases = ( - 468AD4FF69A2C5CF88E1380C /* [CP] Check Pods Manifest.lock */, - 0E05416525A232FD00EFC5FF /* Sources */, - 0E05416625A232FD00EFC5FF /* Frameworks */, - 0E05416725A232FD00EFC5FF /* Resources */, - 0E0541AD25A2343500EFC5FF /* Embed App Extensions */, - 1664B7D95EB599D4E72E6F13 /* [CP] Embed Pods Frameworks */, - 0E05438525A240E400EFC5FF /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 0E0541F725A235F200EFC5FF /* PBXTargetDependency */, - 0E0541A825A2343500EFC5FF /* PBXTargetDependency */, - ); - name = "TunnelKitDemo-iOS"; - productName = Demo; - productReference = 0E05416925A232FD00EFC5FF /* TunnelKitDemo-iOS.app */; - productType = "com.apple.product-type.application"; - }; - 0E05419E25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E0541AA25A2343500EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-iOS" */; - buildPhases = ( - 4861B8851D2F453D410A198F /* [CP] Check Pods Manifest.lock */, - 0E05419B25A2343500EFC5FF /* Sources */, - 0E05419C25A2343500EFC5FF /* Frameworks */, - 0E05419D25A2343500EFC5FF /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 0E0541F925A235F700EFC5FF /* PBXTargetDependency */, - ); - name = "TunnelKitDemoTunnel-iOS"; - productName = Tunnel; - productReference = 0E05419F25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS.appex */; - productType = "com.apple.product-type.app-extension"; - }; - 0E05422B25A236EB00EFC5FF /* TunnelKitDemo-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E05423B25A236EE00EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-macOS" */; - buildPhases = ( - 913D029D2FE44C8EFF83AE52 /* [CP] Check Pods Manifest.lock */, - 0E05422825A236EB00EFC5FF /* Sources */, - 0E05422925A236EB00EFC5FF /* Frameworks */, - 0E05422A25A236EB00EFC5FF /* Resources */, - 0E05428425A239C600EFC5FF /* Embed App Extensions */, - A0188D8BB77C5451F9B9711B /* [CP] Embed Pods Frameworks */, - 0E05438825A240E900EFC5FF /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 0E05427225A2399500EFC5FF /* PBXTargetDependency */, - 0E05427F25A239C600EFC5FF /* PBXTargetDependency */, - ); - name = "TunnelKitDemo-macOS"; - productName = Demo; - productReference = 0E05422C25A236EB00EFC5FF /* TunnelKitDemo-macOS.app */; - productType = "com.apple.product-type.application"; - }; - 0E05427625A239C600EFC5FF /* TunnelKitDemoTunnel-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E05428125A239C600EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-macOS" */; - buildPhases = ( - 5993DE5160477293C12A8D8D /* [CP] Check Pods Manifest.lock */, - 0E05427325A239C600EFC5FF /* Sources */, - 0E05427425A239C600EFC5FF /* Frameworks */, - 0E05427525A239C600EFC5FF /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 0E05428E25A239E700EFC5FF /* PBXTargetDependency */, - ); - name = "TunnelKitDemoTunnel-macOS"; - productName = Tunnel; - productReference = 0E05427725A239C600EFC5FF /* TunnelKitDemoTunnel-macOS.appex */; - productType = "com.apple.product-type.app-extension"; - }; - 0E1108991F77B9E800A92462 /* TunnelKitTests-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E1108A41F77B9E800A92462 /* Build configuration list for PBXNativeTarget "TunnelKitTests-iOS" */; - buildPhases = ( - 325BAD905EA67C16D6085601 /* [CP] Check Pods Manifest.lock */, - 0E1108961F77B9E800A92462 /* Sources */, - 0E1108971F77B9E800A92462 /* Frameworks */, - 0E1108981F77B9E800A92462 /* Resources */, - 45592D37FB442C69B215C2B8 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 0E1108A11F77B9E800A92462 /* PBXTargetDependency */, - 0E1108BC1F77BA0200A92462 /* PBXTargetDependency */, - ); - name = "TunnelKitTests-iOS"; - productName = PIATunnelTests; - productReference = 0E11089A1F77B9E800A92462 /* TunnelKitTests-iOS.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 0E1108A81F77B9F900A92462 /* TunnelKitHost */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E1108B81F77B9F900A92462 /* Build configuration list for PBXNativeTarget "TunnelKitHost" */; - buildPhases = ( - CA4D788CFA7D13907441992A /* [CP] Check Pods Manifest.lock */, - 0E1108A51F77B9F900A92462 /* Sources */, - 0E1108A61F77B9F900A92462 /* Frameworks */, - 0E1108A71F77B9F900A92462 /* Resources */, - 50E8EAE4BAE91AD6D937A498 /* [CP] Embed Pods Frameworks */, - 0ECAF84C246697DA00D8266A /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 0E9379CB1F819A4600CE91B6 /* PBXTargetDependency */, - ); - name = TunnelKitHost; - productName = PIATunnelHost; - productReference = 0E1108A91F77B9F900A92462 /* TunnelKitHost.app */; - productType = "com.apple.product-type.application"; - }; - 0E17D7F81F730D9F009EE129 /* TunnelKit-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E17D8011F730D9F009EE129 /* Build configuration list for PBXNativeTarget "TunnelKit-iOS" */; - buildPhases = ( - 82A8ED79D11B67844ED966B7 /* [CP] Check Pods Manifest.lock */, - 0E17D7F41F730D9F009EE129 /* Sources */, - 0E17D7F51F730D9F009EE129 /* Frameworks */, - 0E17D7F61F730D9F009EE129 /* Headers */, - 0E17D7F71F730D9F009EE129 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TunnelKit-iOS"; - productName = PIATunnel; - productReference = 0E17D7F91F730D9F009EE129 /* TunnelKit.framework */; - productType = "com.apple.product-type.framework"; - }; - 0E3251C41F95770D00C108D9 /* TunnelKit-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0E3251CA1F95770D00C108D9 /* Build configuration list for PBXNativeTarget "TunnelKit-macOS" */; - buildPhases = ( - BD76831AC79901D5EA1D900E /* [CP] Check Pods Manifest.lock */, - 0E3251C01F95770D00C108D9 /* Sources */, - 0E3251C11F95770D00C108D9 /* Frameworks */, - 0E3251C21F95770D00C108D9 /* Headers */, - 0E3251C31F95770D00C108D9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "TunnelKit-macOS"; - productName = "PIATunnel-macOS"; - productReference = 0E3251C51F95770D00C108D9 /* TunnelKit.framework */; - productType = "com.apple.product-type.framework"; - }; - 0EA82A222190B220007960EB /* TunnelKitTests-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0EA82A2B2190B220007960EB /* Build configuration list for PBXNativeTarget "TunnelKitTests-macOS" */; - buildPhases = ( - AFB62D96FADC3B29F237326D /* [CP] Check Pods Manifest.lock */, - 0EA82A1F2190B220007960EB /* Sources */, - 0EA82A202190B220007960EB /* Frameworks */, - 0EA82A212190B220007960EB /* Resources */, - EC46A9855CED96D0C0D296F6 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 0EA82A2A2190B220007960EB /* PBXTargetDependency */, - ); - name = "TunnelKitTests-macOS"; - productName = "TunnelKitTests-macOS"; - productReference = 0EA82A232190B220007960EB /* TunnelKitTests-macOS.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 0E17D7F01F730D9F009EE129 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1230; - LastUpgradeCheck = 1230; - ORGANIZATIONNAME = "Davide De Rosa"; - TargetAttributes = { - 0E05416825A232FD00EFC5FF = { - CreatedOnToolsVersion = 12.3; - ProvisioningStyle = Automatic; - }; - 0E05419E25A2343500EFC5FF = { - CreatedOnToolsVersion = 12.3; - ProvisioningStyle = Automatic; - }; - 0E05422B25A236EB00EFC5FF = { - CreatedOnToolsVersion = 12.3; - ProvisioningStyle = Automatic; - }; - 0E05427625A239C600EFC5FF = { - CreatedOnToolsVersion = 12.3; - ProvisioningStyle = Automatic; - }; - 0E1108991F77B9E800A92462 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - TestTargetID = 0E1108A81F77B9F900A92462; - }; - 0E1108A81F77B9F900A92462 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.ApplicationGroups.iOS = { - enabled = 1; - }; - com.apple.Keychain = { - enabled = 1; - }; - }; - }; - 0E17D7F81F730D9F009EE129 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - }; - 0E3251C41F95770D00C108D9 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - }; - 0EA82A222190B220007960EB = { - CreatedOnToolsVersion = 10.1; - LastSwiftMigration = 1020; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = 0E17D7F31F730D9F009EE129 /* Build configuration list for PBXProject "TunnelKit" */; - compatibilityVersion = "Xcode 8.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 0E17D7EF1F730D9F009EE129; - productRefGroup = 0E17D7FA1F730D9F009EE129 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 0E17D7F81F730D9F009EE129 /* TunnelKit-iOS */, - 0E3251C41F95770D00C108D9 /* TunnelKit-macOS */, - 0E1108991F77B9E800A92462 /* TunnelKitTests-iOS */, - 0EA82A222190B220007960EB /* TunnelKitTests-macOS */, - 0E1108A81F77B9F900A92462 /* TunnelKitHost */, - 0E05416825A232FD00EFC5FF /* TunnelKitDemo-iOS */, - 0E05422B25A236EB00EFC5FF /* TunnelKitDemo-macOS */, - 0E05419E25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS */, - 0E05427625A239C600EFC5FF /* TunnelKitDemoTunnel-macOS */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 0E05416725A232FD00EFC5FF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E05418A25A2334900EFC5FF /* Main.storyboard in Resources */, - 0E05418B25A2334900EFC5FF /* LaunchScreen.storyboard in Resources */, - 0E05418925A2334500EFC5FF /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05419D25A2343500EFC5FF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05422A25A236EB00EFC5FF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E05426125A2393300EFC5FF /* Assets.xcassets in Resources */, - 0E05426925A2393B00EFC5FF /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05427525A239C600EFC5FF /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E1108981F77B9E800A92462 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E011F852196E25900BA59EE /* pia-hungary.ovpn in Resources */, - 0ECEB1172252C8E900E9E551 /* tunnelbear.enc.8.key in Resources */, - 0E500EA622493B5B00CAE560 /* tunnelbear.enc.1.key in Resources */, - 0E3B65762249253F00EFF4DA /* tunnelbear.key in Resources */, - 0E3B65742249253A00EFF4DA /* tunnelbear.enc.1.ovpn in Resources */, - 0ECEB11B2252CDAD00E9E551 /* tunnelbear.crt in Resources */, - 0ECEB1152252C8E900E9E551 /* tunnelbear.enc.8.ovpn in Resources */, - 0E749F622178911D00BB2701 /* pia-2048.pem in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E1108A71F77B9F900A92462 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E1108B61F77B9F900A92462 /* LaunchScreen.storyboard in Resources */, - 0E1108B31F77B9F900A92462 /* Assets.xcassets in Resources */, - 0E1108B11F77B9F900A92462 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E17D7F71F730D9F009EE129 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E3251C31F95770D00C108D9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0EA82A212190B220007960EB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E011F862196E25A00BA59EE /* pia-hungary.ovpn in Resources */, - 0ECEB1182252C8E900E9E551 /* tunnelbear.enc.8.key in Resources */, - 0E500EA722493B5B00CAE560 /* tunnelbear.enc.1.key in Resources */, - 0E3B65772249254000EFF4DA /* tunnelbear.key in Resources */, - 0E3B65752249253B00EFF4DA /* tunnelbear.enc.1.ovpn in Resources */, - 0ECEB11C2252CDAD00E9E551 /* tunnelbear.crt in Resources */, - 0ECEB1162252C8E900E9E551 /* tunnelbear.enc.8.ovpn in Resources */, - 0EA82A3E2190B2BC007960EB /* pia-2048.pem in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 1664B7D95EB599D4E72E6F13 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ios-TunnelKitDemo-iOS/Pods-ios-TunnelKitDemo-iOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SwiftyBeaver-iOS/SwiftyBeaver.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Apple/openssl.framework/openssl", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ios-TunnelKitDemo-iOS/Pods-ios-TunnelKitDemo-iOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 325BAD905EA67C16D6085601 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ios-TunnelKitTests-iOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 45592D37FB442C69B215C2B8 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ios-TunnelKitTests-iOS/Pods-ios-TunnelKitTests-iOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SwiftyBeaver-iOS/SwiftyBeaver.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Apple/openssl.framework/openssl", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ios-TunnelKitTests-iOS/Pods-ios-TunnelKitTests-iOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 468AD4FF69A2C5CF88E1380C /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ios-TunnelKitDemo-iOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 4861B8851D2F453D410A198F /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ios-TunnelKitDemoTunnel-iOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 50E8EAE4BAE91AD6D937A498 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ios-TunnelKitHost/Pods-ios-TunnelKitHost-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SwiftyBeaver-iOS/SwiftyBeaver.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Apple/openssl.framework/openssl", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ios-TunnelKitHost/Pods-ios-TunnelKitHost-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 5993DE5160477293C12A8D8D /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-macos-TunnelKitDemoTunnel-macOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 82A8ED79D11B67844ED966B7 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ios-TunnelKit-iOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 913D029D2FE44C8EFF83AE52 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-macos-TunnelKitDemo-macOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - A0188D8BB77C5451F9B9711B /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-macos-TunnelKitDemo-macOS/Pods-macos-TunnelKitDemo-macOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SwiftyBeaver-macOS/SwiftyBeaver.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Apple/openssl.framework/openssl", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-macos-TunnelKitDemo-macOS/Pods-macos-TunnelKitDemo-macOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - AFB62D96FADC3B29F237326D /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-macos-TunnelKitTests-macOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - BD76831AC79901D5EA1D900E /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-macos-TunnelKit-macOS-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - CA4D788CFA7D13907441992A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ios-TunnelKitHost-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - EC46A9855CED96D0C0D296F6 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-macos-TunnelKitTests-macOS/Pods-macos-TunnelKitTests-macOS-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/SwiftyBeaver-macOS/SwiftyBeaver.framework", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Apple/openssl.framework/openssl", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyBeaver.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/openssl.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-macos-TunnelKitTests-macOS/Pods-macos-TunnelKitTests-macOS-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 0E05416525A232FD00EFC5FF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E0541D825A2355000EFC5FF /* Configuration.swift in Sources */, - 0E05418825A2334500EFC5FF /* ViewController.swift in Sources */, - 0E05418725A2334500EFC5FF /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05419B25A2343500EFC5FF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E0541D125A2354500EFC5FF /* PacketTunnelProvider.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05422825A236EB00EFC5FF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E0542B925A23A8100EFC5FF /* Configuration.swift in Sources */, - 0E05425825A2392E00EFC5FF /* AppDelegate.swift in Sources */, - 0E05425925A2392E00EFC5FF /* ViewController.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E05427325A239C600EFC5FF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E0542C225A23A8400EFC5FF /* PacketTunnelProvider.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E1108961F77B9E800A92462 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EE2FA522291954300F56F49 /* StaticKeyTests.swift in Sources */, - 0EE2FA432291954300F56F49 /* CompressionTests.swift in Sources */, - 0EE2FA492291954300F56F49 /* DNSTests.swift in Sources */, - 0EE2FA472291954300F56F49 /* DataPathEncryptionTests.swift in Sources */, - 0EE2FA502291954300F56F49 /* RawPerformanceTests.swift in Sources */, - 0EE2FA4D2291954300F56F49 /* PacketTests.swift in Sources */, - 0E23B3DB2297466600304C30 /* TestUtils+Core.swift in Sources */, - 0EE2FA452291954300F56F49 /* ControlChannelTests.swift in Sources */, - 0EE2FA4E2291954300F56F49 /* PushTests.swift in Sources */, - 0EE2FA422291954300F56F49 /* AppExtensionTests.swift in Sources */, - 0EE2FA512291954300F56F49 /* RoutingTests.swift in Sources */, - 0EE2FA4A2291954300F56F49 /* EncryptionPerformanceTests.swift in Sources */, - 0EE2FA4F2291954300F56F49 /* RandomTests.swift in Sources */, - 0EE2FA4B2291954300F56F49 /* EncryptionTests.swift in Sources */, - 0EE2FA532291954300F56F49 /* TestUtils+OpenVPN.swift in Sources */, - 0EE2FA462291954300F56F49 /* DataManipulationTests.swift in Sources */, - 0EE2FA4C2291954300F56F49 /* LinkTests.swift in Sources */, - 0EE2FA442291954300F56F49 /* ConfigurationParserTests.swift in Sources */, - 0EE2FA482291954300F56F49 /* DataPathPerformanceTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E1108A51F77B9F900A92462 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0E1108AE1F77B9F900A92462 /* ViewController.swift in Sources */, - 0E1108AC1F77B9F900A92462 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E17D7F41F730D9F009EE129 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EE2F974229163C900F56F49 /* Proxy.swift in Sources */, - 0EFEB4732006D3C800F81029 /* LinkInterface.swift in Sources */, - 0EAC573B2494277A00D0FCE0 /* VPNStatus.swift in Sources */, - 0E23B48922982AF800304C30 /* PacketStream.m in Sources */, - 0E23B3DE229749C600304C30 /* LinkProducer.swift in Sources */, - 0E23B42722982AF800304C30 /* CryptoAEAD.m in Sources */, - 0EE2F9F222918DA100F56F49 /* NETunnelInterface.swift in Sources */, - 0EA9F28C26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift in Sources */, - 0E23B46722982AF800304C30 /* Authenticator.swift in Sources */, - 0E23B43922982AF800304C30 /* OpenVPNError.swift in Sources */, - 0EAC573F2494277A00D0FCE0 /* VPNProvider.swift in Sources */, - 0E23B44F22982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift in Sources */, - 0E23B46D22982AF800304C30 /* StaticKey.swift in Sources */, - 0E23B49F22982AF800304C30 /* minilzo.c in Sources */, - 0EE2F9FE22918DA100F56F49 /* Keychain.swift in Sources */, - 0E23B45122982AF800304C30 /* NEUDPLink.swift in Sources */, - 0E0B20422278A85C007A3CB9 /* RoutingTableEntry.m in Sources */, - 0E23B43D22982AF800304C30 /* CryptoBox.m in Sources */, - 0E23B44B22982AF800304C30 /* TLSWrap.swift in Sources */, - 0E23B47522982AF800304C30 /* CryptoCTR.m in Sources */, - 0E23B47D22982AF800304C30 /* Packet.swift in Sources */, - 0E23B46322982AF800304C30 /* CompressionAlgorithm.swift in Sources */, - 0E23B48D22982AF800304C30 /* DataPath.m in Sources */, - 0E58BF5922411FEF006FB157 /* LZO.m in Sources */, - 0E12B29E21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift in Sources */, - 0EE2F9F822918DA100F56F49 /* NWUDPSessionState+Description.swift in Sources */, - 0EE2F9AC2291853D00F56F49 /* Session.swift in Sources */, - 0EAC57412494277A00D0FCE0 /* VPN.swift in Sources */, - 0E23B48122982AF800304C30 /* ControlPacket.m in Sources */, - 0EFEB4622006D3C800F81029 /* SecureRandom.swift in Sources */, - 0E011F7D2196D97200BA59EE /* EndpointProtocol.swift in Sources */, - 0E23B46922982AF800304C30 /* CompressionFraming.swift in Sources */, - 0E23B47B22982AF800304C30 /* ConfigurationParser.swift in Sources */, - 0E23B46F22982AF800304C30 /* PushReply.swift in Sources */, - 0E23B45522982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift in Sources */, - 0EE2F9F022918DA100F56F49 /* NETCPSocket.swift in Sources */, - 0E23B48B22982AF800304C30 /* Configuration.swift in Sources */, - 0E23B43122982AF800304C30 /* PacketMacros.m in Sources */, - 0EFEB45C2006D3C800F81029 /* ZeroingData.m in Sources */, - 0EE2F9712291638600F56F49 /* IPv6Settings.swift in Sources */, - 0E23B42B22982AF800304C30 /* SessionKey.swift in Sources */, - 0EE2F97A2291817300F56F49 /* Errors.swift in Sources */, - 0EFB902B22788512006405E4 /* RoutingTable.m in Sources */, - 0E23B43522982AF800304C30 /* CoreConfiguration+OpenVPN.swift in Sources */, - 0EFEB46D2006D3C800F81029 /* Data+Manipulation.swift in Sources */, - 0E23B46B22982AF800304C30 /* CryptoCBC.m in Sources */, - 0EA9F28926D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift in Sources */, - 0E23B46522982AF800304C30 /* EncryptionBridge.swift in Sources */, - 0EE2F9F422918DA100F56F49 /* NWTCPConnectionState+Description.swift in Sources */, - 0EFEB4742006D3C800F81029 /* CoreConfiguration.swift in Sources */, - 0E23B48F22982AF800304C30 /* StandardLZO.m in Sources */, - 0EFEB46F2006D3C800F81029 /* IOInterface.swift in Sources */, - 0EE2FA0222918DA100F56F49 /* GenericSocket.swift in Sources */, - 0EE2F9FA22918DA100F56F49 /* DNSResolver.swift in Sources */, - 0E23B43322982AF800304C30 /* ControlChannel.swift in Sources */, - 0E23B48522982AF800304C30 /* ReplayProtector.m in Sources */, - 0E7F3F6A246ABA0F006BE77F /* IPHeader.swift in Sources */, - 0E23B44122982AF800304C30 /* OpenVPNSession+PIA.swift in Sources */, - 0ECCEA7F2622F2F00007DA28 /* NativeProvider.swift in Sources */, - 0E23B42D22982AF800304C30 /* ControlChannelSerializer.swift in Sources */, - 0EE2F9F622918DA100F56F49 /* NEUDPSocket.swift in Sources */, - 0E94E8EA25BACEBD0040BC30 /* DNSProtocol.swift in Sources */, - 0EE2F96E2291636B00F56F49 /* IPv4Settings.swift in Sources */, - 0EFEB4662006D3C800F81029 /* ZeroingData.swift in Sources */, - 0EE2FA0622918DA100F56F49 /* Utils.swift in Sources */, - 0E23B44322982AF800304C30 /* CryptoContainer.swift in Sources */, - 0E411B9D2271F90700E0852C /* DNS.m in Sources */, - 0E23B43722982AF800304C30 /* TLSBox.m in Sources */, - 0EFEB4702006D3C800F81029 /* Allocation.m in Sources */, - 0EE2FA0A22918DA100F56F49 /* InterfaceObserver.swift in Sources */, - 0EA9F28F26D6AC6D00E806E1 /* VPNProviderIPC.swift in Sources */, - 0E23B43F22982AF800304C30 /* OpenVPNSession.swift in Sources */, - 0E23B44722982AF800304C30 /* OpenVPN.swift in Sources */, - 0ECC60D82254981A0020BEAC /* ConfigurationError.swift in Sources */, - 0EFEB4752006D3C800F81029 /* Errors.m in Sources */, - 0E12B2A521454F7F00B4BAE9 /* BidirectionalState.swift in Sources */, - 0E23B45722982AF800304C30 /* NETCPLink.swift in Sources */, - 0E23B45322982AF800304C30 /* ConnectionStrategy.swift in Sources */, - 0E011F7A2196D93600BA59EE /* SocketType.swift in Sources */, - 0EAC57392494277A00D0FCE0 /* MockVPNProvider.swift in Sources */, - 0E23B45922982AF800304C30 /* OpenVPNTunnelProvider.swift in Sources */, - 0EFEB45A2006D3C800F81029 /* TunnelInterface.swift in Sources */, - 0EAC57372494277A00D0FCE0 /* OpenVPNProvider.swift in Sources */, - 0EA9F29526D6CA7E00E806E1 /* NetworkExtensionLocator.swift in Sources */, - 0E23B47322982AF800304C30 /* MSS.m in Sources */, - 0EAC573D2494277A00D0FCE0 /* VPNConfiguration.swift in Sources */, - 0E23B45D22982AF800304C30 /* ProtocolMacros.swift in Sources */, - 0EE2FA0022918DA100F56F49 /* MemoryDestination.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0E3251C01F95770D00C108D9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EE2F975229163C900F56F49 /* Proxy.swift in Sources */, - 0EFEB4A12006D7F300F81029 /* LinkInterface.swift in Sources */, - 0EAC573C2494277A00D0FCE0 /* VPNStatus.swift in Sources */, - 0E23B48A22982AF800304C30 /* PacketStream.m in Sources */, - 0E23B3DF229749C600304C30 /* LinkProducer.swift in Sources */, - 0E23B42822982AF800304C30 /* CryptoAEAD.m in Sources */, - 0EE2F9F322918DA100F56F49 /* NETunnelInterface.swift in Sources */, - 0EA9F28D26D6A1EE00E806E1 /* NetworkExtensionVPNProvider.swift in Sources */, - 0E23B46822982AF800304C30 /* Authenticator.swift in Sources */, - 0E23B43A22982AF800304C30 /* OpenVPNError.swift in Sources */, - 0EAC57402494277A00D0FCE0 /* VPNProvider.swift in Sources */, - 0E23B45022982AF800304C30 /* OpenVPNTunnelProvider+Interaction.swift in Sources */, - 0E23B46E22982AF800304C30 /* StaticKey.swift in Sources */, - 0E23B4A022982AF800304C30 /* minilzo.c in Sources */, - 0EE2F9FF22918DA100F56F49 /* Keychain.swift in Sources */, - 0E23B45222982AF800304C30 /* NEUDPLink.swift in Sources */, - 0E0B20432278A85C007A3CB9 /* RoutingTableEntry.m in Sources */, - 0E23B43E22982AF800304C30 /* CryptoBox.m in Sources */, - 0E23B44C22982AF800304C30 /* TLSWrap.swift in Sources */, - 0E23B47622982AF800304C30 /* CryptoCTR.m in Sources */, - 0E23B47E22982AF800304C30 /* Packet.swift in Sources */, - 0E23B46422982AF800304C30 /* CompressionAlgorithm.swift in Sources */, - 0E23B48E22982AF800304C30 /* DataPath.m in Sources */, - 0E58BF5A22411FEF006FB157 /* LZO.m in Sources */, - 0E12B29F21449ADB00B4BAE9 /* NSRegularExpression+Shortcuts.swift in Sources */, - 0EE2F9F922918DA100F56F49 /* NWUDPSessionState+Description.swift in Sources */, - 0EE2F9AD2291853D00F56F49 /* Session.swift in Sources */, - 0EAC57422494277A00D0FCE0 /* VPN.swift in Sources */, - 0E23B48222982AF800304C30 /* ControlPacket.m in Sources */, - 0E011F7E2196D97200BA59EE /* EndpointProtocol.swift in Sources */, - 0EE2F9F122918DA100F56F49 /* NETCPSocket.swift in Sources */, - 0E23B46A22982AF800304C30 /* CompressionFraming.swift in Sources */, - 0E23B47C22982AF800304C30 /* ConfigurationParser.swift in Sources */, - 0E23B47022982AF800304C30 /* PushReply.swift in Sources */, - 0E23B45622982AF800304C30 /* OpenVPNTunnelProvider+Configuration.swift in Sources */, - 0EFEB4982006D7F300F81029 /* ZeroingData.swift in Sources */, - 0E23B48C22982AF800304C30 /* Configuration.swift in Sources */, - 0E23B43222982AF800304C30 /* PacketMacros.m in Sources */, - 0EFEB4A32006D7F300F81029 /* Errors.m in Sources */, - 0EFEB4A22006D7F300F81029 /* CoreConfiguration.swift in Sources */, - 0E23B42C22982AF800304C30 /* SessionKey.swift in Sources */, - 0EE2F9722291638600F56F49 /* IPv6Settings.swift in Sources */, - 0EE2F97B2291817300F56F49 /* Errors.swift in Sources */, - 0E23B43622982AF800304C30 /* CoreConfiguration+OpenVPN.swift in Sources */, - 0EFB902C22788512006405E4 /* RoutingTable.m in Sources */, - 0E23B46C22982AF800304C30 /* CryptoCBC.m in Sources */, - 0EA9F28A26D69FAE00E806E1 /* NetworkExtensionVPNConfiguration.swift in Sources */, - 0E23B46622982AF800304C30 /* EncryptionBridge.swift in Sources */, - 0EFEB4952006D7F300F81029 /* SecureRandom.swift in Sources */, - 0EE2F9F522918DA100F56F49 /* NWTCPConnectionState+Description.swift in Sources */, - 0E23B49022982AF800304C30 /* StandardLZO.m in Sources */, - 0EFEB4922006D7F300F81029 /* ZeroingData.m in Sources */, - 0EE2FA0322918DA100F56F49 /* GenericSocket.swift in Sources */, - 0EE2F9FB22918DA100F56F49 /* DNSResolver.swift in Sources */, - 0E23B43422982AF800304C30 /* ControlChannel.swift in Sources */, - 0E23B48622982AF800304C30 /* ReplayProtector.m in Sources */, - 0E7F3F6B246ABA0F006BE77F /* IPHeader.swift in Sources */, - 0E23B44222982AF800304C30 /* OpenVPNSession+PIA.swift in Sources */, - 0ECCEA802622F2F00007DA28 /* NativeProvider.swift in Sources */, - 0E23B42E22982AF800304C30 /* ControlChannelSerializer.swift in Sources */, - 0EE2F9F722918DA100F56F49 /* NEUDPSocket.swift in Sources */, - 0E94E8EB25BACEBD0040BC30 /* DNSProtocol.swift in Sources */, - 0EE2F96F2291636B00F56F49 /* IPv4Settings.swift in Sources */, - 0EFEB49C2006D7F300F81029 /* Data+Manipulation.swift in Sources */, - 0EE2FA0722918DA100F56F49 /* Utils.swift in Sources */, - 0E23B44422982AF800304C30 /* CryptoContainer.swift in Sources */, - 0E411B9E2271F90700E0852C /* DNS.m in Sources */, - 0E23B43822982AF800304C30 /* TLSBox.m in Sources */, - 0EFEB4902006D7F300F81029 /* TunnelInterface.swift in Sources */, - 0EFEB49E2006D7F300F81029 /* Allocation.m in Sources */, - 0EA9F29026D6AC6D00E806E1 /* VPNProviderIPC.swift in Sources */, - 0E23B44022982AF800304C30 /* OpenVPNSession.swift in Sources */, - 0E23B44822982AF800304C30 /* OpenVPN.swift in Sources */, - 0ECC60D92254981A0020BEAC /* ConfigurationError.swift in Sources */, - 0EE2FA0B22918DA100F56F49 /* InterfaceObserver.swift in Sources */, - 0E12B2A621454F7F00B4BAE9 /* BidirectionalState.swift in Sources */, - 0E23B45822982AF800304C30 /* NETCPLink.swift in Sources */, - 0E23B45422982AF800304C30 /* ConnectionStrategy.swift in Sources */, - 0EFEB49D2006D7F300F81029 /* IOInterface.swift in Sources */, - 0EAC573A2494277A00D0FCE0 /* MockVPNProvider.swift in Sources */, - 0E23B45A22982AF800304C30 /* OpenVPNTunnelProvider.swift in Sources */, - 0E011F7B2196D93600BA59EE /* SocketType.swift in Sources */, - 0EAC57382494277A00D0FCE0 /* OpenVPNProvider.swift in Sources */, - 0EA9F29626D6CA7E00E806E1 /* NetworkExtensionLocator.swift in Sources */, - 0E23B47422982AF800304C30 /* MSS.m in Sources */, - 0EAC573E2494277A00D0FCE0 /* VPNConfiguration.swift in Sources */, - 0E23B45E22982AF800304C30 /* ProtocolMacros.swift in Sources */, - 0EE2FA0122918DA100F56F49 /* MemoryDestination.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0EA82A1F2190B220007960EB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0EE2FA642291954400F56F49 /* StaticKeyTests.swift in Sources */, - 0EE2FA552291954400F56F49 /* CompressionTests.swift in Sources */, - 0EE2FA5B2291954400F56F49 /* DNSTests.swift in Sources */, - 0EE2FA592291954400F56F49 /* DataPathEncryptionTests.swift in Sources */, - 0EE2FA622291954400F56F49 /* RawPerformanceTests.swift in Sources */, - 0EE2FA5F2291954400F56F49 /* PacketTests.swift in Sources */, - 0E23B3DC2297466700304C30 /* TestUtils+Core.swift in Sources */, - 0EE2FA572291954400F56F49 /* ControlChannelTests.swift in Sources */, - 0EE2FA602291954400F56F49 /* PushTests.swift in Sources */, - 0EE2FA542291954400F56F49 /* AppExtensionTests.swift in Sources */, - 0EE2FA632291954400F56F49 /* RoutingTests.swift in Sources */, - 0EE2FA5C2291954400F56F49 /* EncryptionPerformanceTests.swift in Sources */, - 0EE2FA612291954400F56F49 /* RandomTests.swift in Sources */, - 0EE2FA5D2291954400F56F49 /* EncryptionTests.swift in Sources */, - 0EE2FA652291954400F56F49 /* TestUtils+OpenVPN.swift in Sources */, - 0EE2FA582291954400F56F49 /* DataManipulationTests.swift in Sources */, - 0EE2FA5E2291954400F56F49 /* LinkTests.swift in Sources */, - 0EE2FA562291954400F56F49 /* ConfigurationParserTests.swift in Sources */, - 0EE2FA5A2291954400F56F49 /* DataPathPerformanceTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 0E0541A825A2343500EFC5FF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E05419E25A2343500EFC5FF /* TunnelKitDemoTunnel-iOS */; - targetProxy = 0E0541A725A2343500EFC5FF /* PBXContainerItemProxy */; - }; - 0E0541F725A235F200EFC5FF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E17D7F81F730D9F009EE129 /* TunnelKit-iOS */; - targetProxy = 0E0541F625A235F200EFC5FF /* PBXContainerItemProxy */; - }; - 0E0541F925A235F700EFC5FF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E17D7F81F730D9F009EE129 /* TunnelKit-iOS */; - targetProxy = 0E0541F825A235F700EFC5FF /* PBXContainerItemProxy */; - }; - 0E05427225A2399500EFC5FF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E3251C41F95770D00C108D9 /* TunnelKit-macOS */; - targetProxy = 0E05427125A2399500EFC5FF /* PBXContainerItemProxy */; - }; - 0E05427F25A239C600EFC5FF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E05427625A239C600EFC5FF /* TunnelKitDemoTunnel-macOS */; - targetProxy = 0E05427E25A239C600EFC5FF /* PBXContainerItemProxy */; - }; - 0E05428E25A239E700EFC5FF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E3251C41F95770D00C108D9 /* TunnelKit-macOS */; - targetProxy = 0E05428D25A239E700EFC5FF /* PBXContainerItemProxy */; - }; - 0E1108A11F77B9E800A92462 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E17D7F81F730D9F009EE129 /* TunnelKit-iOS */; - targetProxy = 0E1108A01F77B9E800A92462 /* PBXContainerItemProxy */; - }; - 0E1108BC1F77BA0200A92462 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E1108A81F77B9F900A92462 /* TunnelKitHost */; - targetProxy = 0E1108BB1F77BA0200A92462 /* PBXContainerItemProxy */; - }; - 0E9379CB1F819A4600CE91B6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E17D7F81F730D9F009EE129 /* TunnelKit-iOS */; - targetProxy = 0E9379CA1F819A4600CE91B6 /* PBXContainerItemProxy */; - }; - 0EA82A2A2190B220007960EB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 0E3251C41F95770D00C108D9 /* TunnelKit-macOS */; - targetProxy = 0EA82A292190B220007960EB /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 0E05413E25A231D500EFC5FF /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 0E05413F25A231D500EFC5FF /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 0E05414625A231D500EFC5FF /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 0E05414725A231D500EFC5FF /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - 0E05414825A231D500EFC5FF /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 0E05414925A231D500EFC5FF /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 0E1108AF1F77B9F900A92462 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 0E1108B01F77B9F900A92462 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 0E1108B41F77B9F900A92462 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 0E1108B51F77B9F900A92462 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 0E05417B25A2330100EFC5FF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9D2F19A70BA726DCE60AAFFB /* Pods-ios-TunnelKitDemo-iOS.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/iOS/Demo.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Demo/iOS/Demo.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 0E05417C25A2330100EFC5FF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DE4FDDA826C589F80328BE1D /* Pods-ios-TunnelKitDemo-iOS.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/iOS/Demo.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Demo/iOS/Demo.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 0E0541AB25A2343500EFC5FF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3EB4715EDD7F534B7198FDED /* Pods-ios-TunnelKitDemoTunnel-iOS.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/iOS/DemoTunnel.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Demo/DemoTunnel.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo.Tunnel; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 0E0541AC25A2343500EFC5FF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 8D69E51508704ECD5ACEBE79 /* Pods-ios-TunnelKitDemoTunnel-iOS.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/iOS/DemoTunnel.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Demo/DemoTunnel.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKit.Demo.Tunnel; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 0E05423925A236EE00EFC5FF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EE99E5D92B1FFAC463F582C2 /* Pods-macos-TunnelKitDemo-macOS.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/Demo.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = DTDYD63ZX9; - ENABLE_HARDENED_RUNTIME = YES; - INFOPLIST_FILE = TunnelKit/Demo/macOS/Demo.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 0E05423A25A236EE00EFC5FF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A0C15F7E031B3D09730175D7 /* Pods-macos-TunnelKitDemo-macOS.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/Demo.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = DTDYD63ZX9; - ENABLE_HARDENED_RUNTIME = YES; - INFOPLIST_FILE = TunnelKit/Demo/macOS/Demo.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 0E05428225A239C600EFC5FF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7495E11A5285EEDEFF4CE52C /* Pods-macos-TunnelKitDemoTunnel-macOS.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/DemoTunnel.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - ENABLE_HARDENED_RUNTIME = YES; - INFOPLIST_FILE = TunnelKit/Demo/DemoTunnel.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo.Tunnel; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 0E05428325A239C600EFC5FF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F24743BB5D4C718576B270FA /* Pods-macos-TunnelKitDemoTunnel-macOS.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/DemoTunnel.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - ENABLE_HARDENED_RUNTIME = YES; - INFOPLIST_FILE = TunnelKit/Demo/DemoTunnel.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.TunnelKit.Demo.Tunnel; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 0E1108A21F77B9E800A92462 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 64037042B4D72C5837330825 /* Pods-ios-TunnelKitTests-iOS.debug.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TunnelKitHost.app/TunnelKitHost"; - }; - name = Debug; - }; - 0E1108A31F77B9E800A92462 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 003F0DF74DE0A7292E643803 /* Pods-ios-TunnelKitTests-iOS.release.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/TunnelKitHost.app/TunnelKitHost"; - }; - name = Release; - }; - 0E1108B91F77B9F900A92462 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F9C57886F6F3BEE985AA2D4D /* Pods-ios-TunnelKitHost.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Host/Host.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Host/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKitHost; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 0E1108BA1F77B9F900A92462 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A43E3F5B33D769164DD14EC8 /* Pods-ios-TunnelKitHost.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_ENTITLEMENTS = TunnelKit/Host/Host.entitlements; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Host/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.TunnelKitHost; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 0E17D7FF1F730D9F009EE129 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 902; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 0E17D8001F730D9F009EE129 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 902; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 0E17D8021F730D9F009EE129 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CB9BB9617ACEA441E0AEA67E /* Pods-ios-TunnelKit-iOS.debug.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 902; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = TunnelKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.apple.TunnelKit; - PRODUCT_NAME = TunnelKit; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - SWIFT_INCLUDE_PATHS = "$(SRCROOT)/TunnelKit/Sources/**"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 0E17D8031F730D9F009EE129 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4226303B698C4BB5A2D3EA0B /* Pods-ios-TunnelKit-iOS.release.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 902; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = TunnelKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.apple.TunnelKit; - PRODUCT_NAME = TunnelKit; - SKIP_INSTALL = YES; - SUPPORTS_MACCATALYST = NO; - SWIFT_INCLUDE_PATHS = "$(SRCROOT)/TunnelKit/Sources/**"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 0E3251CB1F95770D00C108D9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ABA2E2882F0B8F6523E34161 /* Pods-macos-TunnelKit-macOS.debug.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 902; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TunnelKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.apple.TunnelKit; - PRODUCT_NAME = TunnelKit; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_INCLUDE_PATHS = "$(SRCROOT)/TunnelKit/Sources/**"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 0E3251CC1F95770D00C108D9 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 237CD7047F4B1693AB36A1A1 /* Pods-macos-TunnelKit-macOS.release.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 902; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TunnelKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.apple.TunnelKit; - PRODUCT_NAME = TunnelKit; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_INCLUDE_PATHS = "$(SRCROOT)/TunnelKit/Sources/**"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 0EA82A2C2190B220007960EB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0AF4DDAD0F2B526865FF49E2 /* Pods-macos-TunnelKitTests-macOS.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 0EA82A2D2190B220007960EB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 699D1F9CD94BC7F9348EB407 /* Pods-macos-TunnelKitTests-macOS.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = TunnelKit/Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 0E05417A25A2330100EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E05417B25A2330100EFC5FF /* Debug */, - 0E05417C25A2330100EFC5FF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E0541AA25A2343500EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E0541AB25A2343500EFC5FF /* Debug */, - 0E0541AC25A2343500EFC5FF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E05423B25A236EE00EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemo-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E05423925A236EE00EFC5FF /* Debug */, - 0E05423A25A236EE00EFC5FF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E05428125A239C600EFC5FF /* Build configuration list for PBXNativeTarget "TunnelKitDemoTunnel-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E05428225A239C600EFC5FF /* Debug */, - 0E05428325A239C600EFC5FF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E1108A41F77B9E800A92462 /* Build configuration list for PBXNativeTarget "TunnelKitTests-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E1108A21F77B9E800A92462 /* Debug */, - 0E1108A31F77B9E800A92462 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E1108B81F77B9F900A92462 /* Build configuration list for PBXNativeTarget "TunnelKitHost" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E1108B91F77B9F900A92462 /* Debug */, - 0E1108BA1F77B9F900A92462 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E17D7F31F730D9F009EE129 /* Build configuration list for PBXProject "TunnelKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E17D7FF1F730D9F009EE129 /* Debug */, - 0E17D8001F730D9F009EE129 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E17D8011F730D9F009EE129 /* Build configuration list for PBXNativeTarget "TunnelKit-iOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E17D8021F730D9F009EE129 /* Debug */, - 0E17D8031F730D9F009EE129 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0E3251CA1F95770D00C108D9 /* Build configuration list for PBXNativeTarget "TunnelKit-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0E3251CB1F95770D00C108D9 /* Debug */, - 0E3251CC1F95770D00C108D9 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 0EA82A2B2190B220007960EB /* Build configuration list for PBXNativeTarget "TunnelKitTests-macOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 0EA82A2C2190B220007960EB /* Debug */, - 0EA82A2D2190B220007960EB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 0E17D7F01F730D9F009EE129 /* Project object */; -} diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-iOS.xcscheme b/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-iOS.xcscheme deleted file mode 100644 index 16b8afe..0000000 --- a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-iOS.xcscheme +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-macOS.xcscheme b/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-macOS.xcscheme deleted file mode 100644 index 3e7c690..0000000 --- a/TunnelKit.xcodeproj/xcshareddata/xcschemes/TunnelKit-macOS.xcscheme +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TunnelKit.xcworkspace/contents.xcworkspacedata b/TunnelKit.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index d0e4eb8..0000000 --- a/TunnelKit.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/TunnelKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TunnelKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/TunnelKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/TunnelKit/Info.plist b/TunnelKit/Info.plist deleted file mode 100644 index 78f2998..0000000 --- a/TunnelKit/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.6.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/TunnelKit/Sources/Core/DNS.m b/TunnelKit/Sources/Core/DNS.m deleted file mode 100644 index 0d1010b..0000000 --- a/TunnelKit/Sources/Core/DNS.m +++ /dev/null @@ -1,82 +0,0 @@ -// -// DNS.m -// TunnelKit -// -// Created by Davide De Rosa on 4/25/19. -// Copyright (c) 2021 Davide De Rosa. All rights reserved. -// -// https://github.com/passepartoutvpn -// -// This file is part of TunnelKit. -// -// TunnelKit 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. -// -// TunnelKit 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 TunnelKit. If not, see . -// - -// adapted from: https://stackoverflow.com/questions/31256024/get-dns-server-ip-from-iphone-settings - -#import -#import - -#import "DNS.h" - -@implementation DNS { - res_state _state; -} - -- (instancetype)init -{ - if (self = [super init]) { - _state = malloc(sizeof(struct __res_state)); - if (EXIT_SUCCESS != res_ninit(_state)) { - free(_state); - return nil; - } - } - return self; -} - -- (void)dealloc -{ - res_ndestroy(_state); - free(_state); -} - -- (NSArray *)systemServers -{ - NSMutableArray *addresses = [[NSMutableArray alloc] init]; - - union res_sockaddr_union servers[NI_MAXSERV]; - const int found = res_9_getservers(_state, servers, NI_MAXSERV); - char hostBuffer[NI_MAXHOST]; - - for (int i = 0; i < found; ++i) { - union res_sockaddr_union s = servers[i]; - if (s.sin.sin_len <= 0) { - continue; - } - if (EXIT_SUCCESS == getnameinfo((struct sockaddr *)&s.sin, // Pointer to your struct sockaddr - (socklen_t)s.sin.sin_len, // Size of this struct - (char *)&hostBuffer, // Pointer to hostname string - sizeof(hostBuffer), // Size of this string - nil, // Pointer to service name string - 0, // Size of this string - NI_NUMERICHOST)) { // Flags given - [addresses addObject:[NSString stringWithUTF8String:hostBuffer]]; - } - } - - return addresses; -} - -@end diff --git a/TunnelKit/Sources/Core/module.modulemap b/TunnelKit/Sources/Core/module.modulemap deleted file mode 100644 index d1c59a6..0000000 --- a/TunnelKit/Sources/Core/module.modulemap +++ /dev/null @@ -1,44 +0,0 @@ -// -// module.modulemap -// TunnelKit -// -// Created by Davide De Rosa on 3/23/18. -// Copyright (c) 2021 Davide De Rosa. All rights reserved. -// -// https://github.com/passepartoutvpn -// -// This file is part of TunnelKit. -// -// TunnelKit 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. -// -// TunnelKit 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 TunnelKit. If not, see . -// -// This file incorporates work covered by the following copyright and -// permission notice: -// -// Copyright (c) 2018-Present Private Internet Access -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -module __TunnelKitCore { - header "DNS.h" - header "Errors.h" - header "LZO.h" - header "RoutingTable.h" - header "ZeroingData.h" - export * -} diff --git a/TunnelKit/Sources/Protocols/OpenVPN/module.modulemap b/TunnelKit/Sources/Protocols/OpenVPN/module.modulemap deleted file mode 100644 index 8ff0afb..0000000 --- a/TunnelKit/Sources/Protocols/OpenVPN/module.modulemap +++ /dev/null @@ -1,51 +0,0 @@ -// -// module.modulemap -// TunnelKit -// -// Created by Davide De Rosa on 5/19/19. -// Copyright (c) 2021 Davide De Rosa. All rights reserved. -// -// https://github.com/passepartoutvpn -// -// This file is part of TunnelKit. -// -// TunnelKit 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. -// -// TunnelKit 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 TunnelKit. If not, see . -// -// This file incorporates work covered by the following copyright and -// permission notice: -// -// Copyright (c) 2018-Present Private Internet Access -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -// - -module __TunnelKitOpenVPN { - header "CompressionAlgorithmNative.h" - header "CompressionFramingNative.h" - header "ControlPacket.h" - header "Crypto.h" - header "CryptoBox.h" - header "DataPath.h" - header "DataPathCrypto.h" - header "MSS.h" - header "PacketMacros.h" - header "PacketStream.h" - header "ReplayProtector.h" - header "TLSBox.h" - export * -} diff --git a/TunnelKit/Tests/Core/DNSTests.swift b/TunnelKit/Tests/Core/DNSTests.swift deleted file mode 100644 index 4a3d9d1..0000000 --- a/TunnelKit/Tests/Core/DNSTests.swift +++ /dev/null @@ -1,54 +0,0 @@ -// -// DNSTests.swift -// TunnelKitTests -// -// Created by Davide De Rosa on 8/31/18. -// Copyright (c) 2021 Davide De Rosa. All rights reserved. -// -// https://github.com/passepartoutvpn -// -// This file is part of TunnelKit. -// -// TunnelKit 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. -// -// TunnelKit 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 TunnelKit. If not, see . -// - -import XCTest -import TunnelKit -import __TunnelKitCore - -class DNSTests: XCTestCase { - - override func setUp() { - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testIPv4() { - let addr = "1.2.3.4" - let ip: UInt32 = 0x01020304 - - XCTAssertEqual(DNSResolver.ipv4(fromString: addr), ip) - XCTAssertEqual(DNSResolver.string(fromIPv4: ip), addr) - - XCTAssertEqual(DNSResolver.string(fromIPv4: DNSResolver.ipv4(fromString: addr)!), addr) - XCTAssertEqual(DNSResolver.ipv4(fromString: DNSResolver.string(fromIPv4: ip)), ip) - } - - func testSystem() { - print("DNS: \(DNS().systemServers())") - } -} diff --git a/TunnelKit/Tests/Info.plist b/TunnelKit/Tests/Info.plist deleted file mode 100644 index f037ffb..0000000 --- a/TunnelKit/Tests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 3.6.0 - CFBundleVersion - 1 - - diff --git a/ci/pod-lint.sh b/ci/pod-lint.sh deleted file mode 100755 index 4e38387..0000000 --- a/ci/pod-lint.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -time bundle exec pod lib lint --allow-warnings --verbose diff --git a/ci/pod-push.sh b/ci/pod-push.sh deleted file mode 100755 index 8a375e7..0000000 --- a/ci/pod-push.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -time bundle exec pod trunk push --allow-warnings --verbose diff --git a/ci/set-version.sh b/ci/set-version.sh deleted file mode 100755 index 13d1873..0000000 --- a/ci/set-version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -PWD=`dirname $0` -VERSION=$1 -BUILD=`git rev-list HEAD --count` -agvtool new-marketing-version $VERSION -agvtool new-version $BUILD - -echo "Setting podspec version to $VERSION..." -sed -i "" -E 's@s\.version( +)= "[0-9]+\.[0-9]+\.[0-9]+"$@s.version\1= "'$VERSION'"@g' TunnelKit.podspec