Комплект разработчика Рутокен содержит большинство сценариев взаимодействия смарт-терминалов на Андройде и электронных идентификаторов Рутокен ЭЦП 2.0:
- ГОСТ-2012— использование ключей и сертификатов,
- Создание запросов на сертификаты и импорт сертификатов,
- Вычисление электронной подписи,
- Шифрование и расшифрование,
- Управление PIN-кодами устройств,
- Обнаружение и классификация устройств,
- Форматирование(сброс) устройств.
В комплекте разработчика есть библиотеки, необходимые для интеграции Рутокен ЭЦП 2.0 со смарт-терминалом, а также примеры использования.
Примеры
Все примеры с применением электронной подписи и шифрования располагаются в Комплекте разработчика по пути: <sdk>\java\samples\src\ru\rutoken\samples\pkcs11\bouncycastle\
Очистка, подготовка и смена PIN-кода: <sdk>\java\samples\src\ru\rutoken\samples\pkcs11\ExtendedFunctions.java
Чтобы ваши приложения смогли работать с Рутокенами
- Установите последнюю версию (1.2.6 или новее) Панели управления Рутокен из Google Play;
- Добавите себе в проект последние версии библиотеки librtpkcs11ecp.so из Рутокен SDK. Библиотеки находятся в папках
<sdk>\mobile\android\pkcs11\
Скорее всего библиотеки librtpkcs11ecp.so в вашем проекте должна находится в папках<project_root>\app\src\main\jniLibs\armeabi-v7a\ и <project_root>\app\src\main\jniLibs\arme64-v8a\
- Убедитесь, что у вас последняя версия модуля-обертки PKSC#11 для Java – pkcs11jna<Version>.jar, где<Version>— версия библиотеки.
Модуль находится по пути <sdk>\java\samples\lib\ в Рутокен SDK.
Положите pkcs11jna<Version>.jar в папку<project_root>\app\libs\
- Для Андроид 9.
Добавите себе в проект Android Archive Library(AAR) модуль из Рутокен SDK: rtserviceconnection<Version>.aar , где<Version>— версия библиотеки.
Модуль находится по пути<sdk>\mobile\android\libs\ в
Рутокен SDK.
Положите rtserviceconnection<Version>.aar в папку<project_root>\app\libs\;
Для Андроид 9.
Если вы используете систему-сборки Gradle, то добавьте следующие строки в файл build.gradleandroid {
defaultConfig {
minSdkVersion 21
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
…
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
}