如何解决ios kSecClassCertificate产生-25303
我正在尝试将p12(pfx)证书存储到ios上的钥匙串中 基本上使用来自keychainswift的代码,只是密码从密码更改为证书:
@discardableResult
open func setCertificate(_ value: Data,forKey key: String,withAccess access: KeychainSwiftAccessOptions? = nil) -> Bool {
// The lock prevents the code to be run simultaneously
// from multiple threads which may result in crashing
lock.lock()
defer { lock.unlock() }
deleteNoLock(key) // Delete any existing key before saving it
let accessible = access?.value ?? KeychainSwiftAccessOptions.defaultOption.value
let prefixedKey = keyWithPrefix(key)
var query: [String : Any] = [
KeychainSwiftConstants.klass : kSecclassCertificate,KeychainSwiftConstants.attrAccount : prefixedKey,KeychainSwiftConstants.valueData : value,KeychainSwiftConstants.accessible : accessible
]
query = addAccessGroupWhenPresent(query)
query = addSynchronizableIfrequired(query,addingItems: true)
lastQueryParameters = query
lastResultCode = SecItemAdd(query as CFDictionary,nil)
return lastResultCode == noErr
}
获取-25303(即无效的属性) 我是否应该零碎地分别存储身份,证书链和具有不同密钥的信任关系才能使其正常工作?
假设我们将kSecclassCertificate和kSecclasspassword分类存储之间的区别是什么 有钥匙串沙箱,而没有GUI? 是为了与MacOS或其他产品保持向前兼容性?
PS。苹果公司请尝试寻找一名技术作家,以解决有关安全框架的可怕文档。谢谢!
解决方法
documentation中提到了证书的所有可用属性。我认为您的%WINDIR%\Assembly
是无效的参数,但是我不确定attrAccount
可能无效。因此,请至少删除valueData
,并可能删除attrAccount
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。