如何从NSURLConnection获取服务器的公钥?

时间:2014-06-03 14:57:45

标签: ios ssl nsurlconnection

我的应用使用TLS连接到服务器,并从服务器接收令牌。它需要通过检查服务器公钥的签名来验证令牌的真实性,该公钥是从SecTrustRef -connection:willSendRequestForAuthenticationChallenge:中获取的- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { if /* server trust authentication method and server is trusted */ { SecTrustRef trust = [challenge.protectionSpace serverTrust]; self.serverPublicKey = SecTrustCopyPublicKey(trust); } } 对象中检索的,如此

-connection:willSendRequestForAuthenticationChallenge:

但是,如果我断开与服务器的连接,然后再次连接到它,我的委托的-connectionDidFinishLoading:方法没有被调用,我没有机会存储服务器的公钥。系统似乎正在缓存服务器的凭据以及我发送给服务器的客户端凭据。

有没有办法检索这些缓存的凭据,以便我可以在NSURLConnection中获取服务器的公钥,或者只给我{{1}}的其他委托回调?

0 个答案:

没有答案