[ru]
1. Введение
SecureMessaging -- это проект, содержащий пример обмена данными с Рутокен по защищенному каналу, реализованному в устройствах с операционной системой Android через интерфейс PKCS#11 (реализованный в библиотеке librtpkcs11ecp.so) c использованием механизма JNA.
Более подробную информацию о технологии защищенного канала взаимодействия с токеном можно найти по адресу: http://dev.rutoken.ru/pages/viewpage.action?pageId=10059873

2. Как собрать пример
Внимание! Для успешной сборки примера в проект необходимо добавить библиотеку librtpkcs11ecp.so (см. п. 3).
Для сборки примера необходимо, чтобы были установлены и настроены Android SDK (http://developer.android.com/sdk/index.html) и система сборки Gradle (http://www.gradle.org/downloads) (подробнее http://developer.android.com/sdk/installing/studio-build.html). 
Требования к среде разработки:
a. Gradle версии 2.14.1 (при сборке из консоли)
b. Android Studio версии 2.1.3
c. Android SDK Build-tools 19.1
d. Android SDK Platform 19

Для сборки из консоли выполните:
~/SecureMessaging$> gradle build
Для сборки при помощи Android Studio откройте проект, используя следующую последовательность обращений к меню:
"File">"Import Project...": "~/SecureMessaging/build.gradle"

3. Установка/обновление библиотеки librtpkcs11ecp.so
Следует заметить, что, в случае если пример был распространен вне комплекта разработчика Рутокен (SDK), библиотека librtpkcs11ecp.so не распространяется с примером. Расположение библиотеки в комплекте разработчика Рутокен: mobile/android/pkcs11/lib/librtpkcs11ecp.so
Поместите библиотеку librtpkcs11ecp.so по пути:  ~/SecureMessaging/app/libs/librtpkcs11ecp.so.

4. Обновление бинарных модулей поддержки механизма JNA
Для обновления поместите модули поддержки механизма JNA, полученные из дистрибутива JNA (https://github.com/twall/jna/releases) по пути:
~/SecureMessaging/app/libs/jna-min.jar
~/SecureMessaging/app/deps/android-arm.jar

5. Запуск примера
Для работы примера необходимо, чтобы на мобильном устройстве были установлены:
- сервис Рутокен (можно найти в комплекте разработчика Рутокен (SDK) по пути: mobile/android/service/rtservice-withUI-release.apk)
Установку собранного примера производите либо средствами Android Studio, либо при помощи утилиты "adb install"

Лицензионные обязательства
Этот продукт содержит программное обеспечение, разработанное IAIK of Graz University of Technology.
Данный продукт содержит бинарные компоненты JNA (app/libs/jna-min.jar, app/deps/android-arm.jar), распространение которых производится в соответствии с лицензией Apache License 2.0. Текст лицензии приведен в файле LICENSE_AL2.0 в директории, содержащей этот файл.

Copyright Aktiv Co. 2017.

[en]
1. Introduction
SecureMessaging is a sample project to access Rutoken through rtPKCS11ECP library built with SM support using JNA.
For more information about trusted data channel please visit http://dev.rutoken.ru/pages/viewpage.action?pageId=10059873

2. How to build
Warning! To build the sample successfully one has to install librtpkcs11ecp.so library (see p. 3).
To build SecureMessaging you have to get Android SDK (http://developer.android.com/sdk/index.html) and Gradle (http://www.gradle.org/downloads) installed (more information at http://developer.android.com/sdk/installing/studio-build.html).
Build system requirements:
a. Gradle 2.14.1 (if built from console)
b. Android Studio 2.1.3
c. Android SDK Build-tools 19.1
d. Android SDK Platform 19

To build sample from console run:
~/SecureMessaging$> gradle build

To build sample from Android Studio, use this option:
"File">"Import Project...": "~/SecureMessaging/build.gradle"

3. Setting/updating librtpkcs11ecp.so native library
In case the sample has been distributed without Rutoken SDK, the project does not contain librtpkcs11ecp.so library. This library may be found in Rutoken SDK at: mobile/android/pkcs11/lib/librtpkcs11ecp.so.
To set librtpkcs11ecp.so library copy it to ~/SecureMessaging/app/libs/librtpkcs11ecp.so.

4. Updating JNA binaries
To update JNA replace ~/SecureMessaging/app/libs/jna-min.jar and ~/SecureMessaging/app/deps/android-arm.jar taken from dist directory of JNA distribution (https://github.com/twall/jna/releases).

5. Running sample
For the sample being completely functional be sure to have installed:
- Rutoken service (can be found in Rutoken SDK at: mobile/android/service/rtservice-withUI-release.apk)
Built sample can be installed either with Android Studio or using "adb install" console utility.

License issues
This product includes software developed by IAIK of Graz University of Technology.
This product includes JNA binary modules (app/libs/jna-min.jar, app/deps/android-arm.jar), a subject to Apache License 2.0. A copy of the license is included in file "LICENSE_AL2.0", under the same directory as this file.

Copyright Aktiv Co. 2017.
