2017-09-01 6 views
0

CFStreamCreatePairWithSocketToHostを使用してサーバーへの接続を作成しています。このサーバーは自己署名証明書を使用しており、検証する必要があります。 私はサーバー証明書を取得する方法を見つけることを試みてきましたが、私は紛失しています。取得できるメソッド/クラスが見つかりません。iOSでCFSocketを使用しているときに手動でTLS証明書を検証する方法は?

私は、このようなコードでそれを得ることができますどのように指摘して感謝するでしょう。

CFReadStreamRef readStream; 
CFWriteStreamRef writeStream; 
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef) address, (UInt32) port, &readStream, &writeStream); 

NSInputStream *inputStream = (__bridge_transfer NSInputStream *) readStream; 
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *) writeStream; 
[inputStream setDelegate:self]; 
[outputStream setDelegate:self]; 
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 

NSDictionary *settings = @{(NSString *) kCFStreamSSLValidatesCertificateChain: @NO}; 

CFReadStreamSetProperty((__bridge CFReadStreamRef) inputStream, kCFStreamPropertySSLSettings, (__bridge CFTypeRef) settings); 

[inputStream open]; 
[outputStream open]; 

答えて

0

グーグルのさらに別のセッションの間、私は最終的に記述し、いくつかのまれなアップルのドキュメントの1につまずいてきましたはっきりプロセス: https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/NetworkingTopics/Articles/OverridingSSLChainValidationCorrectly.html

:ここ https://developer.apple.com/library/content/technotes/tn2232/_index.html#//apple_ref/doc/uid/DTS40012884-CH1-SECCFSOCKETSTREAM

とは、Appleが提供するサンプルコードです

関連する問題