Перейти к содержимому

Нестандартные функции приложения GOST

USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta

CK_RV JC_CT2_GetServiceInformation (CK_SLOT_ID hSlotID, CK_BYTE_PTR pTagValue, CK_ULONG_PTR pulTagLen, CK_BYTE ulTag) Параметры:

  • hSlotID (in) – идентификатор слота

  • pTagValue (in/out) – указатель на буфер для хранения полученного значения

  • pulTagLen (out) – указатель на длину выделенного буфера

  • ulTag (in) - тэг JC_CT2_TAG_xxx Получить служебную информацию о приложении GOST. Запускается в режимах:

  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_UnlockWithTimeout (CK_SLOT_ID slotID*, CK_USER_TYPE userType, CK_ULONG_PTR pulRepeatCount) Параметры:

  • slotID (in) – идентификатор слота.
  • userType (in) – тип разблокируемого PIN-кода. Допустимые значения: CKU_USER, CKU_SIGNATURE, CKU_PUK.
  • pulRepeatCount (out) – количество необходимых повторений. Определяет сколько раз еще необходимо вызвать функцию JC_KT2_UnlockWithTimeout() для разблокировки. Разблокировать PIN-код при помощи тайм-аута.

Запускается в режимах:

Результат:

  • CKR_CANNOT_UNLOCK – невозможно разблокировать PIN-код;
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой;
  • CKR_ARGUMENTS_BAD – недопустимые аргументы;
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен;
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена;
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота. Совет: Полный список ошибок см. в приложении.

CK_RV JC_CT2_SetPINPolicy (CK_SLOT_ID hSlotID, JC_KT2_PIN_TYPE pinType, JC_KT2_PIN_POLICY_PTR pPinPolicy) Параметры:

  • hSlotID (in) – идентификатор слота
  • pinType (in) - тип PIN-кода
  • pPinPolicy (in) - политика PIN-кода Установить политику PIN-кода. Требуется аутентификация администратором.

Запускается в режимах:

Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет: Полный список ошибок см. в приложении.

CK_RV JC_CT2_SetPUK (CK_SLOT_ID hSlotID, CK_UTF8CHAR_PTR pPuk, CK_ULONG ulPukSize) Параметры:

  • hSlotID (in) - идентификатор слота
  • pPuk (in) - PUK-код
  • ulPukSize (in) - длина PUK-кода в байтах. М.б. CK_UNAVAILABLE_INFORMATION если PUK-код заканчивается 0 Установить PUK-код. Неприменимо для приложения GOST версии 2.5.13

Запускается в режимах:

  • Администратор Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_CalcCheckSum (CK_SLOT_ID slotID, CK_BYTE_PTR pCheckSum, CK_ULONG_PTR pulCheckSumSize) Параметры:

  • slotID(in) – идентификатор слота.
  • pCheckSum(in/out) – указатель на массив байт в памяти для буфера с контрольной суммой.
  • pulCheckSumSize(out) – длина контрольной суммы в байтах. Рассчитать контрольную сумму приложения GOST.

Запускается в режимах:

  • Пользователь
  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_ChangeSignaturePIN (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldPinSize*, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewPinSize*) Параметры:

  • **slotID * (in) – идентификатор слота.
  • pOldPin (in) – старый PIN-код подписи.
  • ulOldPinSize (out) – длина старого PIN-кода подписи в байтах. Может принимать значение CK_UNAVAILABLE_INFORMATION, если PIN-код подписи заканчивается 0.
  • pNewPin (in) – новый PIN-код подписи.
  • ulNewPinSize (out) – длина нового PIN-кода подписи в байтах. Может принимать значение CK_UNAVAILABLE_INFORMATION, если PIN-код подписи заканчивается 0. Изменить PIN-код подписи для приложения GOST.

Запускается в режимах:

  • Пользователь Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_CreatePkcsObjectImage (CK_BYTE keyType, CK_BYTE keyID, CK_ATTRIBUTE_PTR objectAttributes, CK_ULONG attributesCount, CK_BYTE_PTR pkcsImage, CK_ULONG_PTR pkcsImageLen) Параметры:

  • keyType (in) - тип объекта, 0 для CKO_DATA, 1 для CKO_PUBLIC_KEY
  • keyID (in) - идентификатор объекта, 0 для CKO_DATA
  • objectAttributes - указатель на список атрибутов
  • attributesCount - количество атрибутов в списке
  • pkcsImage (in/out)- указатель на буфер где будет создан образ PKCS описателя
  • pkcsImageLen (in/out) - длина буфера для PKCS описателя Создание в оперативной памяти образа PKCS описателя произвольного объекта на основе списка атрибутов. Такой файл может быть записан под правами администратора, соответствующей утилитой

Запускается в режимах:

  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_CreatePublicKeyPkcsDescriptors (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_LONG ulPinLen, const JC_GOST_PUBLICKEY_DESCRIPTOR_PTR publicKeyDescriptors, CK_LONG keyCounter) Параметры:

  • slotID (in) - идентификатор слота
  • pPin (in) - PIN-код пользователя
  • ulPinLen (in) - размер PIN-кода пользователя
  • publicKeyDescriptors - массив описателей публичных ключей
  • keyCounter - число описателей в массиве Создание описателей публичных ключей с метками. Все сессии д.б. закрыты перед вызовом этой функции

Запускается в режимах:

  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_CreateUnlockChallenge (CK_SLOT_ID slotID, CK_BYTE_PTR pChallenge*, CK_ULONG_PTR pulChallengeLength) Параметры:

  • slotID (in) – идентификатор слота.
  • pChallenge (in,out) – буфер для данных запроса разблокировки.
  • pulChallengeLength (in,out) – длина буфера запроса разблокировки. Создать запрос на разблокировку PIN-кода пользователя в рамках алгоритма “запрос-ответ” (challenge-response). Выполняется на стороне Пользователя (клиента). Возвращает массив символов, где последние 4 символа - количество оставшихся разблокировок, а все предыдущие - серийный номер токена.

Общая последовательность разблокировки:

  1. Создать запрос (challenge) на стороне Пользователя с помощью данной функции.
  2. Сформировать ответ (response) на стороне Администратора.

Предупреждение: Данная операция должна выполняться с использованием ПО “АРМ Администратора Безопасности”.

  1. Разблокировать GOST с помощью сформированного ответа (см. JC_KT2_UnlockWithResponse()).

Запускается в режимах:

Результат:

  • CKR_OK – функция выполнена успешно;
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой;
  • CKR_ARGUMENTS_BAD – недопустимые аргументы;
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен;
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена;
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота;
  • CKR_BUFFER_TOO_SMALL – вывод функции слишком велик для предоставленного буфера. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_GetPINPolicyEx (CK_SLOT_ID slotID, JC_KT2_PIN_TYPE pinType, JC_KT2_PIN_POLICY_EX_PTR pPinPolicyEx) Параметры:

  • slotID (in) - описатель слота
  • pinType (in) - тип PIN-кода, для которого будет получена политика
  • pPinPolicyEx (out) - указатель на структуру расширенной политика PIN-кода Получить расширенную парольную политику PIN-кода приложения GOST версии 2.5.13 и выше.

Запускается в режимах:

  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_SetPINPolicyEx (CK_SESSION_HANDLE hSession, JC_KT2_PIN_TYPE pinType, JC_KT2_PIN_POLICY_EX_PTR pPinPolicyEx) Параметры:

  • hSession (in) - описатель сессии
  • pinType (in) - тип PIN-кода, для которого будет получена политика
  • pPinPolicyEx (in) - указатель на структуру расширенной политика PIN-кода Установить расширенную парольную политику PIN-кода приложения GOST версии 2.5.13 и выше. Требуется предварительная аутентификация Администратором.

Запускается в режимах:

  • Администратор Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_GetTimeoutUnlockInfo (CK_SLOT_ID slotID, JC_KT2_TIMEOUT_UNLOCK_INFO_PTR * pInfo*) Параметры:

  • slotID (in) – идентификатор слота.
  • pInfo (out) – информация о разблокировке по таймауту. Получить информацию о разблокировке по таймауту.

Запускается в режимах:

Результат:

  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой;
  • CKR_ARGUMENTS_BAD – недопустимые аргументы;
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен;
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена;
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_InitToken (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin*, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pLabel) Параметры:

  • slotID(in) – идентификатор слота.
  • pPin(in) – PIN-код пользователя.
  • ulPinLen (in) – длина PIN-кода пользователя в байтах.
  • pLabel (in) – метка токена. Строка, выровненная пробелам справа до размера 32х байт. Инициализация приложения GOST после его обработки в ПО “АРМ Администратора Безопасности” или “АРМ Разработчика”. Примечание: Все сессии должны быть закрыты перед вызовом этой функции.

Запускается в режимах:

Результат:

  • CKR_SESSION_EXISTS – сеанс с данным токеном уже существует, следовательно, токен не может быть инициализирован;
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой;
  • CKR_ARGUMENTS_BAD – недопустимые аргументы;
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен;
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена;
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_IsPersonalized (CK_SLOT_ID slotID, CK_BBOOL_PTR pPersonalized) Параметры:

  • slotID (in) – идентификатор слота
  • pPersonalized (out) – признак персонализации Проверить персонализировано ли приложение GOST.

Запускается в режимах:

  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_ReadExtInfo (CK_SLOT_ID * slotID*, JC_KT2_EXTENDED_INFO_PTR * pInfo*)

  • slotID(in) – идентификатор слота.
  • pInfo(out) – дополнительная информацию о Получить дополнительную информацию о GOST.

Запускается в режимах:

  • Пользователь;
  • Гость. Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_SetServiceInformation (CK_SESSION_HANDLE hSession, CK_BYTE ulTag, CK_BYTE_PTR pTagValue, CK_ULONG ulTagValueLen) Параметры:

  • hSession (in) - описатель сессии
  • ulTag (in) - Тэг параметра. Поддерживаются только тэги JC_CT2_TAG_KEYPAIR_TO_IMPORT и JC_CT2_TAG_POLICY_USER_PIN_CHANGE
  • pTagValue (in) - указатель на буфер, где хранится значение параметра
  • ulTagValueLen (in) - длина буфера Запись параметра Служебной информации приложения GOST версии 2.5.13 и выше по тэгу. Требуется предварительная аутентификация Администратором.

Запускается в режимах:

  • Администратор Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_SetSignaturePIN (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinSize) Параметры:

  • slotID (in) – идентификатор слота.
  • pPin (in) – PIN-код подписи.
  • ulPinSize (out) – длина PIN-кода подписи в байтах. Может принимать значение CK_UNAVAILABLE_INFORMATION, если PIN-код подписи заканчивается 0. Установить PIN-код подписи для приложения GOST.

Запускается в режимах:

  • Пользователь Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_SetTimeoutUnlockInfo (CK_SLOT_ID slotID, JC_KT2_TIMEOUT_UNLOCK_INFO_PTR pInfo) Параметры:

  • slotID (in) - дескриптор
  • pInfo(in) - указатель на структуру, описывающей информацию о необходимом количестве команд для разблокировки

Запускается в режимах:

  • Администратор Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_UnlockWithAdminPIN (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen) Параметры:

  • slotID (in) - дескриптор
  • pPin (in) - указатель на PIN-код Администратора
  • ulPinLen (in) - длина PIN-кода Администратора

Запускается в режимах:

  • Гость Результат: Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет: Полный список ошибок см. в приложении.

CK_RV JC_KT2_UnlockWithResponse (CK_SLOT_ID slotID, CK_BYTE_PTR pResponse, CK_ULONG_PTR ulResponseLength) Параметры:

  • slotID (in) – идентификатор слота.
  • pResponse (in) – ответ на запрос разблокировки.
  • ulResponseLength (in) – длина ответа на запрос разблокировки в байтах. Разблокировать приложение GOST ответом (response) на запрос разблокировки (challenge).

Общая последовательность разблокировки:

  1. Создать запрос (challenge) на стороне Пользователя с помощью функции JC_KT2_CreateUnlockChallenge().
  2. Сформировать ответ (response) на стороне Администратора.

Предупреждение: Согласно правилам пользования с данная операция должна выполняться с использованием ПО “АРМ Администратора Безопасности JaCarta-2 ГОСТ”. 3. Разблокировать GOST с помощью сформированного ответа (см. JC_KT2_UnlockWithResponse()).

Запускается в режимах:

  • Гость Результат:
  • CKR_PIN_INCORRECT – неверный PIN-код;
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой;
  • CKR_ARGUMENTS_BAD – недопустимые аргументы;
  • CKR_TOKEN_NOT_PRESENT – в слоте отсутствует токен;
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена;
  • CKR_SLOT_ID_INVALID – недопустимый идентификатор слота. Совет: Полный список ошибок см. в приложении.