微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios kSecClassCertificate产生-25303

如何解决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 举报,一经查实,本站将立刻删除。