如何在iPhone钥匙串中建立SecIdentityRef? (没有.p12)

时间:2010-11-22 01:48:53

标签: iphone certificate key private keychain

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

除非有私钥和证书创建.p12的API,否则SecPKCS12Import在这种情况下没有帮助。

SecIdentityCreateWithCertificate将是Mac上的答案,但iPhone上不存在。

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

非常感谢,安德鲁

1 个答案:

答案 0 :(得分:19)

好的,回答我自己的问题:

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

  1. 生成密钥对
  2. 获取与私钥匹配的证书
  3. 将证书插入钥匙串。
  4. 在此之后,您应该能够获得证书/私钥的SecIdentityRef。

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

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

    此致 Pece