RSA / OAEP-шифрование в ios Swift - PullRequest
       14

RSA / OAEP-шифрование в ios Swift

0 голосов
/ 21 февраля 2019

Файл Pem выглядит следующим образом

Public Key
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA0bipoOhkkvPxcsyOzcqsIUeVe0+iwe8W7N4EbHZMgujRERu1TPpy
UcCO0uuKmm1TU09Kl40rRvDbtgB1YcGV3FPnNp3sOyFVsdyZ5bzxZtyyLrSWtj/n
bLnGwaG9xJSwd2R/pTQLzOLV5KldwD2eUb3Z4Z4e9Z8II7eWgGaCLLqbrtEAa05N
EqARckxrzJ1S3j+59h4AQovF72KI90/kRPryT2OGDiVlJ6CTjn2ZnTYcx65X6Rwf
AeJKHZAGhw96j9tXyS+dJcXy4IBUTi3PXw0aEfhHQr/JsSHuMp/8mrhVJEokXb1C
gKDZgJXujpGhCBdztHBAJxLBQMlODg7srwIDAQAB
-----END RSA PUBLIC KEY-----

Но у меня есть строка открытого ключа как

MIIBCgKCAQEA0bipoOhkkvPxcsyOzcqsIUeVe0+iwe8W7N4EbHZMgujRERu1TPpy
UcCO0uuKmm1TU09Kl40rRvDbtgB1YcGV3FPnNp3sOyFVsdyZ5bzxZtyyLrSWtj/n
bLnGwaG9xJSwd2R/pTQLzOLV5KldwD2eUb3Z4Z4e9Z8II7eWgGaCLLqbrtEAa05N
EqARckxrzJ1S3j+59h4AQovF72KI90/kRPryT2OGDiVlJ6CTjn2ZnTYcx65X6Rwf
AeJKHZAGhw96j9tXyS+dJcXy4IBUTi3PXw0aEfhHQr/JsSHuMp/8mrhVJEokXb1C
gKDZgJXujpGhCBdztHBAJxLBQMlODg7srwIDAQAB

Что я пытаюсь сделать?

Я хочу использовать этот открытый ключ для шифрования моего Secret Key для передачи его на сервер.Я сгенерировал динамический 32byte key в форме массива UInt8.

Что я пробовал до сих пор?

self.PUB_KEY = [UInt8](Data(base64Encoded: self.PUB_KEY_B64)!)

Используя приведенную выше строку, я генерируюмассив UInt8 из строки открытого ключа выше.

func encryptKey() -> [UInt8] {
        let publicKey = try! PublicKey(pemEncoded: Data(bytes: self.PUB_KEY).base64EncodedString())


        let clearMessage = ClearMessage(data: Data(bytes: self.syncKey))
        return [UInt8]((try! clearMessage.encrypted(with: publicKey, padding: .OAEP)).data)
}

Используя приведенный выше код, я шифрую секретный ключ.

Неполадка

Всякий раз, когда эти зашифрованные данные поступают на сервер, онипоказывая ошибку

routines:rsa_ossl_private_decrypt:data greater than mod len
...