iOS - 使用 TLS-PSK 连接到套接字

iOS - Connecting to socket with TLS-PSK

我正在构建一个 iOS 客户端,它使用 SSL/TLS 和预共享密钥连接到 TCP 套接字,没有证书文件。我试图弄清楚 iOS 中是否内置了对 TLS-PSK 的支持,但我似乎无法在任何地方找到任何信息。我是否遗漏了什么,或者我是否必须使用 OpenSSL 之类的东西(这已经让我哭了两次)才能让它工作?

我一直在尝试使用 CFStream、NSStream 和 CocoaAsyncSocket 但没有成功。

对于 Android 我正在使用 SpongyCastle

如果有人能指出正确的方向,我将不胜感激。

谢谢!

如果您使用 OpenSSL,您绝对可以使用 TLS-PSK。您需要启用 PSK 密码套件,并使用 SSL_set_psk_client_callback 设置客户端回调,然后从中提供 PSK。

P. S. 在 Android 上,TLS-PSK 也由 platform-default TLS 堆栈提供,因为 API 级别 21(参见 https://developer.android.com/reference/android/net/PskKeyManager.html)。

考虑到最新的 Apple 限制,我刚刚创建了一个包来处理 iOS 到 TLS 上的 NodeJS,请查看 - https://github.com/eamonwhiter73/IOSObjCWebSockets