CK_C_INITIALIZE_ARGS
¶Используется функцией C_Initialize()
.
CK_C_INITIALIZE_ARGS
¶typedef struct CK_C_INITIALIZE_ARGS {
CK_CREATEMUTEX CreateMutex;
CK_DESTROYMUTEX DestroyMutex;
CK_LOCKMUTEX LockMutex;
CK_UNLOCKMUTEX UnlockMutex;
CK_FLAGS flags;
CK_VOID_PTR pReserved;
} CK_C_INITIALIZE_ARGS;
Поддерживаются следующие флаги (flags
):
CKF_LIBRARY_CANT_CREATE_OS_THREADS
(0x00000001
) – True
, если потоки исполнения приложения, которые
осуществляют вызовы к библиотеке, не могут использовать родные вызовы операционной системы для создания новых
потоков. False
– в обратном случае.
CKF_OS_LOCKING_OK
(0x00000002
) – True
, если библиотека может использовать родную систему потоков
операционной системы для захвата ресурса. False
– в противном случае.
CKF_DEVELOPER_MODE
(0x80000000
) – установка этого флага ускоряет выполнение функций: C_Login()
и
C_Sign()
/C_SignUpdate()
. Ускорение обеспечивается засчет отключения проверки целостности и корректности
функционирования. Рекомендуется использовать только для целей разработки и тестирования.
Предупреждение
Данный флаг поддерживается только апплетом Криптотокен.
CK_INFO
¶Используется функцией C_GetInfo()
.
CK_INFO
¶typedef struct CK_INFO {
CK_VERSION cryptokiVersion;
CK_UTF8CHAR manufacturerID[32];
CK_FLAGS flags;
CK_UTF8CHAR libraryDescription[32];
CK_VERSION libraryVersion;
} CK_INFO;
cryptokiVersion
¶Версия стандарта PKCS #11, с которым совместима библиотека Cryptoki. В текущей версии библиотеки это поле
принимает значение v2.30
.
manufacturerID
(32)¶Идентификатор, определяющий разработчика библиотеки Cryptoki. Поле идентификатора принимает значение
Aladdin R.D.
.
libraryDescription
(32)¶Описание библиотеки Cryptoki: JaCarta PKCS #11 Module
.
libraryVersion
¶Версия библиотеки Cryptoki: v1.0
.
CK_FUNCTION_LIST
¶Используется функцией C_GetFunctionList()
.
CK_FUNCTION_LIST
¶typedef struct CK_FUNCTION_LIST {
CK_VERSION version;
CK_C_Initialize C_Initialize;
CK_C_Finalize C_Finalize;
CK_C_GetInfo C_GetInfo;
CK_C_GetFunctionList C_GetFunctionList;
CK_C_GetSlotList C_GetSlotList;
CK_C_GetSlotInfo C_GetSlotInfo;
CK_C_GetTokenInfo C_GetTokenInfo;
CK_C_GetMechanismList C_GetMechanismList;
CK_C_GetMechanismInfo C_GetMechanismInfo;
CK_C_InitToken C_InitToken;
CK_C_InitPIN C_InitPIN;
CK_C_SetPIN C_SetPIN;
CK_C_OpenSession C_OpenSession;
CK_C_CloseSession C_CloseSession;
CK_C_CloseAllSessions C_CloseAllSessions;
CK_C_GetSessionInfo C_GetSessionInfo;
CK_C_GetOperationState C_GetOperationState;
CK_C_SetOperationState C_SetOperationState;
CK_C_Login C_Login;
CK_C_Logout C_Logout;
CK_C_CreateObject C_CreateObject;
CK_C_CopyObject C_CopyObject;
CK_C_DestroyObject C_DestroyObject;
CK_C_GetObjectSize C_GetObjectSize;
CK_C_GetAttributeValue C_GetAttributeValue;
CK_C_SetAttributeValue C_SetAttributeValue;
CK_C_FindObjectsInit C_FindObjectsInit;
CK_C_FindObjects C_FindObjects;
CK_C_FindObjectsFinal C_FindObjectsFinal;
CK_C_EncryptInit C_EncryptInit;
CK_C_Encrypt C_Encrypt;
CK_C_EncryptUpdate C_EncryptUpdate;
CK_C_EncryptFinal C_EncryptFinal;
CK_C_DecryptInit C_DecryptInit;
CK_C_Decrypt C_Decrypt;
CK_C_DecryptUpdate C_DecryptUpdate;
CK_C_DecryptFinal C_DecryptFinal;
CK_C_DigestInit C_DigestInit;
CK_C_Digest C_Digest;
CK_C_DigestUpdate C_DigestUpdate;
CK_C_DigestKey C_DigestKey;
CK_C_DigestFinal C_DigestFinal;
CK_C_SignInit C_SignInit;
CK_C_Sign C_Sign;
CK_C_SignUpdate C_SignUpdate;
CK_C_SignFinal C_SignFinal;
CK_C_SignRecoverInit C_SignRecoverInit;
CK_C_SignRecover C_SignRecover;
CK_C_VerifyInit C_VerifyInit;
CK_C_Verify C_Verify;
CK_C_VerifyUpdate C_VerifyUpdate;
CK_C_VerifyFinal C_VerifyFinal;
CK_C_VerifyRecoverInit C_VerifyRecoverInit;
CK_C_VerifyRecover C_VerifyRecover;
CK_C_DigestEncryptUpdate C_DigestEncryptUpdate;
CK_C_DecryptDigestUpdate C_DecryptDigestUpdate;
CK_C_SignEncryptUpdate C_SignEncryptUpdate;
CK_C_DecryptVerifyUpdate C_DecryptVerifyUpdate;
CK_C_GenerateKey C_GenerateKey;
CK_C_GenerateKeyPair C_GenerateKeyPair;
CK_C_WrapKey C_WrapKey;
CK_C_UnwrapKey C_UnwrapKey;
CK_C_DeriveKey C_DeriveKey;
CK_C_SeedRandom C_SeedRandom;
CK_C_GenerateRandom C_GenerateRandom;
CK_C_GetFunctionStatus C_GetFunctionStatus;
CK_C_CancelFunction C_CancelFunction;
CK_C_WaitForSlotEvent C_WaitForSlotEvent;
} CK_FUNCTION_LIST;
Структура содержит указатели на все методы Cryptoki API.
CK_ATTRIBUTE
¶Используется функциями:
C_CreateObject()
,C_GetAttributeValue()
,C_SetAttributeValue()
,C_FindObjectsInit()
,C_GenerateKey()
,C_GenerateKeyPair()
,C_UnwrapKey()
,C_DeriveKey()
.CK_ATTRIBUTE
¶typedef struct CK_ATTRIBUTE {
CK_ATTRIBUTE_TYPE type;
CK_VOID_PTR pValue;
CK_ULONG ulValueLen;
} CK_ATTRIBUTE;
type
¶Тип атрибута.
pValue
¶Значение атрибута.
CK_MECHANISM
¶Используется функциями:
C_EncryptInit()
,C_DecryptInit()
,C_DigestInit()
,C_SignInit()
,C_VerifyInit()
,C_WrapKey()
,C_GenerateKey()
,C_GenerateKeyPair()
,C_UnwrapKey()
,C_DeriveKey()
,createCSR()
,createCSREx()
,verifyReqEx()
,genCertEx()
.CK_MECHANISM
¶typedef struct CK_MECHANISM {
CK_MECHANISM_TYPE mechanism;
CK_VOID_PTR pParameter;
CK_ULONG ulParameterLen;
} CK_MECHANISM;
mechanism
¶Тип механизма.
pParameter
¶Указатель на параметр, если требуется.
CK_MECHANISM_INFO
¶Используется функцией C_GetMechanismInfo()
.
CK_MECHANISM_INFO
¶typedef struct CK_MECHANISM_INFO {
CK_ULONG ulMinKeySize;
CK_ULONG ulMaxKeySize;
CK_FLAGS flags;
} CK_MECHANISM_INFO;
Поле flags
может содержать следующие флаги:
CKF_HW
(0x00000001
) – аппаратно реализуемый механизм.CKF_ENCRYPT
(0x00000100
) – механизм зашифрования данных.CKF_DECRYPT
(0x00000200
) – механизм расшифрования данных.CKF_DIGEST
(0x00000400
) – механизм хэширования.CKF_SIGN
(0x00000800
) – механизм формирования ЭП и имитовставки.CKF_SIGN_RECOVER
(0x00001000
) – для поддерживаемых библиотекой Cryptoki механизмов этот флаг не
установлен.CKF_VERIFY
(0x00002000
) – механизм проверки ЭП и имитовставки.CKF_VERIFY_RECOVER
(0x00004000
) – для поддерживаемых библиотекой Cryptoki механизмов этот флаг не
установлен.CKF_GENERATE
(0x00008000
) – механизм выработки симметричных ключей.CKF_GENERATE_KEY_PAIR
(0x00010000
) – механизм генерации ключевой пары.CKF_WRAP
(0x00020000
) – механизм экспорта симметричных ключей.CKF_UNWRAP
(0x00040000
) – механизм импорта зашифрованных криптографических ключей.CKF_DERIVE
(0x00080000
) – механизм выработки общего ключа.CKF_EXTENSION
(0x80000000
) – для поддерживаемых библиотекой Cryptoki механизмов этот флаг не установлен.CK_SLOT_INFO
¶Используется функцией C_GetSlotInfo()
.
CK_SLOT_INFO
¶typedef struct CK_SLOT_INFO {
CK_UTF8CHAR slotDescription[64];
CK_UTF8CHAR manufacturerID[32];
CK_FLAGS flags;
CK_VERSION hardwareVersion;
CK_VERSION firmwareVersion;
} CK_SLOT_INFO;
slotDescription
(64)¶Строка символов с описанием слота.
manufacturerID
(32)¶Идентификатор, определяющий разработчика библиотеки Cryptoki. Поле идентификатора принимает значение
Aladdin R.D.
.
hardwareVersion
¶Номер аппаратной версии слота.
firmwareVersion
¶Номер версии прошивки слота.
Поле flags
может содержать следующие флаги:
CKF_TOKEN_PRESENT
(0x00000001
) – True
, если в слоте наличествует токен.CKF_REMOVABLE_DEVICE
(0x00000002
) – True
, если ридер поддерживает извлекаемые устройства.CKF_HW_SLOT
(0x00000004
) – True
, если слот аппаратный.CK_TOKEN_INFO
¶Используется функцией C_GetTokenInfo()
.
CK_TOKEN_INFO
¶typedef struct CK_TOKEN_INFO {
CK_UTF8CHAR label[32];
CK_UTF8CHAR manufacturerID[32];
CK_UTF8CHAR model[16];
CK_CHAR serialNumber[16];
CK_FLAGS flags;
CK_ULONG ulMaxSessionCount;
CK_ULONG ulSessionCount;
CK_ULONG ulMaxRwSessionCount;
CK_ULONG ulRwSessionCount;
CK_ULONG ulMaxPinLen;
CK_ULONG ulMinPinLen;
CK_ULONG ulTotalPublicMemory;
CK_ULONG ulFreePublicMemory;
CK_ULONG ulTotalPrivateMemory;
CK_ULONG ulFreePrivateMemory;
CK_VERSION hardwareVersion;
CK_VERSION firmwareVersion;
CK_CHAR utcTime[16];
} CK_TOKEN_INFO;
label
(32)¶Назначаемая приложением метка токена. Присваивается в момент инициализации.
manufacturerID
(32)¶Идентификатор, определяющий разработчика библиотеки Cryptoki. Поле идентификатора принимает значение
Aladdin R.D.
.
model
(16)¶Модель устройства. Для поддерживаемых Cryptoki-библиотекой апплетов/устройств это поле принимает следующие значения:
eToken GOST
для апплета Криптотокен,JaCarta Laser
для апплета Laser,JaCarta DS
для апплета Datastore.JaCarta
для апплета Laser в случае, если он инициализирован с использованием Единого клиента
JaCarta.CNS
для апплета Laser в случае, если он инициализирован с использованием стороннего ПО.ulMaxSessionCount
¶Максимальное количество сеансов работы одного приложения с устройством. Для поддерживаемых
Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение
CK_EFFECTIVELY_INFINITE
.
ulSessionCount
¶Количество открытых сеансов работы данного приложения с устройством. Для поддерживаемых
Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение
CK_UNAVAILABLE_INFORMATION
.
ulMaxRwSessionCount
¶Максимальное количество сеансов одного приложения для чтения и записи в устройство. Для
поддерживаемых Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение
CK_EFFECTIVELY_INFINITE
.
ulRwSessionCount
¶Количество открытых в данный момент данным приложением сеансов для чтения и записи. Для
поддерживаемых Cryptoki-библиотекой устройств это поле принимает предусмотренное стандартом PKCS #11 значение
CK_UNAVAILABLE_INFORMATION
.
ulMaxPinLen
¶Максимальная длина PIN-кода в байтах. Для поддерживаемых Cryptoki-библиотекой устройств это поле может принимать значение 16
или 32
в зависимости от апплета.
ulMinPinLen
¶Минимальная длина PIN-кода в байтах. Для поддерживаемых Cryptoki-библиотеки устройств это поле может принимать значение 4
или 6
в зависимости от апплета.
ulTotalPublicMemory
¶Согласно стандарту PKCS #11 в это поле должен записываться общий размер памяти, который
может быть выделен для хранения публичных объектов. В поддерживаемых Cryptoki-библиотекой
устройствах для хранения публичных и приватных объектов используется одна и та же память. Текущая версия модуля
присваивает этому полю предусмотренное стандартом PKCS #11 значение CK_UNAVAILABLE_INFORMATION
.
ulFreePublicMemory
¶Согласно стандарту PKCS #11 в это поле должен записываться размер памяти, доступной для
хранения публичных объектов. В поддерживаемых Cryptoki-библиотекой устройствах для хранения публичных и приватных
объектов используется одна и та же память. Поэтому в данное поле записывается количество байтов памяти, доступной
как для приватных, так и для публичных объектов. При этом, если размер доступной памяти больше 32 КБ, поле
принимает значение 32767
.
ulTotalPrivateMemory
¶Согласно стандарту PKCS #11, в это поле должен записываться общий размер памяти,
которая может быть выделена для хранения приватных объектов. В поддерживаемых
Cryptoki-библиотекой устройствах для хранения открытых и приватных объектов используется одна и та же память.
Текущая версия модуля присваивает этому полю предусмотренное стандартом PKCS #11 значение
CK_UNAVAILABLE_INFORMATION
.
ulFreePrivateMemory
¶Согласно стандарту PKCS #11, в это поле должен записываться размер памяти, доступной для
хранения приватных объектов. В поддерживаемых Cryptoki-библиотекой устройствах для хранения публичных и приватных
объектов используется одна и та же память. Поэтому в данное поле записывается количество байтов памяти, доступной
как для приватных, так и для публичных объектов. При этом, если размер доступной памяти больше
32 КБ, поле принимает значение 32767
.
hardwareVersion
¶Номер версии устройства.
firmwareVersion
¶Номер версии прошивки.
utcTime
(16)¶Поддерживаемые Cryptoki-библиотекой устройства не содержат встроенных часов. Поле заполняется нулями.
Поле flags
может содержать следующие флаги:
CKF_RNG
(0x00000001
) – флаг установлен, если в токене присутствует встроенный генератор случайных чисел.
Всегда установлен.CKF_WRITE_PROTECTED
(0x00000001
) – флаг установлен, когда устройство работает в гостевом режиме, и не
установлен, когда устройство работает в режимах, требующих ввода PIN-кода.CKF_LOGIN_REQIURED
(0x00000004
) – флаг установлен, если выполнение некоторых криптографических функций
требует, чтобы пользователь был залогинен. Всегда установлен.CKF_USER_PIN_INITIALIZED
(0x00000008
) – флаг установлен, если инициализирован PIN-код пользователя, и не
установлен в противном случае.CKF_RESTORE_KEY_NOT_NEEDED
(0x00000020
) – установлен, если успешное сохранение состояния криптографических
операций сеанса всегда содержит все ключи, необходимые для
восстановления сессии. Всегда неустановлен.CKF_CLOCK_ON_TOKEN
(0x00000040
) – флаг установлен, если в токене присутствуют встроенные аппаратные часы.
Всегда неустановлен.CKF_PROTECTED_AUTHENTICATION_PATH
(0x00000100
) – установлен, если токен поддерживает возможность
аутентификации без ввода PIN-кода. Всегда неустановлен.CKF_DUAL_CRYPTO_OPERATIONS
(0x00000200
) – флаг установлен, если токен поддерживает выполнение двух
криптографических функций одновременно. Всегда неустановлен.CKF_TOKEN_INITIALIZED
(0x00000400
) – установлен, если токен был инициализирован функцией
C_InitToken()
. Всегда установлен.CKF_SECONDARY_AUTHENTICATION
(0x00000800
) – флаг установлен, если токен поддерживает вторичную
аутентификацию для приватных объектов ключей. Всегда неустановлен.CKF_USER_PIN_COUNT_LOW
(0x00010000
) – флаг установлен, если со времени последней успешной попытки ввода
PIN-кода пользователя была предпринята, по меньшей мере, одна неудачная попытка ввода этого PIN-кода, и не
установлен в противном случае.CKF_USER_PIN_FINAL_TRY
(0x00020000
) – флаг установлен, если у пользователя осталась последняя попытка
ввода PIN-кода, и не установлен в других случаях.CKF_USER_PIN_LOCKED
(0x00040000
) – флаг установлен, если PIN-код пользователя заблокирован, и не
установлен, если PIN-код пользователя не заблокирован.CKF_USER_PIN_TO_BE_CHANGED
(0x00080000
) – установлен, если PIN-код пользователя установлен по умолчанию
при инициализации или срок его действия истек, т.е. PIN-код необходимо изменить. Всегда неустановлен.CKF_SO_PIN_COUNT_LOW
(0x00100000
) – флаг установлен, если со времени последней успешной попытки ввода
PIN-кода администратора была предпринята, по меньшей мере, одна неудачная попытка
ввода этого PIN-кода, и не установлен в противном случае.CKF_SO_PIN_FINAL_TRY
(0x00200000
) – флаг установлен, если у администратора осталась последняя попытка
ввода PIN-кода, и не установлен в других случаях.CKF_SO_PIN_LOCKED
(0x00400000
) – флаг установлен, если PIN-код администратора заблокирован, и не
установлен в противном случае.CKF_SO_PIN_TO_BE_CHANGED
(0x00800000
) – установлен, если PIN-код администратора установлен по умолчанию
при инициализации или срок его действия истек, т.е. PIN-код необходимо изменить. Всегда неустановлен.CKF_ERROR_STATE
(0x01000000
) – установлен, если токен не прошел самопроверку FIPS 140-2 и находится в
состоянии ошибки. Всегда неустановлен.CK_SESSION_INFO
¶Используется функцией C_GetSessionInfo()
.
CK_SESSION_INFO
¶typedef struct CK_SESSION_INFO {
CK_SLOT_ID slotID;
CK_STATE state;
CK_FLAGS flags;
CK_ULONG ulDeviceError;
} CK_SESSION_INFO;
slotID
¶Идентификатор слота.
Поле flags
может содержать следующие флаги:
CKF_RW_SESSION
(0x00000002
) – установлен, если сеанс поддерживает и чтение, и запись. Не установлен, если
сеанс поддерживает только чтение.CKF_SERIAL_SESSION
(0x00000004
) – этот флаг добавлен для обратной совместимости и должен быть всегда
установлен.CK_GOSTR3410_DERIVE_PARAMS
¶Используется функцией C_GenerateKey()
.
CK_GOSTR3410_DERIVE_PARAMS
¶typedef struct CK_GOSTR3410_DERIVE_PARAMS {
CK_EC_KDF_TYPE kdf;
CK_BYTE_PTR pPublicData;
CK_ULONG ulPublicDataLen;
CK_BYTE_PTR pUKM;
CK_ULONG ulUKMLen;
} CK_GOSTR3410_DERIVE_PARAMS;
kdf
¶Идентификатор используемой диверсификации ключа.
pPublicData
¶указатель на буфер, содержащий ключ проверки ЭП получателя. Ключ представлен в виде последовательной записи координат точки X и Y. Каждая координата представляет собой вектор длиной 32 байта в порядке от младшего к старшему (little-endian).
ulPublicDataLen
¶Длина буфера, содержащего открытый ключ получателя. Указывается в байтах, должна равняться 64
.
pUKM
¶Указатель на буфер, содержащий параметр UKM
(RFC 4357) в представлении от младшего к старшему
(little-endian).
ulUKMLen
¶Длина буфера, содержащего UKM
. Указывается в байтах, должна равняться 8
.
Поле kdf
может принимать следующие параметры:
CKD_NULL
– общий ключ выводится по алгоритму, описанному в подразделе 5.2 RFC 4357.CKD_CPDIVERSIFY_KDF
– при выводе общего ключа сначала применяется алгоритм, описанный в подразделе
5.2 RFC 4357, а затем результат выполнения этого алгоритма подвергается диверсификации
по алгоритму, описанному в подразделе 6.5 того же документа.SWYX_PROPERTIES_RESPONSE
¶Используется функцией C_jcCtrl()
.
SWYX_PROPERTIES_RESPONSE
¶typedef struct SWYX_PROPERTIES_RESPONSE {
CK_BYTE bDisplayType;
CK_ULONG wLcdMaxCharacters;
CK_ULONG wLcdMaxLines;
CK_ULONG wGraphicMaxWidth;
CK_ULONG wGraphicMaxHeight;
CK_BYTE bGraphicColorDepth;
CK_ULONG wMaxVirtualSize;
} SWYX_PROPERTIES_RESPONSE;
SWYX_DISPLAY_COMMAND
¶Используется функцией C_jcCtrl()
.
SWYX_DISPLAY_COMMAND
¶typedef struct SWYX_DISPLAY_COMMAND {
CK_BYTE bSwyxFunction;
CK_BYTE bTimeout;
CK_ULONG wLangId;
CK_ULONG wLength4;
CK_BYTE abB64UTF8[];
} SWYX_DISPLAY_COMMAND;
bTimeout
¶Время ожидания терминалом нажатия пользователем кнопки OK или Отмена, выраженное числом
5-секундных интервалов, в случае бесконечного времени ожидания bTimeout=0x00
.
wLangId
¶Двухбайтовый идентификатор языка (например, для русского языка wLangId = 0x0419
, см.
USB Language Identifiers [PDF]) в представлении от
младшего к старшему (little endian).
SWYX_DISPLAY_ARGUMENTS
¶Используется функцией C_jcCtrl()
.
SWYX_DISPLAY_ARGUMENTS
¶typedef struct SWYX_DISPLAY_ARGUMENTS {
CK_BYTE swyxDisplayTimeout;
CK_UTF8CHAR_PTR text;
CK_ULONG textLength;
} SWYX_DISPLAY_ARGUMENTS;
swyxDisplayTimeout
¶Время ожидания терминалом нажатия пользователем кнопки OK или Отмена, выраженное числом 5
секундных интервалов, в случае бесконечного времени ожидания bTimeout=0x00
.
text
¶Текст для отображения на экране Антифрод-терминала в кодировке UTF-8 длиной от 5 до 400 символов.
Поле text
должно быть задано в кодировке UTF-8.
JCCTRL_PersonalizationData
¶Используется функцией C_jcCtrl()
.
JCCTRL_PersonalizationData
¶struct JCCTRL_PersonalizationData
{
uint8_t IsPersonalized;
uint8_t UserMaxAttempts;
uint8_t UserMaxUnblock;
uint8_t AdminMaxAttempts;
EUserPINType UserPinType;
uint8_t UserMinChars;
uint8_t UserMaxChars;
uint8_t UserMinAlphaChars;
uint8_t UserMinLowerChars;
uint8_t UserMinUpperChars;
uint8_t UserMinDigits;
uint8_t UserMinNonAlphaChars;
uint8_t UserPinHistorySize;
uint8_t AdminIsChalResp;
uint8_t AdminMinChars;
uint8_t AdminMaxChars;
uint8_t AdminMinAlphaChars;
uint8_t AdminMinLowerChars;
uint8_t AdminMinUpperChars;
uint8_t AdminMinDigits;
uint8_t AdminMinNonAlphaChars;
uint32_t UserPINValidForSeconds;
uint32_t UserPINExpiresAfterDays;
uint8_t BioImageQuality;
uint32_t BioPurpose;
uint8_t BioMaxFingers;
uint8_t DefaultFinger;
EBioType BioType;
uint8_t BioMaxUnblock;
uint8_t UserMustChangeAfterUnlock;
uint8_t UserMaxRepeatingPin;
uint8_t UserMaxSequencePin;
uint8_t AdminMaxRepeatingPin;
uint8_t AdminMaxSequencePin;
uint8_t UserMustChangeAfterFirstUse;
ESecureMessagingMode SecureMessagingMode;
};
IsPersonalized
¶Определяет статус персонализации апплета: 1
– апплет персонализирован, 0
– не персонализирован.
UserMaxAttempts
¶Максимальное количество попыток ввода неправильного PIN-кода пользователя, до его блокировки (1-15).
UserMaxUnblock
¶Максимальное количество разблокировок PIN-кода пользователя (0-15).
AdminMaxAttempts
¶Максимальное количество попыток ввода неправильного PIN-кода администратора, до его блокировки (1-15).
UserPinType
¶Тип PIN-кода пользователя (см. EUserPINType
).
UserMinChars
¶Минимальное количество символов в PIN-коде пользователя.
UserMaxChars
¶Максимальное количество символов в PIN-коде пользователя.
UserMinAlphaChars
¶Минимальное количество символов латинского алфавита в PIN-коде пользователя.
UserMinLowerChars
¶Минимальное количество символов латинского алфавита в нижнем регистре в PIN-коде пользователя.
UserMinUpperChars
¶Минимальное количество символов латинского алфавита в верхнем регистре в PIN-коде пользователя.
UserMinDigits
¶Минимальное количество цифр в PIN-коде пользователя.
UserMinNonAlphaChars
¶Минимальное количество символов отличных от символов латинского алфавита в PIN-коде пользователя.
UserPinHistorySize
¶Количество уникальных новых PIN-кодов пользователя, которое необходимо установить для возможности повторной установки старого PIN-кода пользователя (0-255).
AdminIsChalResp
¶Использовать ли механизм challenge-response
с ключом 3DES
, вместо PIN-кода администратора (0-1). Параметры
сложности PIN-кода неприменимы при значении этого параметра 1
.
AdminMinChars
¶Минимальное количество символов в PIN-коде администратора.
AdminMaxChars
¶Максимальное количество символов в PIN-коде администратора.
AdminMinAlphaChars
¶Минимальное количество символов латинского алфавита в PIN-коде администратора.
AdminMinLowerChars
¶Минимальное количество символов латинского алфавита в нижнем регистре в PIN-коде администратора.
AdminMinUpperChars
¶Минимальное количество символов латинского алфавита в верхнем регистре в PIN-коде администратора.
AdminMinDigits
¶Минимальное количество цифр в PIN-коде администратора.
AdminMinNonAlphaChars
¶Минимальное количество символов отличных от символов латинского алфавита в PIN-коде администратора.
UserPINValidForSeconds
¶Время кеширования PIN-кода пользователя в секундах (0-9999).
UserPINExpiresAfterDays
¶Время действия PIN-кода пользователя в днях (0-9999).
BioImageQuality
¶Минимальное качество изображения отпечатка по умолчанию (0-100).
BioPurpose
¶Значение FAR для биометрии по умолчанию (2861 – 1:100
, 4396 – 1:1000
, 5931 – 1:10000
,
7466 – 1:100000
, 9001 – 1:1000000
).
BioMaxFingers
¶Максимальное количество зарегистрированных отпечатков (1-10).
DefaultFinger
¶Идентификатор пальца по умолчанию (1-10).
BioType
¶Тип биометрии.
BioMaxUnblock
¶Максимальное количество разблокировок биометрии (0-15).
UserMustChangeAfterUnlock
¶Требовать ли смены PIN-кода пользователя после его разблокировки (0-1).
UserMaxRepeatingPin
¶Максимальное количество повторений одного символа в PIN-коде пользователя.
UserMaxSequencePin
¶Максимальное количество последовательных повторений одного символа в PIN-коде пользователя.
AdminMaxRepeatingPin
¶Максимальное количество повторений одного символа в PIN-коде администратора.
AdminMaxSequencePin
¶Максимальное количество последовательных повторений одного символа в PIN-коде администратора.
UserMustChangeAfterFirstUse
¶Пользователь должен сменить PIN-код после первого использования (0-1).
SecureMessagingMode
¶Режим обмена между токеном и компьютером (см. ESecureMessagingMode
).
JC_BIO_SUPPORT_INFO
¶Используется функцией C_jcCtrl()
.
JC_BIO_SUPPORT_INFO
¶struct JC_BIO_SUPPORT_INFO
{
CK_BBOOL m_BiometryEnabled;
enum JC_CTRL_AUTHTYPE m_AuthType;
CK_ULONG m_OptionalDataLength;
CK_BYTE_PTR m_OptionalData;
};
m_AuthType
¶Тип аутентификации.
m_OptionalData
¶Указатель на дополнительные данные. Данные состоят из 0 и более 3-х байтовых последовательностей:
JC_CTRL_BIOMETRY_TYPE
),01
если используется),01
если используется).JC_CTRL_AUTHTYPE
¶Используется функцией C_jcCtrl()
.
JC_CTRL_AUTHTYPE
¶enum JC_CTRL_AUTHTYPE
{
JC_CTRL_AUTHTYPE_PIN,
JC_CTRL_AUTHTYPE_BIO,
JC_CTRL_AUTHTYPE_PIN_OR_BIO,
JC_CTRL_AUTHTYPE_PIN_AND_BIO
};
JC_CTRL_AUTHTYPE_PIN
¶Аутентификация посредством PIN-кода.
JC_CTRL_AUTHTYPE_BIO
¶Аутентификация посредством биометрии.
JC_CTRL_AUTHTYPE_PIN_OR_BIO
¶Аутентификация посредством PIN-кода или биометрии.
JC_CTRL_AUTHTYPE_PIN_AND_BIO
¶Аутентификация посредством PIN-кода и биометрии.
JC_CTRL_BIOMETRIC_ENROLL_DATA
¶Используется функцией C_jcCtrl()
.
JC_CTRL_BIOMETRIC_ENROLL_DATA
¶struct JC_CTRL_BIOMETRIC_ENROLL_DATA
{
CK_BYTE m_FingerIndex;
CK_BYTE * m_PublicData;
CK_ULONG m_PublicDataLen;
CK_BYTE * m_PrivateData;
CK_ULONG m_PrivateDataLen;
CK_BYTE * m_DeviceName;
CK_ULONG m_DeviceNameLen;
};
EUserPINType
¶Используется структурой JCCTRL_PersonalizationData
.
EUserPINType
¶typedef enum
{
UserPINTypeUndefined = 0x00,
UserPINTypePIN = 0x01,
UserPINTypeBio = 0x03,
UserPINTypePINorBIO = 0x04,
UserPINTypePINandBIO = 0x05
} EUserPINType;
UserPINTypeUndefined
¶Тип авторизации пользователя не определен.
UserPINTypePIN
¶Тип авторизации пользователя – PIN-код.
UserPINTypeBio
¶Тип авторизации пользователя – биометрия.
UserPINTypePINorBIO
¶Тип авторизации пользователя – PIN-код или биометрия.
UserPINTypePINandBIO
¶Тип авторизации пользователя – PIN-код и биометрия.
ESecureMessagingMode
¶Используется структурой JCCTRL_PersonalizationData
.
ESecureMessagingMode
¶typedef enum
{
SecureMessagingModeOFF = 0x00,
SecureMessagingModeRSA = 0x01,
SecureMessagingModeECC = 0x02
} ESecureMessagingMode;
SecureMessagingModeOFF
¶Зашифрование сообщений не происходит.
SecureMessagingModeRSA
¶Зашифрование сообщений происходит с использованием алгоритма RSA.
SecureMessagingModeECC
¶Зашифрование сообщений происходит с использованием алгоритма ECC.
INIT_PIN_ARGUMENTS
¶Используется функцией C_jcCtrl()
.
AFT_GET_READER_VERSION_RESPONCE
¶Используется функцией JC_Antifraud()
.
AFT_GET_READER_VERSION_RESPONCE
¶typedef struct AFT_GET_READER_VERSION_RESPONCE {
CK_CHAR m_OSVersion[4];
CK_CHAR m_ApplicationVersion[4];
} AFT_GET_READER_VERSION_RESPONCE;
CK_CHAR m_OSVersion[4]
Версия ОС Антифрод-терминала.
CK_CHAR m_ApplicationVersion[4]
Версия приложения, установленного на терминале.
AFT_PIN_VERIFY_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_PIN_VERIFY_RESPONCE
¶Используется функцией JC_Antifraud()
.
AFT_PIN_VERIFY_RESPONCE
¶typedef struct AFT_PIN_VERIFY_RESPONCE {
CK_BYTE m_PIN[32];
} AFT_PIN_VERIFY_RESPONCE;
CK_BYTE m_PIN[32]
Запрошенный PIN-код.
AFT_SWYX_START_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_SWYX_START_ARGUMENTS
¶typedef struct AFT_SWYX_START_ARGUMENTS {
CK_BYTE m_bReference[8];
} AFT_SWYX_START_ARGUMENTS;
CK_BYTE m_bReference[8]
Идентификатор транзакции. В журнале операций Антифрод-терминала представлен в виде: <Reference>0123456789ABCDEF</Reference>. Записывается в журнал по окончании работы в SWYX-режиме для предотвращения атаки на повтор транзакции.
AFT_SWYX_DISPLAY_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_SWYX_DISPLAY_ARGUMENTS
¶ typedef struct AFT_SWYX_DISPLAY_ARGUMENTS {
CK_BYTE m_swyxDisplayTimeout;
CK_ULONG m_AFTLanguage;
CK_ULONG m_textLength;
CK_BYTE m_DisplayIndex;
CK_UTF8CHAR m_text[];
} AFT_SWYX_DISPLAY_ARGUMENTS;
m_swyxDisplayTimeout
¶Тайм-аут подтверждения подписи пользователем на Антифрод-терминале. Измеряется в 5-секундных интервалах, 0 - бесконечный тайм-аут.
m_AFTLanguage
¶Код языка. 0x0409 - английский, 0x0419 - русский. Язык, используемый Антифрод-терминалом для отображения приглашений пользователю.
m_DisplayIndex
¶Условный номер сообщения, отображаемого внизу экрана при запросе подписания:
Необязательный параметр. По умолчанию значение 0.
CK_UTF8CHAR m_text[]
Текст для отображения на экране Антифрод-терминала в кодировке UTF8 длиной от 5 до 400 символов.
AFT_SWYX_PROPERTIES
¶Используется функцией JC_Antifraud()
.
AFT_SWYX_PROPERTIES
¶typedef struct AFT_SWYX_PROPERTIES {
CK_BYTE m_DisplayType;
CK_ULONG m_LcdMaxCharacters;
CK_ULONG m_LcdMaxLines;
CK_ULONG m_GraphicMaxWidth;
CK_ULONG m_GraphicMaxHeight;
CK_BYTE m_GraphicColorDepth;
CK_ULONG m_MaxVirtualSize;
} AFT_SWYX_PROPERTIES;
m_DisplayType
¶Тип экрана Антифрод-терминала: 0 - поддерживает только текст, 1 - поддерживает графику.
AFT_PIN_MODIFY_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_PIN_MODIFY_ARGUMENTS
¶typedef struct AFT_PIN_MODIFY_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
CK_BYTE m_Confirmation;
CK_BYTE m_Message1Idx;
CK_BYTE m_Message2Idx;
} AFT_PIN_MODIFY_ARGUMENTS;
m_AFTTimeout
¶Тайм-аут ожидания ввода пользователя на Антифрод-терминале. Измеряется в секундах, 0 - тайм-аут по умолчанию, равен 60 сек.
m_Message1Idx
¶Отображаемое на экране Антифрод-терминала сообщение при запросе на ввод пользователем PIN-кода.
m_Message2Idx
¶Отображаемое на экране Антифрод-терминала сообщение при запросе на ввод пользователем PIN-кода.
Примечание
Подробнее об отображении на экране сообщений см. m_MessageIdx
.
AFT_ENTER_ADMIN_PIN_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_ENTER_ADMIN_PIN_ARGUMENTS
¶typedef struct AFT_ENTER_ADMIN_PIN_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
CK_BYTE m_Confirmation;
CK_BYTE m_Message1Idx;
CK_BYTE m_Message2Idx;
} AFT_ENTER_ADMIN_PIN_ARGUMENTS;
m_AFTTimeout
¶Тайм-аут ожидания ввода пользователя на Антифрод-терминале. Измеряется в секундах, 0 - тайм-аут по умолчанию, равен 60 сек.
m_Message1Idx
¶Отображаемое на экране Антифрод-терминала сообщение при запросе на ввод пользователем PIN-кода.
m_Message2Idx
¶Отображаемое на экране Антифрод-терминала сообщение при запросе на ввод пользователем PIN-кода.
Примечание
Подробнее об отображении на экране сообщений см. m_MessageIdx
.
AFT_SAVE_ADMIN_PIN_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_SAVE_ADMIN_PIN_ARGUMENTS
¶typedef struct AFT_SAVE_ADMIN_PIN_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
CK_BYTE m_PINLength;
CK_BYTE m_PINvalue[];
} AFT_SAVE_ADMIN_PIN_ARGUMENTS;
m_AFTTimeout
¶Тайм-аут ожидания ввода пользователя на Антифрод-терминале. Измеряется в секундах, 0 - тайм-аут по умолчанию, равен 60 сек.
CK_BYTE m_PINvalue[]
Значение PIN-кода.
AFT_INIT_CARD_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_INIT_CARD_ARGUMENTS
¶typedef struct AFT_INIT_CARD_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
} AFT_INIT_CARD_ARGUMENTS;
AFT_LOGIN_SO_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_LOGIN_SO_ARGUMENTS
¶typedef struct AFT_LOGIN_SO_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
} AFT_LOGIN_SO_ARGUMENTS;
AFT_SET_USER_PIN_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_SET_USER_PIN_ARGUMENTS
¶typedef struct AFT_SET_USER_PIN_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
} AFT_SET_USER_PIN_ARGUMENTS;
AFT_VERIFY_PIN_ARGUMENTS
¶Используется функцией JC_Antifraud()
.
AFT_VERIFY_PIN_ARGUMENTS
¶typedef struct AFT_VERIFY_PIN_ARGUMENTS {
CK_ULONG m_AFTLanguage;
CK_BYTE m_AFTTimeout;
CK_BYTE m_MessageIdx;
} AFT_VERIFY_PIN_ARGUMENTS;
m_AFTTimeout
¶Тайм-аут ожидания ввода пользователя на Антифрод-терминале. Измеряется в секундах, 0 - тайм-аут по умолчанию, равен 60 сек.
m_MessageIdx
¶Отображаемое на экране Антифрод-терминала сообщение при запросе на ввод пользователем PIN-кода.
Примечание
Подробнее об отображении на экране сообщений см. m_MessageIdx
.
AFT_IS_CARDLESS_MODE_SUPPORTED_RESPONCE
¶Используется функцией JC_Antifraud()
.
AFT_IS_CARDLESS_MODE_SUPPORTED_RESPONCE
¶typedef struct AFT_IS_CARDLESS_MODE_SUPPORTED_RESPONCE {
CK_BYTE m_CardlessSupport;
} AFT_IS_CARDLESS_MODE_SUPPORTED_RESPONCE;
m_MessageIdx
¶Используется функцией JC_Antifraud()
.
m_MessageIdx
¶Значение m_MessageIdx
определяет сообщение, которое выводится на экран терминала при запросе на ввод или подтверждение пользователем PIN-кода (операции AFT_ENTER_ADMIN_PIN
, AFT_VERIFY_PIN
и AFT_PIN_MODIFY
). m_MessageIdx
представляет собой 1 байт, разделенный на два полубайта (правый и левый) по 4 бита. Правый (младший) полубайт определяет первую строку сообщения, выводимого на экран, и соответствует битам 0-3. Левый (старший) полубайт соответствует битам 4-7 и определяет вторую строку сообщения.
Правый полубайт может принимать значение в диапазоне от 0 до 2, левый от 0 до 3. Каждому значению полубайта соответствует одна строка текста (см. таблицу ниже.) Значение целого байта определяет весь отображаемый на экране текст. Например, байт со значением 0x20
соответствует следующему сообщению: Введите PIN-код администратора.
Возможные значения каждого полубайта и соответствующий им текст приведены в таблицах ниже.
Для русского языка:
Правый (младший) полубайт, биты 0-3 | Левый (старший) полубайт, биты 4-7: | ||
---|---|---|---|
Значение | Выводимый текст | Значение | Выводимый текст |
0 | “Введите PIN-код” | 0 | пустая строка |
1 | “Введите новый PIN” | 1 | “пользователя” |
2 | “Повторите PIN” | 2 | “администратора” |
3 | “подписи” |
Для английского языка:
Правый (младший) полубайт, биты 0-3 | Левый (старший) полубайт, биты 4-7: | ||
---|---|---|---|
Значение | Выводимый текст | Значение | Выводимый текст |
0 | “Enter PIN” | 0 | пустая строка |
1 | “Enter new PIN” | 1 | “of user” |
2 | “Repeat PIN” | 2 | “of admin” |
3 | “for signature” |