Я сохранил ключ RSA в цепочке ключей iOS, и после его получения я не могу выполнять с ним операции SecKey ... Я пробовал SecKeyCopyExternalRepresentation, SecKeyIsAlgorithm и c. все они терпят неудачу с одной и той же ошибкой
Ниже приведен код
let mlekPublicKeyAttr: [NSObject: NSObject] = [
kSecAttrIsPermanent:true as NSObject,
kSecAttrApplicationTag:MLEK_PUBLIC_TAG as NSObject,
kSecClass: kSecClassKey, // added this value
kSecReturnData: kCFBooleanTrue,
kSecReturnAttributes: kCFBooleanTrue,
kSecReturnRef: kCFBooleanTrue]// added this value
if(SecItemCopyMatching(mlekPublicKeyAttr as CFDictionary, nil) == errSecSuccess){
var queryResult: AnyObject?
_ = withUnsafeMutablePointer(to: &queryResult) {
SecItemCopyMatching(mlekPublicKeyAttr as CFDictionary, $0)
}
let publicKey = queryResult as! SecKey
let publicKeyData = SecKeyCopyExternalRepresentation(publicKey, &error)! as Data
let keyExportManager = CryptoExportImportManager()
let exported = keyExportManager.exportRSAPublicKeyToPEM(publicKeyData,
keyType: kSecAttrKeyTypeRSA as String,
keySize: 256)
return exported
}
Ниже приведена ошибка
error: warning: couldn't get required object pointer (substituting NULL):
Couldn't load 'self' because its value couldn't be evaluated
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x2700050004).
Любая помощь здесь приветствуется.