parent
8618b66900
commit
4114605520
|
@ -762,8 +762,8 @@
|
||||||
0E05412B25A231D500EFC5FF /* Demo */ = {
|
0E05412B25A231D500EFC5FF /* Demo */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
0E05413B25A231D500EFC5FF /* macOS */,
|
|
||||||
0E05414325A231D500EFC5FF /* iOS */,
|
0E05414325A231D500EFC5FF /* iOS */,
|
||||||
|
0E05413B25A231D500EFC5FF /* macOS */,
|
||||||
0E05413225A231D500EFC5FF /* DemoTunnel.plist */,
|
0E05413225A231D500EFC5FF /* DemoTunnel.plist */,
|
||||||
0E05413425A231D500EFC5FF /* Configuration.swift */,
|
0E05413425A231D500EFC5FF /* Configuration.swift */,
|
||||||
0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */,
|
0E05413825A231D500EFC5FF /* PacketTunnelProvider.swift */,
|
||||||
|
@ -2371,7 +2371,7 @@
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/Demo.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/Demo.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
|
@ -2395,7 +2395,7 @@
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/Demo.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/Demo.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
|
@ -2416,7 +2416,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/DemoTunnel.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/DemoTunnel.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
|
@ -2438,7 +2438,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/DemoTunnel.entitlements;
|
CODE_SIGN_ENTITLEMENTS = TunnelKit/Demo/macOS/DemoTunnel.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "-";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
DEVELOPMENT_TEAM = DTDYD63ZX9;
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
|
|
|
@ -49,6 +49,8 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
|
|
||||||
private let vpn = OpenVPNProvider(bundleIdentifier: tunnelIdentifier)
|
private let vpn = OpenVPNProvider(bundleIdentifier: tunnelIdentifier)
|
||||||
|
|
||||||
|
private let keychain = Keychain(group: appGroup)
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
|
@ -93,10 +95,12 @@ class ViewController: UIViewController, URLSessionDataDelegate {
|
||||||
|
|
||||||
let credentials = OpenVPN.Credentials(textUsername.text!, textPassword.text!)
|
let credentials = OpenVPN.Credentials(textUsername.text!, textPassword.text!)
|
||||||
let cfg = Configuration.make(hostname: hostname, port: port, socketType: socketType)
|
let cfg = Configuration.make(hostname: hostname, port: port, socketType: socketType)
|
||||||
|
try? keychain.set(password: credentials.password, for: credentials.username, context: tunnelIdentifier)
|
||||||
let proto = try! cfg.generatedTunnelProtocol(
|
let proto = try! cfg.generatedTunnelProtocol(
|
||||||
withBundleIdentifier: tunnelIdentifier,
|
withBundleIdentifier: tunnelIdentifier,
|
||||||
appGroup: appGroup,
|
appGroup: appGroup,
|
||||||
credentials: credentials
|
context: tunnelIdentifier,
|
||||||
|
username: credentials.username
|
||||||
)
|
)
|
||||||
let neCfg = NetworkExtensionVPNConfiguration(title: "BasicTunnel", protocolConfiguration: proto, onDemandRules: [])
|
let neCfg = NetworkExtensionVPNConfiguration(title: "BasicTunnel", protocolConfiguration: proto, onDemandRules: [])
|
||||||
vpn.reconnect(configuration: neCfg) { (error) in
|
vpn.reconnect(configuration: neCfg) { (error) in
|
||||||
|
|
|
@ -45,6 +45,8 @@ class ViewController: NSViewController {
|
||||||
|
|
||||||
private let vpn = OpenVPNProvider(bundleIdentifier: tunnelIdentifier)
|
private let vpn = OpenVPNProvider(bundleIdentifier: tunnelIdentifier)
|
||||||
|
|
||||||
|
private let keychain = Keychain(group: appGroup)
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
|
@ -84,10 +86,12 @@ class ViewController: NSViewController {
|
||||||
|
|
||||||
let credentials = OpenVPN.Credentials(textUsername.stringValue, textPassword.stringValue)
|
let credentials = OpenVPN.Credentials(textUsername.stringValue, textPassword.stringValue)
|
||||||
let cfg = Configuration.make(hostname: hostname, port: port, socketType: .udp)
|
let cfg = Configuration.make(hostname: hostname, port: port, socketType: .udp)
|
||||||
|
try? keychain.set(password: credentials.password, for: credentials.username, context: tunnelIdentifier)
|
||||||
let proto = try! cfg.generatedTunnelProtocol(
|
let proto = try! cfg.generatedTunnelProtocol(
|
||||||
withBundleIdentifier: tunnelIdentifier,
|
withBundleIdentifier: tunnelIdentifier,
|
||||||
appGroup: appGroup,
|
appGroup: appGroup,
|
||||||
credentials: credentials
|
context: tunnelIdentifier,
|
||||||
|
username: credentials.username
|
||||||
)
|
)
|
||||||
let neCfg = NetworkExtensionVPNConfiguration(title: "BasicTunnel", protocolConfiguration: proto, onDemandRules: [])
|
let neCfg = NetworkExtensionVPNConfiguration(title: "BasicTunnel", protocolConfiguration: proto, onDemandRules: [])
|
||||||
vpn.reconnect(configuration: neCfg) { (error) in
|
vpn.reconnect(configuration: neCfg) { (error) in
|
||||||
|
|
Loading…
Reference in New Issue