我正在尝试对客户端证书进行身份验证,但SecPKCS12Import函数始终返回错误代码-26275并且项目也为零
struct IdentityAndTrust {
var identity : SecIdentity
var trust : SecTrust
var certArray : NSArray
}
func extractIdentity(certData : NSData) -> IdentityAndTrust {
var identityAndTrust : IdentityAndTrust!
var securityError : OSStatus = errSecSuccess
let key = kSecImportExportPassphrase
let options = [key : "xyz"]
var items : CFArray?
securityError = SecPKCS12Import(certData, options as CFDictionary, &items)
if securityError == errSecSuccess {
let certItems = items as! CFArray
let certItemsArray = certItems as Array
let dict = certItemsArray.first
if let certEntry = dict {
//grab the identity
let identityPointer = certEntry["identity"]
let secIdentityRef = identityPointer
//grab the trust
let trustPointer = certEntry["trust"]
let trustRef = trustPointer
//grab the certificate
let chainPointer = certEntry["chain"]
identityAndTrust = IdentityAndTrust(identity: secIdentityRef as! SecIdentity, trust: trustRef as! SecTrust, certArray: chainPointer! as! NSArray)
}
}
print(securityError.description)
return identityAndTrust
}