Для получения комплекта разработчика JC-Mobile SDK Android оформите заявку.
jcPKCS11-2.jar
, jna-min.jar
;libjcPKCS11-2.so
, libgti_jni.so
, libjnidispatch.so
, libjcpcsclite.so
;libjcPKCS11-2.so
, libgti_jni.so
, libjnidispatch.so
, libjcpcsclite.so
.Каталог содержит примеры по работе с Единой библиотекой PKCS #11.
Полный список примеров представлен в разделе Список примеров.
Для работы с устройствами JaCarta используется Java-обертка над единой библиотекой PKCS #11, предоставляющая высокоуровневый интерфейс (см. API Единой библиотеки PKCS #11) для взаимодействия по стандарту PKCS #11 v2.30.
Рассмотрим пример встраивания в приложение проект которого создан в Android Studio.
Шаги по интеграции в проект:
В папке проекта перейти в папку app, в ней создать папку libs, если она еще не существует и скопировать в нее файлы common.jar, jcPKCS11-2.jar и jna-min.jar.
Перейти в папку app/src/main, в ней создать папку jniLibs, если она еще не существует и скопировать в нее папки arm64-v8a и armeabi-v7a.
Проект будет иметь следующую файловую структуру:
Нажать File -> Project Structure..., в открывшемся окне перейти во вкладку Dependencies, нажать на “плюс” -> JAR/AAR Dependency
В открывшемся окне для Step 1 ввести “libs” и нажать OK.
Установить из магазина приложений Google Play приложение JaCarta Service для обеспечения поддержки работоспособности устройств JaCarta.
Для администрирования смарт–карт JaCarta ГОСТ, JaCarta PKI и JaCarta PKI/ГОСТ следует использовать ПК Единый Клиент JaCarta, установленный на ПК.
Выполнить подготовку сборочного окружения
Установить java 11
Установить Android SDK
Задать переменные среды для системы автоматической сборки Gradle
Например:
export ANDROID_SDK_ROOT="/Users/username/Library/android/android-sdk"
Выполнить сборку компонента common.jar
. для этого нужно выполнить следующие действия:
перейти в директорию с компонентом common и выпонить команду:
./gradlew makeJar
результат сборки окажется в папке libs в виде файла common.jar
.
Выполнить сборку интересующего примера:
перейти в директорию с необходимым примером (например ./sources/GOST2_info) и выполнить команду:
./gradlew :app:assembleDebug
результат сборки (файл app-debug.apk) окажется в папке ./sources/GOST_info/app/build/outputs/apk/debug
Рассмотрим пример сборки в среде Android Studio. При установке Android Studio сама предложит установить Android SDK. Для правильной сборки папки libs и sources должны находится в одной директории.
Если сборочное окружение настроено корректно, то шаги по сборке выглядят следующим образом:
Открыть Android Studio.
Нажать Open an Existing Project (Открыть существующий проект).
Открыть проект common.
Собрать компонент common.jar. Для этого открыть файл сборки build.gradle в Android Studio, в открывшемся файле нажать на зеленую стрелочку рядом с задачей makeJar -> “Run ‘common [makeJar]’”.
Открыть любой пример. Для этого можно не выходя из проекта common нажать: File -> Open... и выбрать интересующий проект.
Необходимо подключить смартфон, с включенными на нем режимами отладки и установки по USB, а также он должен быть разблокирован.
Если папки libs (папка с библиотеками и Java-оберткой) и sources (папка с примерами) лежат в одной директории, то все готово для запуска примера.
Чтобы запустить пример из Android Studio надо нажать на зеленую стрелочку в правом верхнем углу, либо комбинацию клавиш Shift+F10.
GOST2_info
– получение информации о библиотеке, ридере, слоте и апплете;GOST2_initUser
– подготовка JaCarta-2 ГОСТ к работе с jcPKCS11 после инициализации устройства в ПО “АРМ разработчика”;GOST2_keyPairAndCertificate2012
– создание/удаление ключевой пары ГОСТ Р 34.10–2012 (длина ключа 256 бит) и соответствующего ей сертификата;GOST2_certificateInfo
– получение информации о сертификатах;GOST2_certificateRenewal
– создания запроса на перевыпуск сертификата;GOST2_signAndVerify2012
– создания и проверки подписи данных по ГОСТ Р 34.10–2012 (длина ключа 256 бит);GOST2_signAndVerifyExternalHash2012
– создания и проверки подписи хэша по ГОСТ Р 34.11–2012 (длина хэш–кода 256 бит);GOST2_cmsSignAndVerify2012
– создания и проверки подписи сообщения
в формате CMS типа signed data с ГОСТ Р 34.10–2012 (длина ключа 256 бит);GOST2_changePinUser
– смена PIN-кода пользователя;GOST2_unlockPinUser
– разблокировка PIN-кода пользователя с помощью предъявления PUK-кода;GOST2_data
– создание, поиск и удаление бинарных объектов.PKI_appletStatus
– получение информации о готовности апплета к использованию;PKI_init
– инициализация апплета и выпуск сертификата;PKI_info
– получение полной информации о библиотеке, слоте и электронном ключе;PKI_pinUser
– изменение PIN-кода пользователя;PKI_certInfo
– получение информации о сертификатах, размещённых в памяти электронного ключа;PKI_reissue
— перевыпуск сертификата;PKI_delete
– удаление сертификата с ключевой парой;PKI_signAndVerify
– создание и проверка электронной подписи;PKI_CMSSignAndVerify
– создание и проверка электронной подписи в формате CMS;PKI_data
– запись и чтение файлов в памяти электронного ключа;PKI_pinAdmin
– изменение PIN-кода администратора;PKI_pinUserUnblock
– сброс попыток предъявления PIN-кода пользователя.GOST_appletStatus
– получение информации о готовности апплета к использованию;GOST_init
– установка PIN-кода пользователя и выпуск сертификата;GOST_info
– получение полной информации о библиотеке, слоте и электронном ключе;GOST_pinUser
– изменение PIN-кода пользователя;GOST_certInfo
– получение информации о сертификатах, размещённых в памяти электронного ключа;GOST_reissue
– перевыпуск сертификата;GOST_delete
– удаление сертификата с ключевой парой;GOST_signAndVerify
– создание и проверка электронной подписи;GOST_pkcs7SignAndVerify
– создание и проверка электронной подписи в формате PKCS #7;GOST_data
– запись и чтение файлов в памяти электронного ключа;GOST_encryption
– зашифрование и расшифрование данных;GOST_pinAdmin
– изменение PIN-кода администратора;GOST_pinUserUnblock
– сброс попыток предъявления PIN-кода пользователя.LICENSE_appletStatus
– получение информации о готовности апплета к использованию;LICENSE_changeKey
– смена ключа доступа вендора;LICENSE_init
– создание лицензий на апплете;LICENSE_read
– чтение всех лицензий;LICENSE_delete
– удаление лицензий с апплета.