我想知道在尝试向iOS钥匙串中添加证书身份时,SecItemAdd
方法的状态码errSecDuplicateItem
的确切含义。在iOS Keychain中保存证书身份时的重复项
阅读iOS文档时,它只是说这个状态码表示该项目在钥匙串中是重复的,但是确定身份是否重复的标准是什么?发行人姓名?截止日期?都?
如果你读了Mac OSX的文件,为a similar方法的讨论部分说以下内容:
如果证书已经被添加到指定的钥匙圈, 该函数返回errSecDuplicateItem和不添加另一个拷贝 到钥匙串。该功能查看证书数据,而不是 的证书对象,以确定证书是否为 重复。它认为两个证书是重复的,如果它们的 具有相同的主键属性。
我知道有一个区别,我试图将证书标识保存在钥匙串中,并且这个讨论是针对保存证书的SecCertificateAddToKeychain
方法的;但我相信有一个联系。
"primary keys attributes"
是什么意思?
我试过两次添加相同的身份,当然我得到的是errSecDuplicateItem
,但是我恐怕如果用户想在某种程度上更新证书,我不会考虑用户可能会收到错误。
有什么想法?
在此先感谢
从keychain值中删除dublicate证书!错误发生,因为你使用相同的身份保存另一个证书,尝试更改身份名称,然后安全地删除旧的! – iphonemaclover