如何在iPhone钥匙串中创建SecIdentityRef,如果
1)您已经在钥匙串中拥有私钥,并且
2)您刚收到CA颁发的证书吗?

SecPKCS12Import在这种情况下无济于事,除非有一个API可根据私钥和证书创建.p12。

SecIdentityCreateWithCertificate将在Mac上解决,但在iPhone上不存在。

是否可以使用SecItemAdd?
http://developer.apple.com/library/ios/#documentation/Security/Reference/keychainservices/Reference/reference.html

非常感谢,安德鲁

最佳答案

好,回答我自己的问题:

在iOS上,钥匙串会自动将证书绑定到私钥。这意味着您只需要:


生成密钥对
获取与私钥匹配的证书
将证书插入钥匙串。


之后,您应该能够获得证书/私钥的SecIdentityRef。

重要:
SecItemAdd函数允许您直接插入证书数据(DER表示形式的NSData)。这样,您将可以获得有效的证书参考,但不能获得身份参考。
插入证书的正确方法是首先对证书的DER字节使用SecCertificateCreateWithData函数。这将返回一个SecCertificateRef对象,然后使用SecItemAdd函数将其用于将证书持久保存在钥匙串中。

我希望这会使某人的生活更轻松;-)

问候,
佩斯

关于iphone - 如何在iPhone钥匙串(keychain)中建立SecIdentityRef? (不带.p12),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4241590/

10-13 04:02