Расшифровка с использованием ошибки закрытого ключа RSA OSStatus -50 Swift - PullRequest
0 голосов
/ 16 января 2019

Я генерирую закрытый ключ, используя модуль и компонент, но когда я конвертирую его в тип 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.

...