...
Все параметры, необходимые для инициализации, передаются в структуре типа CK_RUTOKEN_INIT_PARAM.
Внимание! Для Рутокен S параметры ulMinAdminPinLen и ulMinUserPinLen из структуры CK_RUTOKEN_INIT_PARAM, не могут принимать значение больше 1.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Code Block | ||||
---|---|---|---|---|
| ||||
static CK_CHAR USER_PIN[] = {'1', '2', '3', '4', '5', '6', '7', '8'}; // PIN-код Пользователя Рутокен по умолчанию static CK_CHAR SO_PIN[] = {'8', '7', '6', '5', '4', '3', '2', '1'}; // PIN-код Администратора Рутокен по умолчанию CK_FUNCTION_LIST_PTR pFunctionList; // указатель на структуру CK_FUNCTION_LIST, в которой хранится список стандартных функций CK_C_EX_GetFunctionList pfGetFunctionList; // указатель на функцию C_GetFunctionList CK_SLOT_ID slots[100]; // массив идентификаторов слотов CK_ULONG ulSlotCount = 100; // количество идентификаторов слотов в массиве CK_RUTOKEN_INIT_PARAM ckRtInitParams; // структура, задающая параметры форматирования токена CK_RV rv; // вспомогательная переменная для хранения кода возврата /* заполнение полей структуры CK_RUTOKEN_INIT_PARAM */ ckRtInitParams.ulSizeofThisStructure = sizeof(CK_RUTOKEN_INIT_PARAM); // задаем размер структуры ckRtInitParams.UseRepairMode = 0; // требуем ввод PIN-кода Администратора (0 - да, режим восстановления выключен, !0 - нет, режим восстановления включен) ckRtInitParams.pNewAdminPin = SO_PIN; // задаем новый PIN-код Администратора (минимум (?), максимум 32 байта) ckRtInitParams.ulNewAdminPinLen = sizeof(SO_PIN); // указываем длину нового PIN-кода Администратора ckRtInitParams.pNewUserPin = USER_PIN; // задаем новый PIN-код Пользователя (минимум (?), максимум 32 байта) ckRtInitParams.ulNewUserPinLen = sizeof (USER_PIN); // указываем длину нового PIN-кода Пользователя ckRtInitParams.ChangeUserPINPolicy = TOKEN_FLAGS_ADMIN_CHANGE_USER_PIN | TOKEN_FLAGS_USER_CHANGE_USER_PIN; // задаем политику смены PIN-кода пользователя: Администратором и Пользователем ckRtInitParams.ulMinAdminPinLen = 6; // задаем минимальную длину PIN-кода Администратора (минимум 6, максимум 32 байта) ckRtInitParams.ulMinUserPinLen = 6; // задаем минимальную длину PIN-кода Пользователя (минимум 6, максимум 32 байта) ckRtInitParams.ulMaxAdminRetryCount = 10; // задаем максимальное количество попыток доступа к PIN-коду Администратора (минимум 3, максимум 10 байтов) ckRtInitParams.ulMaxUserRetryCount = 10; // задаем максимальное количество попыток доступа к PIN-коду Пользователя (минимум 1, максимум 10 байтов) ckRtInitParams.pTokenLabel = "Rutoken label"; // задаем метку пользователя ckRtInitParams.ulLabelLen = 13; // указываем длину метки пользователя . . pfGetFunctionList = (CK_C_GetFunctionList)GetProcAddress(hModule,"C_GetFunctionList"); //получение списка стандартных функций pfGetFunctionList(&pFunctionList); rv = pfGetFunctionList -> C_GetSlotList(CK_TRUE, slots, &ulSlotCount); // получение списка слотов с подключенными токенами if (rv == CKR_OK ) // проверка результата printf("Getting connected slots list -> OK \n"); else printf("Getting connected slots list -> failed \n"); if (ulSlotCount == 0) printf("No Rutoken is available"); rv = pfGetFunctionListEx -> C_EX_InitToken(slots[0], SO_PIN, sizeof(SO_PIN), &ckRtInitParams); // инициализация токена (считаем, что подключен один токен к первому слоту) if (rv == CKR_OK) // проверка результата printf("Token initialization -> OK \n"); else printf("Token initialization -> failed \n"); |
...
Функция сбрасывает счетчик неверных попыток ввода PIN-кода для CKU_USER. Функция может быть вызвана только из сессии, имеющей статус CKS_RW_SO_FUNCTIONS.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция позволяет установить метку токена произвольной длины, в отличии от стандартной функции C_InitToken, которая позволяет устанавливать метку токена фиксированного размера. Функция может быть вызвана только из сессии, имеющей статус CKS_RW_USER_FUNCTIONS.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Для определения необходимого количества памяти для хранения метки токена, необходимо вызвать функцию C_EX_GetTokenName с параметром pLabel равным NULL_PTR, тогда в параметре pulLabelLen будет возвращен указатель на переменную с требуемым размером буфера.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
ulLicenseNum | [in] | идентификатор лицензии. Параметр может принимать одно из двух значений: 1 или 2 |
pLicense | [in] | указатель на буфер, содержащий лицензию |
ulLicenseLen | [in] | размер буфера с лицензией, в байтах. Параметр может принимать только одно значение: 72 |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
ulLicenseNum | [in] | идентификатор лицензии. Параметр может принимать одно из двух значений: 1 или 2 |
pLicense | [out] | указатель на буфер для получения лицензии |
ulLicenseLen | [in, out] | размер буфера с лицензией, в байтах. Параметр может принимать только одно значение: 72 |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
slotID | [in] | идентификатор слота, к которому подключен токен |
pUserPin или pOldLocalPin | [in] | указатель на текущий PIN-код Пользователя или на текущий локальный PIN-код |
ulUserPinLen или pOldLocalPinLen | [in] | длина текущего PIN-кода Пользователя или длина текущего локального PIN-кода |
pNewLocalPin | [in] | указатель на новый Локальный PIN-код |
ulNewLocalPinLen | [in] | длина нового Локального PIN-кода |
ulLocalID | [in] | идентификатор Локального PIN-кода |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция поддерживает генерацию запроса на сертификат для следующих типов ключей: ГОСТ 34.10-2012 с длиной закрытого ключа 256 бит, ГОСТ 34.10-2001 и RSA (типы ключей CKK_GOSTR3410 и CKK_RSA).
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция поддерживает подпись по следующим алгоритмам: ГОСТ 34.10-2012 с длиной закрытого ключа 256 бит и ГОСТ 34.10-2001 (механизм CKM_GOSTR3410).
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions".
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7Verifyinit.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7VerifyInit. Для завершения процесса проверки подписи необходим вызов функции C_EX_PKCS7Verifyfinal.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7VerifyUpdate.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
slotID | [in] | идентификатор слота с подключенным токеном |
pulDriveSize | [out] | возвращаемый размер флеш-памяти в Мб |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
slotID | [in] | идентификатор слота с подключенным токеном | ||||||||
userType | [in] | тип пользователя, допустимое значение только CKU_SO – глобальный администратор. | ||||||||
pPin | [in] | PIN-код пользователя | ||||||||
ulPinLen | [in] | длина PIN-кода пользователя | ||||||||
pInitParams | [in] | указатель на массив структур типа CK_VOLUME_FORMAT_INFO_EXTENDED, содержащих детальную информацию о разделах
| ||||||||
ulInitParamsCount | [in] | количество записей в массиве |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
slotID | [in] | идентификатор слота с подключенным токеном | ||||||||||
pInfo | [out] | указатель на массива структур типа
| ||||||||||
pulInfoCount | [out] | размер массива |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
slotID | [in] | идентификатор слота с подключенным токеном |
userType | [in] | владелец раздела, допустимые значения: CKU_USER – глобальный пользователь; |
pPin | [in] | PIN-код пользователя |
ulPinLen | [in] | длина PIN-кода пользователя |
idVolume | [in] | идентификатор раздела |
newAccessMode | [in] | новые флаги доступа к разделу |
bPermanent | [in] | флаг режима измения атрибута: CK_TRUE – постоянное изменение атрибута доступа, действует вплоть до следующего изменения атрибутов; |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
slotID | [in] | идентификатор слота |
pJournal | [out] | указатель на запись журнала |
pulJournalSize | [out] | размер записи журнала |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
pMechanism | [in] | механизм подписи |
hKey | [in] | дескриптор ключа для подписи |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
pData | [in] | указатель на буфер данных для подписи |
ulDataLen | [in] | размер данных для подписи в байтах |
pSignature | [out] | указатель на буфер с подписью |
pulSignatureLen | [out] | размер буфера с подписью |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
key | [in] | указатель на пароль |
keySize | [in] | длина пароля |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
password | [in] | пароль активации |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
ulPasswordNumber | порядковый номер генерируемого пароля. Допустимые значения от 1 до 6 и
| |
pPassword | [out] | указатель на буфер, содержащий сгенерированный пароль |
pulPasswordSize | [out] | размер буфера |
ulPasswordCharacterSet | [in] | набор допустимых символов:
|
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
hSession | [in] | дескриптор сессии |
ulMode | [in] | режим работы функции:
|
pValue | [in] |
1 .. 0х46 – произвольное значение в минутах, от 1 минуты до 70 минут
|
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
ulPinID | [in] | идентификатор PIN-кода |
ulMinSize | [out] | заданная минимальная длина PIN-кода |
ulMaxSize | [out] | заданная максимальная длина PIN-кода |
ulMaxRetryCount | [out] | заданное максимальное значение счетчика неверных попыток ввода пароля |
ulCurrentRetryCount | [out] | текущее значение счетчика оставшихся попыток ввода пароля: 0 – PIN-код заблокирован |
flags | [out] | информационные флаги:
|
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
pBuffer | [in] | указатель на буфер |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...