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

Пожалуйста, используйте идентификаторы, объявленные в Swift:

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

Иван, вы можете показать определение sslReadCallback и sslWriteCallback, пожалуйста? Я получаю ошибки, когда я пытаюсь использовать 'func sslReadFunc (conn: SSLConnectionRef, data: UnsafeMutableRawPointer, dataLength: UnsafeMutablePointer ) -> OSStatus' например. – Gargoyle

Смежные вопросы