Вопрос или проблема
Я ищу библиотеки с открытым исходным кодом для Android и iOS (Swift), которые помогут реализовать асимметричное шифрование ключей. У меня есть открытый ключ, и библиотека должна помочь с AES-128 (шифрование данных) и RSA1.5 (шифрование ключа).
Это нужно для создания SOAP-запроса с реализованной WSSecurity.
Хорошим началом для кроссплатформенной крипто-библиотеки является Libsodium, она поддерживает современные методы криптографии. Поскольку вы спрашивали о конкретных алгоритмах, вы также можете попробовать крипто API BouncyCastle, хотя я не уверен насчет совместимости с iOS.
Ответ или решение
Для реализации ассиметричного шифрования на Android и iOS (Swift) с использованием открытых библиотек, вам следует рассмотреть несколько популярных вариантов, которые поддерживают как AES-128 для шифрования данных, так и RSA1.5 для оборачивания ключей.
-
BouncyCastle:
- Описание: BouncyCastle — это мощная библиотека, которая предоставляет богатый функционал для криптографии и поддерживает широкий набор алгоритмов, включая RSA и AES. Она доступна как для Android, так и для iOS.
- Ссылка: BouncyCastle
- Интеграция: Чтобы использовать BouncyCastle на Android, вы можете добавить зависимость в ваш проект через Gradle, а для iOS интегрируйте её с помощью CocoaPods. BouncyCastle отлично документирован, и вы сможете найти примеры кода для реализации ассиметричного шифрования.
-
Libsodium:
- Описание: Libsodium — это современная библиотека для криптографии, которая обеспечивает безопасное шифрование данных и имеет удобный интерфейс. Она поддерживает различные алгоритмы, но для RSA1.5 и AES-128 вам может потребоваться дополнительная реализация.
- Ссылка: Libsodium
- Интеграция: Вы можете использовать Libsodium на Android через JNI и на iOS с использованием Swift или Objective-C. Это хорошая библиотека для тех, кто требует надежный и безопасный подход к криптографии.
-
OpenSSL:
- Описание: OpenSSL — это одна из самых известных библиотек для реализации криптографических функций. Она поддерживает AES и RSA и может использоваться как на Android, так и на iOS.
- Ссылка: OpenSSL
- Интеграция: OpenSSL можно подключить к проектам на Android через NDK и к проектам на iOS через CocoaPods или Carthage. Убедитесь, что вы правильно собираете библиотеку для вашей платформы.
-
SwiftCrypto:
- Описание: SwiftCrypto — это современная библиотека для криптографии в Swift, которая предоставляет высокоуровневый API для работы с различными алгоритмами, такими как RSA и AES.
- Ссылка: SwiftCrypto
- Интеграция: Эта библиотека можно легко интегрировать в ваш проект на iOS и обладает хорошей документацией.
Примеры использования
Для реализации SOAP-запроса с WSSecurity, вы можете выполнить следующие шаги:
- Генерация ключей: Используйте RSA для генерации пары ключей (публичный и приватный) для шифрования данных.
- Шифрование данных с помощью AES-128: Используйте один из предложенных вариантов библиотек для шифрования данных с использованием сгенерированного симметричного ключа.
- Оборачивание ключа с использованием RSA1.5: С помощью BouncyCastle или OpenSSL, оберните ваш симметричный ключ, используя публичный ключ.
- Формирование SOAP-запроса: Вставьте зашифрованные данные и заголовки WSSecurity в ваш SOAP-запрос.
Заключение
Все вышеупомянутые библиотеки являются хорошими выборами для реализации ассиметричного шифрования на Android и iOS. Рекомендуется протестировать несколько библиотек и выбрать ту, которая лучше всего соответствует вашим требованиям по функциональности и удобству использования. Обязательно проверяйте актуальность документации и обновлений для обеспечения безопасности вашей реализации.