шифрование swift ios 8.0 RSA (известный publicKey) - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь зашифровать строку с помощью RSA, я уже получил publicKey (тип String) с сервера. Как я могу получить secKey без "SecKeyCreateWithData", потому что этот метод поддерживает только ios10 +? Но он должен поддерживать ios8.0 +.

   if #available(iOS 10.0, *) {
        guard let secKey = SecKeyCreateWithData(data as CFData, attributes, &error) else {
            print(error.debugDescription)
            return nil
        }
    } else {
        //how can I do here?
    }

1 Ответ

0 голосов
/ 18 марта 2020

CoreCrypto и Security, по-видимому, поддерживаются только с iOS 10 и далее (как вы обнаружили).

У вас есть два варианта:

1) Генерация компонентов RSA вручную, переходя к собственной реализации (Предложите вам избежать такого подхода).

2) Переключитесь на современную кроссплатформенную криптобиблиотеку, например, libsodium. (Не поддерживает RSA, все E C основаны на асимметрии c crypto).

У Apple также есть CryptoKit, но она не поддерживает <<code>iOS 13.

Если вы добавите дополнительную информацию о вашем сценарии использования, я с удовольствием предложу дополнительные варианты.

...