Мне нужен способ создания асимметричной пары RSA в Swift. Мне не нужно хранить его в брелках или что-то еще. Мне просто нужно сгенерировать пару ключей и переместить оба ключа в переменные String.Как создать асимметричную пару ключей RSA в Swift для IOS?
Ключи должны быть совместимы с PHP на другом конце. Я буду использовать симметричное шифрование для защиты секретного ключа и сохранения его на телефоне. Я отправлю открытый ключ в веб-службу, которая реализована на PHP, и веб-служба сохранит открытый ключ в базе данных.
Этот открытый ключ будет использоваться позднее веб-службой для шифрования таких значений, как одноразовые пароли и другие чувствительные значения, предназначенные для приложения IOS. Я реализую аналогичную схему для небольших фрагментов данных, поступающих из приложения IOS в веб-службу.
только документированы API декларации я мог бы найти для генерации пары ключей в Swift показан на developer.apple.com:
func SecKeyGeneratePairAsync(_ parameters: CFDictionary!,
_ deliveryQueue: dispatch_queue_t!,
_ result: SecKeyGeneratePairBlock!)
Я попытался выяснить, как использовать это, но XCode не как подчеркивания, и я не уверен, что я на самом деле должен делать с этим или как его использовать.
Даже если XCode примет его, я не уверен, как бы я назвал функцию и какие значения ее передать, и т. Д. Я включил «импортную безопасность» наверху, так что это не проблема.
Это смешно, что это должно быть так сложно. Все, что я хочу сделать, это генерировать асимметричную пару ключей.
Это кусок пирога для этого на PHP или .NET или Java или на любом другом языке, но я не могу найти четкую документацию для Swift. Я должен использовать Swift для этого приложения. Я не хочу использовать OpenSSL, потому что он устарел.
Я использую Swift, потому что я чертовски ненавидят цель C. Свифт - причина, по которой я, наконец, прыгаю в развитие IOS.
Я не знаю, как интегрировать класс Objective C со Swift, и я бы предпочел иметь чистое решение Swift, если оно есть. Если нет, я был бы признателен за некоторые указания о том, как интегрировать решение Objective C и заставить его работать.
Вышеприведенный фрагмент - это единственный вызов функции, который предоставляет Apple, и, естественно, он неполный, не имеет смысла и не работает.
Пожалуйста, помогите, если вы можете ... это было бы очень оценено. :) Спасибо
- = Cameron
Смотрите мой ответ на [этот вопрос] (http://stackoverflow.com/questions/29489391/generate-base64-url-encoded-x-509-format-2048-bit-rsa-public-key -with-swift/29662582 # 29662582) для примера вызова SecKeyGeneratePair() из Swift. Это не асинхронная пара, но вы должны туда попасть. –
«Async» означает, что вызов выполняется в фоновом режиме и вызывает обратный вызов, когда он завершен, чтобы вернуть пару ключей, в то время как SecKeyGeneratePair выполняет его в текущем потоке и возвращает ключ. Клавиши одинаковы. – gnasher729