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

Структуры для приложения GOST

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

Указатель на структуру JC_KT2_TIMEOUT_UNLOCK_INFO. typedef JC_KT2_TIMEOUT_UNLOCK_INFO CK_PTR JC_KT2_TIMEOUT_UNLOCK_INFO_PTR; JC_KT2_TIMEOUT_UNLOCK_INFO Информация о необходимом количестве команд для разблокировки. typedef struct JC_KT2_TIMEOUT_UNLOCK_INFO { CK_ULONG ulUserPINCount; CK_ULONG ulSignPINCount; CK_ULONG ulMinCount; } JC_KT2_TIMEOUT_UNLOCK_INFO; CK_ULONG ulUserPINCount Количество команд для PIN-кода пользователя. CK_ULONG ulSignPINCount Количество команд для PIN-кода подписи. CK_ULONG ulMinCount Минимально допустимое количество команд. Используется в:

Указатель на структуру JC_KT2_EXTENDED_INFO typedef JC_KT2_EXTENDED_INFO CK_PTR JC_KT2_EXTENDED_INFO_PTR; JC_KT2_EXTENDED_INFO Дополнительная информацию о приложении GOST.

typedef struct JC_KT2_EXTENDED_INFO {
CK_BYTE Major;
CK_BYTE Minor;
CK_BYTE Release;
CK_ULONG UnlockCount;
CK_BYTE PersonalizationInfo[64];
CK_BYTE CheckSum[32];
JC_KT2_PIN_STATE UserPINState;
JC_KT2_PIN_STATE SignPINState;
JC_KT2_PIN_STATE PUKState;
CK_BBOOL SULoginThrowSM;
CK_BBOOL UserPUKEnabled;
JC_KT2_PIN_POLICY UserPinPolicy;
JC_KT2_PIN_POLICY UserSignPinPolicy;
JC_KT2_SECURE_MESSAGING_STATE SecureMessagingState;
} JC_KT2_EXTENDED_INFO;

CK_BYTE Major Главная версия прошивки. CK_BYTE Minor Дополнительная версия прошивки. CK_BYTE Release Номер выпуска прошивки. CK_ULONG UnlockCount Количество разблокировок. CK_BYTE PersonalizationInfo(64) Информация о персонализации. CK_BYTE CheckSum(32) Контрольная сумма. JC_KT2_PIN_STATE UserPINState Состояние PIN-кода пользователя. JC_KT2_PIN_STATE SignPINState Состояние PIN-кода подписи. JC_KT2_PIN_STATE PUKState Состояние PUK-кода. CK_BBOOL SULoginThrowSM Признак необходимости ввода PIN-кода администратора в закрытом виде. CK_BBOOL UserPUKEnabled Признак разрешения пользователю менять PUK-код. JC_KT2_PIN_POLICY UserPinPolicy Политика PIN-кода пользователя. JC_KT2_PIN_POLICY UserSignPinPolicy Политика PIN-кода подписи. JC_KT2_SECURE_MESSAGING_STATE SecureMessagingState Состояние защищенного канала. Может принимать значения:

  • JC_KT2_SECURE_MESSAGING_STATE_NONE (0) – Защищенный канал выключен;
  • JC_KT2_SECURE_MESSAGING_STATE_NOT_FINISHED (1) – Защищенный канал в процессе установки;
  • JC_KT2_SECURE_MESSAGING_STATE_SIMPLE (2) – Защищенный канал включен;
  • JC_KT2_SECURE_MESSAGING_STATE_EXCLUSIVE (3) – Защищенный канал включен в эксклюзивном режиме. Используется в:
  • JC_KT2_ReadExtInfo()

Применяется как поля PUKState, SignPINState, UserPINState структуры JC_KT2_EXTENDED_INFO

typedef struct JC_KT2_PIN_STATE {
CK_BBOOL Exists;
CK_ULONG ulMaxErrorCount;
CK_ULONG ulErrorCount;
} JC_KT2_PIN_STATE;

CK_BBOOL Exists Признак установки PIN-кода. CK_ULONG ulMaxErrorCount Максимальное количество попыток ввода кода до блокирования. CK_ULONG ulErrorCount Текущее количество ошибочно введённых кодов.

typedef struct JC_KT2_PIN_POLICY {
CK_BBOOL UseUpperCaseLetters;
CK_BBOOL UseLowerCaseLetters;
CK_BBOOL UseDigits;
CK_BBOOL UseSpecial;
CK_BBOOL PinMustBeChanged;
CK_ULONG MinPinLengthAddition;
} JC_KT2_PIN_POLICY;

CK_BBOOL UseUpperCaseLetters Обязательное наличие в PIN-коде прописных символов A-Z А-Я. Если установлено значение CK_TRUE, наличие обязательно, если CK_FALSE – необязательно. CK_BBOOL UseLowerCaseLetters Обязательное наличие в PIN-коде строчных символов a-z а-я. Если установлено значение CK_TRUE, наличие обязательно, если CK_FALSE – необязательно. CK_BBOOL UseDigits Обязательное наличие в PIN-коде цифр. Если установлено значение CK_TRUE, наличие обязательно, если CK_FALSE – необязательно. CK_BBOOL UseSpecial Обязательное наличие в PIN-коде специальных символов (находятся в диапазонах 20h–2Fh, 3Ah–40h, 5Bh–60h и 7Bh–7Eh). Если установлено значение CK_TRUE, наличие обязательно, если CK_FALSE – необязательно. CK_BBOOL PinMustBeChanged Признак необходимости смены PIN-кода. Если установлено значение CK_TRUE, смена PIN-кода обязательна, если CK_FALSE – необязательна. CK_ULONG MinPinLengthAddition Приращение длины PIN-кода относительно минимально возможной (6 символов), т.е. минимальная длина PIN-кода равна 6 + значение приращения. Такое значение может быть установлено равным от 0 до 7. Используется в:

typedef struct JC_KT2_GOSTR3410_DERIVE_PARAMS {
CK_EC_KDF_TYPE kdf;
CK_OBJECT_HANDLE hPublicKey;
CK_BYTE_PTR pUKM;
CK_ULONG ulUKMLen;
} JC_KT2_GOSTR3410_DERIVE_PARAMS;

CK_EC_KDF_TYPE kdf Идентификатор используемой диверсификации ключа. Может принимать следующие значения:

  • CKD_NULL – общий ключ выводится по алгоритму, описанному в подразделе 5.2 RFC 4357.
  • CKD_CPDIVERSIFY_KDF – при выводе общего ключа сначала применяется алгоритм, описанный в подразделе 5.2 RFC 4357, а затем результат выполнения этого алгоритма подвергается диверсификации по алгоритму, описанному в подразделе 6.5 того же документа. CK_OBJECT_HANDLE hPublicKey Дескриптор открытого ключа. CK_BYTE_PTR pUKM Указатель на буфер, содержащий параметр UKM (RFC 4357) в представлении от младшего к старшему (little-endian). CK_ULONG ulUKMLen Длина буфера, содержащего UKM. Указывается в байтах, должна равняться 8.
typedef struct JC_GOST_PUBLICKEY_DESCRIPTOR
{
CK_BYTE_PTR publicKey;
CK_UTF8CHAR_PTR keyDescription;
CK_ULONG keyDescriptionLength;
} JC_GOST_PUBLICKEY_DESCRIPTOR;

[CK_BYTE_PTR](/jacarta/7-api-sdk/2-edinaya-biblioteka-pkcs11/2-3-opisanie-api/2-3-6-prostye-tipy/) publicKey Значение публичного ключа [CK_UTF8CHAR_PTR](/jacarta/7-api-sdk/2-edinaya-biblioteka-pkcs11/2-3-opisanie-api/2-3-6-prostye-tipy/) keyDescription Описание публичного ключа в UTF8 [CK_ULONG](/jacarta/7-api-sdk/2-edinaya-biblioteka-pkcs11/2-3-opisanie-api/2-3-6-prostye-tipy/) keyDescriptionLength Размер описания публичного ключа в байтах Bспользуется в JC_KT2_CreatePublicKeyPkcsDescriptors()

typedef struct JC_KT2_PIN_POLICY_EX
{
JC_KT2_PIN_POLICY kt2StandartPinPolicy;
CK_BBOOL DisableDefaultPin;
CK_BBOOL DisableRepeatCharsPin;
CK_ULONG ulPinHistoryLen;
} JC_KT2_PIN_POLICY_EX;

JC_KT2_PIN_POLICY kt2StandartPinPolicy Стандартная политика PIN-кода [CK_BBOOL](/jacarta/7-api-sdk/2-edinaya-biblioteka-pkcs11/2-3-opisanie-api/2-3-6-prostye-tipy/) DisableDefaultPin Ограничение использования PIN-кода по умолчанию [CK_BBOOL](/jacarta/7-api-sdk/2-edinaya-biblioteka-pkcs11/2-3-opisanie-api/2-3-6-prostye-tipy/) DisableRepeatCharsPin Запрет PIN-кода, состоящего из одного повторяющегося символа [CK_ULONG](/jacarta/7-api-sdk/2-edinaya-biblioteka-pkcs11/2-3-opisanie-api/2-3-6-prostye-tipy/) ulPinHistoryLen Размер истории PIN-кодов Используется в: