1

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;

..開封します。これに相当する迅速なものは何ですか?

どうもありがとう!

4

1 に答える 1