gpt4 book ai didi

ios - 使用 NEVPNManager 如何设置 SharedSecretReference

转载 作者:行者123 更新时间:2023-11-28 21:03:41 30 4
gpt4 key购买 nike

所以我正在尝试使用 NEVPNManager 以编程方式设置我的 VPN。我被困在配置上,真的很困惑什么在哪里。

sharedSecretReference 真的让我很困惑。我在其他地方看到过说我需要使用钥匙串(keychain)的东西,但是如何以及为什么。我可以手动使用大约 6 个选项连接到这个 VPN,所以为什么我需要这么多。

如果您发现我可能做错的任何其他事情,请告诉我。这是我目前使用的确切代码

    NEVPNProtocolIPSec *p = [[NEVPNProtocolIPSec alloc] init];
p.username = [config objectForKey: @"username"];
p.passwordReference = [config objectForKey: @"password"];
p.serverAddress = [config objectForKey: @"ip"];
p.localIdentifier = [config objectForKey: @"vpn"];
p.remoteIdentifier = [config objectForKey: @"vpn"];
p.useExtendedAuthentication = NO;
p.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret;
p.disconnectOnSleep = NO;

p.sharedSecretReference = [config objectForKey: @"psk"];

最佳答案

重要的是要了解您正在为 NEVPNManager 提供一个配置,即使您的应用处于非事件状态(通过“设置”应用),它也可以使用该配置来启动 VPN 连接。 VPN 管理器需要能够在不通过您的应用程序的情况下从钥匙串(keychain)中获取安全数据(共享 secret 或密码)。为此,它使用对钥匙串(keychain)中 secret 的持久引用,而不是 secret 本身。如果您使用像 KeychainAccess 这样的库,则很容易获得并设置此引用:

let keychain = Keychain()
let persistentRefSharedSecret = keychain[attributes: "my_shared_secret"].persistentRef
let persistentRefPassword = keychain[attributes: "my_password"].persistentRef

...

p.sharedSecretReference = persistentRefSharedSecret
p.passwordReference = persistentRefPassword

关于ios - 使用 NEVPNManager 如何设置 SharedSecretReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46944843/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com