crypto_pro_flutter 0.1.7
crypto_pro_flutter: ^0.1.7 copied to clipboard
Подписание файлов и сообщений с помощью Crypto Pro
Плагин для формирования электронной подписи формата CADES-BES с помощью нативных SDK Crypto Pro #
Описание #
Плагин принимает ключевые контейнеры в формате PKCS12 .pfx
. Есть возможность интеграции с внешними ключевыми контейнерами (например, Рутокен)
Приватный ключ должен быть помечен как экспортируемый
Пока Android Only
Установка #
Подключение плагина к Android проекту #
-
Скопировать
.aar
библиотеки изandroid/libs
плагина к себе в проект вandroid\app\libs
-
Добавить в
build.gradle
minSdkVersion 24
buildTypes {
release {
shrinkResources false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
dependencies {
implementation fileTree(dir: 'libs', include: '*.aar')
}
copied to clipboard
- Создать файл
proguard-rules.pro
вandroid/app
-keep public class ru.CryptoPro.*
copied to clipboard
Библиотеки .aar указаны в плагине как compile-only, так как невозможно к .aar (коим является этот плагин) подключать другие .aar, для этого требуется скопировать их к себе в проект и подключить как implementation. Proguard используется, чтобы запретить обфускацию кода, которая происходить при выполнении релизной сборки.
Использование #
- Инициализировать провайдер
CryptoProFlutter.initCSP()
copied to clipboard - Добавить Pfx-контейнер в хранилище
CryptoProFlutter.addPfxCertificate(File file, String password, String newPassword)
copied to clipboard - Получить список сертификатов, добавленных пользователем
CryptoProFlutter.getInstalledCertificates()
copied to clipboard - Удалить добавленный сертификат
CryptoProFlutter.deleteCertificate(Certificate certificate)
copied to clipboard - Подписать файл
CryptoProFlutter.signFile( required File file, required Certificate certificate, required String password, required CAdESFormat format, bool isDetached = true, bool disableOnlineValidation = false, String? tsaUrl, )
copied to clipboard - Подписать сообщение
CryptoProFlutter.signMessage({ required String message, required Certificate certificate, required String password, required CAdESFormat format, bool isDetached = true, bool signHash = false, bool disableOnlineValidation = false, String? tsaUrl, })
copied to clipboard - Добавить внешний контейнер в хранилище
CryptoProFlutter.addContainerFromExternalStorage({ required String storageName, required String password, String? newPassword, })
copied to clipboard - Добавить сертификаты в хранилище доверенных приложения
CryptoProFlutter.addCertificatesToTrustedStorage({ required List<String> paths, })
copied to clipboard
Todo #
- ✅ Поддержка iOS