Я генерирую закрытый ключ, используя модуль и компонент, но когда я конвертирую его в тип SecKey, я получаю нулевое значение.
Вот мой код:
let pubKey = instanceOfCustomObject.generateRSAPrivateKey(withModulus: modData! as Data, exponent: expData! as Data)
print(pubKey! as NSData)
let keyDict:[NSObject:NSObject] = [
kSecAttrKeyType: kSecAttrKeyTypeRSA,
kSecAttrKeyClass: kSecAttrKeyClassPrivate,
kSecAttrKeySizeInBits: NSNumber(value: 128),
kSecReturnPersistentRef: true as NSObject
]
let privateSecKey = SecKeyCreateWithData(pubKey! as Data as CFData, keyDict as CFDictionary, nil)
let blockSize = SecKeyGetBlockSize(pubSecKey!)
var encrypted = [UInt8](repeating: 0, count: blockSize)
var encSize = blockSize
let status = SecKeyDecrypt(privateSecKey!,
SecPadding.PKCS1, textToEncrypt,
textToEncrypt.count, &encrypted,
&encSize)
Когда я устанавливаю для kSecAttrKeyClassPrivate значение kSecAttrKeyClassPublic и использую функцию SecKeyDecrypt, я получаю значение состояния -50.