crypto_pro_flutter 0.0.4 crypto_pro_flutter: ^0.0.4 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')
}
- Создать файл
proguard-rules.pro
вandroid/app
-keep public class ru.CryptoPro.*
Библиотеки .aar указаны в плагине как compile-only, так как невозможно к .aar (коим является этот плагин) подключать другие .aar, для этого требуется скопировать их к себе в проект и подключить как implementation. Proguard используется, чтобы запретить обфускацию кода, которая происходить при выполнении релизной сборки.
Использование #
- Инициализировать провайдер
CryptoProFlutter.initCSP()
- Добавить Pfx-сертификат в хранилище
CryptoProFlutter.addPfxCertificate(File file, String password)
- Получить список сертификатов, добавленных пользователем
CryptoProFlutter.getInstalledCertificates()
- Удалить добавленный сертификат
CryptoProFlutter.deleteCertificate(Certificate certificate)
- Подписать файл
CryptoProFlutter.signFile( required File file, required Certificate certificate, required String password, bool isDetached = true, bool disableOnlineValidation = false, )
- Подписать сообщение
CryptoProFlutter.signMessage({ required String message, required Certificate certificate, required String password, bool isDetached = true, bool signHash = false, bool signHash = false, bool disableOnlineValidation = false, })
Todo #
- ✅ Поддержка iOS