2016-01-28 36 views
0

我是iOS开发新手,尝试实现到自定义端口的SSL连接。无法实现Swift SSLCreateContext

我发现的代码从这个答案是最好/最简单的实现通过套接字的安全连接的https://stackoverflow.com/a/30733961/2306428

不过,我收到这些错误:

Use of unresolved identifier 'kSSLClientSide' Use of unresolved identifier 'kSSLStreamType' Use of unresolved identifier 'kSSLSessionOptionBreakOnClientAuth'

我已经确认并我正在运行Swift版本2.1.1,使用iOS 9.2 SDK和Xcode 7.2。我甚至尝试添加import Security,但没有任何效果。

这些常数没有找到的原因是什么?

被测试的线是在这里:https://github.com/ksred/bank-ios/blob/master/Bank/TCPClient.swift#L209

回答

0

请使用在斯威夫特声明的标识符:

if let sslContext = SSLCreateContext(kCFAllocatorDefault, SSLProtocolSide.ClientSide, SSLConnectionType.StreamType) { 
    SSLSetIOFuncs(sslContext, sslReadCallback, sslWriteCallback) 
    SSLSetConnection(sslContext, &socketfd) 
    SSLSetSessionOption(sslContext, SSLSessionOption.BreakOnClientAuth, true) 
    SSLHandshake(sslContext) 
} 
+0

谢谢!这解决了问题中描述的错误。 – ksred

+0

Ivan,你可以显示sslReadCallback和sslWriteCallback的定义吗?当我尝试'func sslReadFunc(conn:SSLConnectionRef,data:UnsafeMutableRawPointer,dataLength:UnsafeMutablePointer ) - > OSStatus'时,出现错误。 – Gargoyle