ios kSecClassCertificate 产量 -25303
ios kSecClassCertificate yields -25303
我正在尝试将 p12(pfx) 证书存储到 ios 上的钥匙串中
基本上使用来自 keychainswift 的代码,只是 klass 从密码更改为证书:
@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
}
getting -25303(无效属性)
我是否应该使用不同的密钥分别存储身份、证书链和信任才能使其正常工作?
鉴于我们,kSecClassCertificate 和 kSecClassPassword 存储类别之间有什么区别
有钥匙串沙盒但没有 GUI?
这是为了向前兼容 macos 还是什么?
PS。 Apple 请尝试找到一位技术作家,他可以修复有关安全框架的可怕文档。谢谢!
documentation 中提到了证书的所有可用属性。我相信你的 attrAccount
是一个无效参数,我觉得,但我不确定 valueData
可能无效。所以至少删除 attrAccount
和可能的 valueData
.
我正在尝试将 p12(pfx) 证书存储到 ios 上的钥匙串中 基本上使用来自 keychainswift 的代码,只是 klass 从密码更改为证书:
@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
}
getting -25303(无效属性) 我是否应该使用不同的密钥分别存储身份、证书链和信任才能使其正常工作?
鉴于我们,kSecClassCertificate 和 kSecClassPassword 存储类别之间有什么区别 有钥匙串沙盒但没有 GUI? 这是为了向前兼容 macos 还是什么?
PS。 Apple 请尝试找到一位技术作家,他可以修复有关安全框架的可怕文档。谢谢!
documentation 中提到了证书的所有可用属性。我相信你的 attrAccount
是一个无效参数,我觉得,但我不确定 valueData
可能无效。所以至少删除 attrAccount
和可能的 valueData
.