SecureTransport C ライブラリへの迅速なブリッジを実装しようとしています。私は、sslReadCallback/sslWriteCallback 実装で接続から何かを読み取る方法を知っている限り、接続として何でも渡すことができると「考えています」。これは私が取り組んでいる仮定です。これは、SSLConnectionRef の定義を表示した場合に当てはまるようです。
/* Opaque reference to an I/O connection (socket, endpoint, etc.) */
public typealias SSLConnectionRef = UnsafePointer<Void>
したがって、クラスを UnsafePointer に変更する必要があります。残念ながら、コンパイラは私の試みを気に入りません。誰でもヒントを教えてもらえますか?
func startSSLProcess()
{
self.sslContext = SSLCreateContext(kCFAllocatorDefault, SSLProtocolSide.ClientSide, SSLConnectionType.StreamType)
if let sslContext = self.sslContext
{
SSLSetIOFuncs(sslContext, sslReadCallback, sslWriteCallback)
SSLSetConnection(sslContext, UnsafePointer(self)) // <-- error
SSLSetSessionOption(sslContext, SSLSessionOption.BreakOnClientAuth, true)
SSLHandshake(sslContext)
}
}
GCDAsyncSocket では、これを行います。
status = SSLSetConnection(sslContext, (__bridge SSLConnectionRef)self);
と
SubZeroGCDAsyncSocket *asyncSocket = (__bridge SubZeroGCDAsyncSocket *)connection;
..開封します。これに相当する迅速なものは何ですか?
どうもありがとう!