将SecKeyRef,SecIdentityRefs添加到OS X钥匙串
问题描述:
存在方便的SecCertificateAddToKeychain()
函数,该函数允许开发人员将“浮动”证书(例如,由SecCertificateCreateWithData()
生成的SecCertificateRef
实例)添加到钥匙串。将SecKeyRef,SecIdentityRefs添加到OS X钥匙串
SecKeyRef
和SecIdentityRef
实例的等效函数在哪里?有SecKeychainItemImport()
,但它用于导入原始数据。还有SecItemAdd()
,但仅限于添加密码。
我错过了什么?
答
SecItemAdd
能够将证书和密钥添加到钥匙串;只需将kSecClass
属性设置为该项目的类(例如kSecClassKey)并在kSecUseItemList
属性中传递数组中的项引用即可。
唯一需要注意的是,对SecItemAdd
的单个调用只能添加同一类的项目;如果你想添加一个证书和一个密钥,你需要在两个电话中完成。
您不需要明确地创建或添加标识到钥匙串;它们是在证书和私钥都可用时自动创建的隐式结构。