crypto_pro_flutter 0.1.7 copy "crypto_pro_flutter: ^0.1.7" to clipboard
crypto_pro_flutter: ^0.1.7 copied to clipboard

Подписание файлов и сообщений с помощью Crypto Pro

Плагин для формирования электронной подписи формата CADES-BES с помощью нативных SDK Crypto Pro #

Описание #

Плагин принимает ключевые контейнеры в формате PKCS12 .pfx. Есть возможность интеграции с внешними ключевыми контейнерами (например, Рутокен)

Приватный ключ должен быть помечен как экспортируемый

Пока Android Only

Установка #

Подключение плагина к Android проекту #

  1. Скопировать .aar библиотеки из android/libs плагина к себе в проект в android\app\libs

  2. Добавить в 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
  1. Создать файл 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
4
likes
140
points
198
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.19 - 2025.04.03

Подписание файлов и сообщений с помощью Crypto Pro

Repository (GitHub)

Documentation

API reference

License

GPL-3.0 (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on crypto_pro_flutter