2.2.1 Что такое приложение

Приложение – микропрограмма, загружаемая в устройство JaCarta на производстве.

Исторически также существует понятие апплет. Понятия приложение и апплета, в контексте работы с библиотекой PKCS#11, примем тождественно равными.

Загружаемые в JaCarta приложения/апплеты имеют уникальные имена, которые не совпадают с названиями моделей семейства JaCarta.

Для того, чтобы избежать путаницы между оригинальными именами приложений/апплетов и названиями моделей семейства JaCarta, примем следующее сопоставление, которое будет использоваться повсеместно в документации.

Приложение/апплет, загружаемая в устройство JaCarta на производстве.

Имя приложения,

принятое в документации

JaCarta-3

(Приложение, реализующее Российские криптографические алгоритмы
 ГОСТ Р 34.10-2012/ГОСТ 34.10-2018, ГОСТ Р 34.11-2012/ГОСТ 34.11-2018,

ГОСТ Р 34.12-2015, ГОСТ Р 34.13-2015)

GOST версии 2.5.13

Криптотокен 2 ЭП

(Приложение, реализующее Российские криптографические алгоритмы
 ГОСТ Р 34.10-2012/ГОСТ 34.10-2018, ГОСТ Р 34.11-2012/ГОСТ 34.11-2018,

ГОСТ 28147-89)

GOST версии 2.5.5

Laser

(Приложение, реализующее зарубежные криптографические алгоритмы
AES, DES, 3DES, RSA, SHA и др.)

PKI

Datastore

(Приложение, реализующее хранение информации, а также управление
доступом к ней).

LT

Biomanager

(Приложение для администрирования биометрической подсистемы) 

Biomanager

Устройства JaCarta могут содержать одно или несколько приложений. Устройства, содержащие несколько приложений, называются комбинированными.

Примеры устройств с одним приложением, согласно принятым выше именам:

Примеры комбинированных устройств:

  • JaCarta-2 PKI/ГОСТ – содержит приложения GOST версии 2.5.5 или 2.5.13 и PKI.
  • JaCarta SecurBIO – содержит приложения Biomanager, GOST версии 2.5.13 и PKI.

Библиотека взаимодействует с приложениями через слоты (см. Приложения и слоты).

2.2.2 Поддерживаемые приложения

Приложение

В состав каких устройств входит

Biomanager

GOST версии 2.5.13


GOST версии 2.5.5


PKI


LT

2.2.3 Приложения и слоты

Взаимодействие каждого приложения на устройстве устанавливается через слоты.

Слот – это логическое цифровое представлением разъёма, к которому может быть подключено приложение. Каждому приложению соответствует один слот. Схема ниже иллюстрирует общий случай связи слотов с приложениями и устройствами:

Из схемы видно, что при подключении нескольких устройств (USB-токен, смарт-карта в смарт-карт ридере) каждое приложение устройства будет закреплено за отдельным слотом, которые используются в API.

Чтобы узнать какому приложению соответствует выбранный слот, необходимо:

  • вызвать функцию C_GetTokenInfo();
  • в полученной информации об приложении посмотреть название модели – аргумент CK_TOKEN_INFO.model.

Для удобства идентификации приложения рекомендуется использовать следующие макросы:

Библиотека jcPKCS11-2 резервирует 20 слотов. При подключении нового устройства для каждого его приложения выделяется по одному из зарезервированных слотов. Библиотека самостоятельно отслеживает подключенные устройства и асинхронно обновляет служебную информацию о соответствующих им слотах.