Я должен зашифровать некоторые данные с помощью строкового открытого ключа, отправленного с сервера через HTTPS, и отправить обратно на сервер.
Я провел много исследований, а также изучил эти темы и многодругие вещи, связанные с этим, но не могли решить мою проблему.
Все, что я говорю, - то, что я не могу преобразовать строку в seckey, чтобы использовать эту функцию.
func SecKeyEncrypt(_ key: SecKey,
_ padding: SecPadding,
_ plainText: UnsafePointer<UInt8>,
_ plainTextLen: Int,
_ cipherText: UnsafeMutablePointer<UInt8>,
_ cipherTextLen: UnsafeMutablePointer<Int>) -> OSStatus
1- как зашифровать и расшифровать строку (обычный текст) с открытым ключом RSA в ios, swift
2- https://developer.apple.com/documentation/security/certificate_key_and_trust_services/keys/using_keys_for_encryption
Это MyCode для шифрования:
let publickey : SecKey = "# -----BEGIN PUBLIC KEY----- some key ----
END PUBLIC KEY----- #" as! SecKey
let message = "plain text"
let blockSize = SecKeyGetBlockSize(publicKey!)
var messageEncrypted = [UInt8](repeating: 0, count: blockSize)
var messageEncryptedSize = blockSize
var status: OSStatus!
status = SecKeyEncrypt(publickey!, SecPadding(rawValue: 0), message,
message.characters.count, &messageEncrypted, &messageEncryptedSize)
сбой приложения в первой строке.