首页 文章

在iOS Keychain中保存证书身份时重复项目

提问于
浏览
0

我试图找出在尝试将证书身份添加到iOS钥匙串时 SecItemAdd 方法的状态代码 errSecDuplicateItem 的确切含义 .

阅读iOS文档,它只说这个状态代码意味着该项目在钥匙串中是重复的,但确定身份是否重复的标准是什么?发行人名称?截止日期?都?

如果您阅读Mac OSX文档,a similar方法的讨论部分将说明以下内容:

如果证书已添加到指定的钥匙串,则该函数将返回errSecDuplicateItem,并且不会向钥匙串添加另一个副本 . 该函数查看证书数据,而不是证书对象,以确定证书是否重复 . 如果两个证书具有相同的主键属性,则认为它们是重复的 .

我知道存在差异,我正在尝试将证书身份保存在钥匙串中,本讨论针对保存证书的 SecCertificateAddToKeychain 方法;但我相信有联系 .

"primary keys attributes" 是什么意思?

我尝试两次添加相同的身份,当然我得到 errSecDuplicateItem ,但我没有考虑 .

有什么想法吗?

提前致谢

1 回答

  • 0

    据我所知,钥匙链记录了.1441616_ t . 但是,根据message from Ken McLeod,证书由其证书类型,颁发者和序列号标识 . 钥匙串将拒绝接受多个证书,这些证书具有与这些属性完全相同的值 .

    证书颁发机构不得发布具有相同序列号的两个证书,因此您的用户不太可能发生此错误 . 如果您自己生成证书,还必须确保不会意外地重复使用序列号 .

相关问题