Flutter-плагин для подписания данных с помощью ГОСТ сертификатов

Форматы сертификатов

Плагин принимает сертификаты формата .pfx
Алгоритмы: ГОСТ 2001, ГОСТ 2012, ГОСТ 2012 Strong

Настройки для проекта к которому подключается плагин

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

2. AndroidManifest.xml

<application android:extractNativeLibs="true"></application>

3. gradle.propeties

android.bundle.enableUncompressedNativeLibs = false
android.enableR8=false

4. build.gradle

minSdkVersion 24

 buildTypes {
        release {
            shrinkResources false
            minifyEnabled false
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

packagingOptions {
    exclude 'META-INF/Digest.CP'
    exclude 'META-INF/Sign.CP'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE.txt'
    doNotStrip "*/arm64-v8a/*.so"
    doNotStrip "*/armeabi/*.so"
    doNotStrip "*/x86_64/*.so"
    doNotStrip "*/x86/*.so"
}

dependencies {
    implementation 'com.google.android.material:material:1.2.0-alpha03'
    implementation fileTree(dir: 'libs', include: '*.aar')
}

5. Создать файл proguard-rules.pro в android/app

-keep public class ru.CryptoPro.*

Методы

  • Подписать данные
await CryptSignature.sign(context, data);
@param context - BuildContext приложения
@param data - данные в формате base64 для подписи
@param title - заголовок AppBar
@param hint - подсказка над списком сертификатов
@return возвращает JSON в формате
    {
        "data": - изначальные данные,
        "certificate" - сертификат в формате base64
        "sign" - сигнатура в формате base64
    }

Libraries

certificate
certificate
certificates
crypt_signature
error
fade_in_page_transition
home
lock
native
storage
ui