Итак, это мой первый вопрос о переполнении стека, и он касается цепочки для ключей, поэтому я читаю документацию Apple о цепочке для ключей, и они упоминают, что ключ может быть сгенерирован или получен другими способами «как в моем случае», затем я создал »словарь запросов "как они сказали, но когда я пытался добавить его, я получаю сообщение об ошибке, и мой статус равен -50 . Я не знаю, что значит, и причина, по которой я пытаюсь сохранить свой ключ, заключается в том, что поэтому я могу использовать его с "SecKeyDecrypt" для расшифровки сообщений, для которых в качестве параметра
требуется SecKey
ОБНОВЛЕНИЕ: Я обнаружил, что код возврата означает -50 errSecParam, что означает
"Один или несколько параметров, переданных в функцию, недопустимы." , затем я пытаюсь удалить мой kSecValueRef как String: privateKey
и это работает, но все же, я хочу, чтобы этот ключ был сохранен ??
let privateKey = "myKey"
let tag = "mybunlde.com".data(using: .utf8)!
let addPrivateKey: [String: Any] = [kSecClass as String: kSecClassKey,
kSecAttrApplicationTag as String: tag,
kSecValueRef as String: privateKey]
let status = SecItemAdd(addPrivateKey as CFDictionary, nil)
guard status == errSecSuccess else { print("error while creating the key")
return
}
let getPrivateKey: [String: Any] = [kSecClass as String: kSecClassKey,
kSecAttrApplicationTag as String: tag,
kSecAttrKeyType as String: kSecAttrKeyTypeRSA,
kSecReturnRef as String: true]
print("getPrivateKey \(getPrivateKey)")
} else {
print("no key found ")
}