GCDAsyncSocket を使用して単純な TLS サーバーを作成し、クライアントの公開鍵を取得したいと考えています。私はこれを使ってみました:
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
SSLContextRef ref = [sock sslContext];
SecTrustRef trust;
SSLCopyPeerTrust(ref, &trust);
SecKeyRef key = SecTrustCopyPublicKey(trust);
NSLog(@"%@",key);
}
しかし、私は SecTrustCopyPublicKey メソッドで exc_bad_access を取得します。公開鍵を NSString/NSData として取得するにはどうすればよいですか?