qscr / crypto_pro_flutter

crypto_pro_flutter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Плагин для формирования электронной подписи формата 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')
}
  1. Создать файл 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

About

crypto_pro_flutter

License:GNU General Public License v3.0


Languages

Language:Objective-C++ 38.9%Language:Kotlin 28.5%Language:Dart 24.5%Language:Ruby 3.3%Language:Swift 2.8%Language:Objective-C 2.0%