2016-01-28 65 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