C_EX_TokenManage
Anchor | ||||
---|---|---|---|---|
|
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
...
Code Block | ||
---|---|---|
| ||
CK_BYTE Pin[] = {'1', '2', '3', '4', '5', '6', '7', '8'}; // текущий PIN-код Пользователя или локальный PIN-код CK_SLOT_ID slots[100]; // массив идентификаторов слотов . . rv = pfGetFunctionListEx -> C_EX_SetLocalPIN( slots[0], // считаем, что токен подключен к первому слоту Pin, // текущий PIN-код Пользователя или текущий локальный PIN-код arraysize(Pin), // длина текущего PIN-кода Пользователя или локального PIN-кода "000000000000000000000000000000", // указатель на новый Локальный PIN-код 30, // длина нового Локального PIN-кода 0x1F // идентификатор Локального PIN-кода ); if (rv != CKR_OK) // проверка результата printf("C_EX_SetLocalPIN() -> failed \n"); else printf("C_EX_SetLocalPIN() -> OK \n"); |
Функции для работы с сертификатами
C_EX_
...
TokenManage()
Назначение
Функция позволяет получить информацию о сертификате из токена в текстовом виде.
Предоставляет механизм принудительной смены PIN-кода пользователя.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GetCertificateInfoTextTokenManage)( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hCert, CK_CHAR_PTR* pInfo, CK_ULONG_PTR pulInfoLenCK_ULONG ulMode, CK_VOID_PTR pValue ); |
Параметры
hSession | [in] | дескриптор сессии |
ulMode | [in] | режим работы функции:
|
pValue | [in] |
|
Возвращаемые значения
CKR_OK
– функция выполнена успешно.
CKR_ARGUMENTS_BAD
– неправильно переданы параметры функции
CKR_USER_NOT_LOGGED_IN
– пользователь SKU_SO не авторизован на токене (режимы)
C_EX_SlotManage
Назначение
Позволяет:
- получить расширенную информацию о всех локальных PIN-кодах токена.
- получить информацию об установленном флаге принудительной смене PIN-кода
- выполнить расширенную инициализацию токена
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_SlotManage) (
CK_SLOT_ID slotID,
CK_ULONG ulMode,
CK_VOID_PTR pValue
) |
Параметры
hSession | [in] | дескриптор сессии |
ulMode | [in] | режим работы функции:
|
pValue | [out] |
|
Для режима работы функции MODE_GET_LOCAL_PIN_INFO
в pValue возвращается указатель массив структур типа CK_LOCAL_PIN_INFO
:
ulPinID | [in] | идентификатор PIN-кода |
ulMinSize | [out] | заданная минимальная длина PIN-кода |
ulMaxSize | [out] | заданная максимальная длина PIN-кода |
ulMaxRetryCount | [out] | заданное максимальное значение счетчика неверных попыток ввода пароля |
ulCurrentRetryCount | [out] | текущее значение счетчика оставшихся попыток ввода пароля: 0 – PIN-код заблокирован |
flags | [out] | информационные флаги:
|
Возвращаемые значения
CKR_OK
– функция выполнена успешно.
CKR_PIN_EXPIRED
– если PIN-код нужно сменить смене (MODE_GET_PIN_SET_TO_BE_CHANGED
).
CKR_ARGUMENTS_BAD
– неверно указаны аргументы функции.
Функции для работы с сертификатами
C_EX_GetCertificateInfoText()
Назначение
Функция позволяет получить информацию о сертификате из токена в текстовом виде.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GetCertificateInfoText)(
CK_SESSION_HANDLE hSession,
CK_OBJECT_HANDLE hCert,
CK_CHAR_PTR* pInfo,
CK_ULONG_PTR pulInfoLen
); |
Параметры
hSession | [in] | дескриптор сессии | ||||
hCert | [in] | дескриптор объекта (сертификата) | ||||
pInfo | [out] | указатель на буфер, содержащий | дескриптор объекта (сертификата) | pInfo | [out] | указатель на буфер, содержащий текстовую информацию о сертификате |
pulInfoLen | [out] | размер буфера, в байтах |
...
C_EX_CreateCSR()
Назначение
Создает запрос на выпуск сертификата в центр сертификации и упаковывает его в формат PKCS#10.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_CreateCSR)( CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hPublicKey, CK_CHAR_PTR *dn, CK_ULONG dnLength, CK_BYTE_PTR *pCsr, CK_ULONG_PTR pulCsrLength, CK_OBJECT_HANDLE hPrivKey, CK_CHAR_PTR *pAttributes, CK_ULONG ulAttributesLength, CK_CHAR_PTR *pExtensions, CK_ULONG ulExtensionsLength ); |
Параметры
hSession | [in] | дескриптор сессии |
hPublicKey | [in] | дескриптор открытого ключа для создания сертификата |
dn | [in] | уникальное имя – массив строк, где в первой строке располагается тип поля в текстовом формате или идентификатор объекта (CN или «2.5.4.3»). Во второй строке должно находиться значение поля в кодировке UTF8. Последующие поля передаются аналогично, количество строк должно быть кратно двум |
dnLength | [in] | количество строк в массиве, на который ссылается параметр dn |
pCsr | [in] | указатель на указатель на массив байт, в который будет записан созданный запрос на сертификат |
pulCsrLength | [in] | указатель на переменную, в которой сохраняется размер массива. |
hPrivKey | [in] | закрытый ключ, соответствующий открытому ключу, на который ссылается параметр hPublicKey. Если значение установлено в «0», то поиск закрытого ключа будет осуществляться по ID открытого ключа. |
pAttributes | [in] | дополнительные атрибуты для включения в запрос. Формат аналогичен формату параметра dn (например, «1.2.840.113549.1.9.7» или «challengePassword»). |
ulAttributesLength | [in] | количество атрибутов в массиве, на который указывает параметр attributes. |
pExtensions | [in] | расширения для включения в запрос. Формат аналогичен параметру dn |
ulExtensionsLength | [in] | количество расширений в параметрах extensions |
...
Функция поддерживает генерацию запроса на сертификат для следующих типов ключей: ГОСТ 34.10-2012 с длиной закрытого ключа 256 бит, ГОСТ 34.10-2001 и RSA (типы ключей CKK_GOSTR3410 и CKK_RSA).
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функции для работы с CMS/PKCS#7 сообщениями
C_EX_PKCS7Sign()
Назначение
Подписывает переданные на вход данные в формате PKCS#7.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_PKCS7Sign)( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_OBJECT_HANDLE hCert, CK_BYTE_PTR *ppEnvelope, CK_ULONG_PTR pEnvelopeLen, CK_OBJECT_HANDLE hPrivKey, CK_OBJECT_HANDLE_PTR phCertificates, CK_ULONG ulCertificatesLen, CK_ULONG flags ); |
Параметры
hSession | [in] | дескриптор сессии |
pData | [in] | указатель на байт-массив CK_BYTE, содержащий данные для подписи |
ulDataLen | [in] | длина данных для подписи |
hCert | [in] | дескриптор сертификата |
ppEnvelope | [out] | указатель на байт-массив, в который передаются данные (сообщение) |
pEnvelopeLen | [out] | указатель на длину созданного буфера с сообщением |
hPrivKey | [in] | дескриптор закрытого ключа, соответствующего указанному сертификату. Если равен 0, то закрытый ключ будет искаться по ID сертификата |
phCertificates | [in] | указатель на массив сертификатов, цепочку сертификатов |
ulCertificatesLen | [in] | количество сертификатов в параметре phCertificates |
flags | [in] | переменная типа CK_ULONG, может принимать следующие значения: 0 – хеширование программное, исходные данные, на которые ссылается указатель pData, сохраняются вместе с подписанным сообщением; |
...
Функция поддерживает подпись по следующим алгоритмам: ГОСТ 34.10-2012 с длиной закрытого ключа 256 бит и ГОСТ 34.10-2001 (механизм CKM_GOSTR3410).
Возвращаемые значения
CKR_OK – функция выполнена успешно.
C_EX_PKCS7VerifyInit()
Назначение
Инициализирует процесс проверки подписи переданных на вход данных в формате PKCS#7.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_PKCS7VerifyInit)( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pCms, CK_ULONG ulCmsSize, CK_VENDOR_X509_STORE_PTR pStore, CK_VENDOR_CRL_MODE ckMode, CK_FLAGS flags ); typedef struct CK_VENDOR_X509_STORE { CK_VENDOR_BUFFER_PTR pTrustedCertificates; // указатель на массив доверенных сертификатов CK_ULONG ulTrustedCertificateCount; // количество доверенных сертификатов в массиве CK_VENDOR_BUFFER_PTR pCertificates; // указатель на массив, содержащий сертификаты для проверки подписи CK_ULONG ulCertificateCount; // количество сертификатов в цепочке сертификатов CK_VENDOR_BUFFER_PTR pCrls; // указатель на массив списков отзыва сертификатов CK_ULONG ulCrlCount; // количество списков отзыва сертификатов в массиве } CK_VENDOR_X509_STORE; typedef struct CK_VENDOR_BUFFER { CK_BYTE_PTR pData; // указатель на массив байтов CK_ULONG ulSize; // длина массива } |
Параметры
hSession | [in] | дескриптор сессии |
pCms | [in] | указатель на массив байтов, содержащий сообщение в формате PKCS#7 для проверки |
ulCmsSize | [in] | длина сообщения |
pStore | [in] | указатель на структуру типа CK_VENDOR_X509_STORE, которая содержит указатели на необходимые для проверки подписи доверенные сертификаты, сертификаты подписывающей стороны и списки отозванных сертификатов |
ckMode | [in] | политика проверки списков отозванных сертификатов (CRLs), может принимать следующие значения: OPTIONAL_CRL_CHECK – отсутствие списка отозванных сертификатов не вызывает ошибку при проверке подписи; |
flags | [in] | опции проверки подписи, могут принимать следующие значения: CKF_VENDOR_DO_NOT_USE_INTERNAL_CMS_CERTS – не использовать содержащиеся в CMS сообщении сертификаты для поиска сертификатов подписантов (сертификаты должны быть заданы в структуре CK_VENDOR_X509_STORE); |
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions".
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
C_EX_PKCS7Verify()
Назначение
Выполняет проверкy присоединенной (attached) подписи в формате PKCS#7 и возвращает данные, которые были подписаны, и сертификаты подписантов.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_PKCS7Verify)( CK_SESSION_HANDLE hSession, CK_BYTE_PTR_PTR ppData, CK_ULONG_PTR pulDataSize, CK_VENDOR_BUFFER_PTR_PTR ppSignerCertificates, CK_ULONG_PTR pulSignerCertificatesCount ); typedef struct CK_VENDOR_BUFFER { CK_BYTE_PTR pData; // указатель на массив байтов CK_ULONG ulSize; // длина массива } |
Параметры
hSession | [in] | дескриптор сессии |
ppData | [out] | указатель на массив байтов, содержащий данные, которые были подписаны (EncapsulatedContentInfo) |
pulDataSize | [out] | размер данных |
ppSignerCertificates | [out] | указатель на массив, содержащий сертификаты подписантов |
pulSignerCertificatesCount | [out] | количество сертификатов в массиве |
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7Verifyinit.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
C_EX_PKCS7VerifyUpdate()
Назначение
Начинает процесс проверки отсоединенной (detached) подписи в формате PKCS#7.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_PKCS7VerifyUpdate)( CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataSize ); |
Параметры
hSession | [in] | дескриптор сессии |
pData | [in] | указатель на массив байтов, содержащий блок данных, которые были подписаны (EncapsulatedContentInfo) |
ulDataSize | [in] | размер данных |
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7VerifyInit. Для завершения процесса проверки подписи необходим вызов функции C_EX_PKCS7Verifyfinal.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
C_EX_PKCS7VerifyFinal()
Назначение
Завершает процесс проверки отсоединенной (detached) подписи в формате PKCS#7 и возвращает сертификаты подписантов.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_PKCS7VerifyFinal)( CK_SESSION_HANDLE hSession, CK_VENDOR_BUFFER_PTR_PTR ppSignerCertificates, CK_ULONG_PTR pulSignerCertificatesCount ); |
Параметры
hSession | [in] | дескриптор сессии |
ppSignerCertificates | [out] | указатель на массив, содержащий сертификаты подписантов |
pulSignerCertificatesCount | [out] | количество сертификатов в массиве |
...
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7VerifyUpdate.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
AUI Button | ||||||
---|---|---|---|---|---|---|
|
C_EX_GetDriveSize()
Назначение
Возращает размер флеш-памяти токена.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GetDriveSize)( CK_SLOT_ID slotID, CK_ULONG_PTR pulDriveSize ); |
Параметры
slotID | [in] | идентификатор слота с подключенным токеном |
pulDriveSize | [out] | возвращаемый размер флеш-памяти в Мб |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Разбивает флеш-память токена на независимые разделы с разными правами доступа.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_FormatDrive) ( CK_SLOT_ID slotID, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen, CK_VOLUME_FORMAT_INFO_EXTENDED_PTR pInitParams, CK_ULONG ulInitParamsCount ); typedef struct CK_VOLUME_FORMAT_INFO_EXTENDED { CK_ULONG ulVolumeSize; CK_ACCESS_MODE_EXTENDED accessMode; CK_OWNER_EXTENDED volumeOwner; CK_FLAGS flags; } CK_VOLUME_FORMAT_INFO_EXTENDED; |
Параметры
slotID | [in] | идентификатор слота с подключенным токеном | ||||||||
userType | [in] | тип пользователя, допустимое значение только CKU_SO – глобальный администратор. | ||||||||
pPin | [in] | PIN-код пользователя | ||||||||
ulPinLen | [in] | длина PIN-кода пользователя | ||||||||
pInitParams | [in] | указатель на массив структур типа CK_VOLUME_FORMAT_INFO_EXTENDED, содержащих детальную информацию о разделах
| ||||||||
ulInitParamsCount | [in] | количество записей в массиве |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
C_EX_GetVolumesInfo()
Назначение
Возвращает информацию о существующих на флеш-памяти разделах.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GetVolumesInfo)( CK_SLOT_ID slotID, CK_VOLUME_INFO_EXTENDED_PTR pInfo, CK_ULONG_PTR pulInfoCount ); typedef struct CK_VOLUME_INFO_EXTENDED { CK_VOLUME_ID_EXTENDED idVolume; CK_ULONG ulVolumeSize; CK_ACCESS_MODE_EXTENDED accessMode; CK_OWNER_EXTENDED volumeOwner; CK_FLAGS flags; } CK_VOLUME_INFO_EXTENDED; |
Параметры
slotID | [in] | идентификатор слота с подключенным токеном | ||||||||||
pInfo | [out] | указатель на массива структур типа
| ||||||||||
pulInfoCount | [out] | размер массива |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
C_EX_ChangeVolumeAttributes()
Назначение
Функция измененяет флаг доступа к разделу.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_ChangeVolumeAttributes)( CK_SLOT_ID slotID, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen, CK_VOLUME_ID_EXTENDED idVolume, CK_ACCESS_MODE_EXTENDED newAccessMode, CK_BBOOL bPermanent ); |
Параметры
slotID | [in] | идентификатор слота с подключенным токеном |
userType | [in] | владелец раздела, допустимые значения: CKU_USER – глобальный пользователь; |
pPin | [in] | PIN-код пользователя |
ulPinLen | [in] | длина PIN-кода пользователя |
idVolume | [in] | идентификатор раздела |
newAccessMode | [in] | новые флаги доступа к разделу |
bPermanent | [in] | флаг режима измения атрибута: CK_TRUE – постоянное изменение атрибута доступа, действует вплоть до следующего изменения атрибутов; |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
AUI Button | ||||||
---|---|---|---|---|---|---|
|
C_EX_GetJournal()
Назначение
Функция возвращает журнал операций.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GetJournal)( CK_SLOT_ID slotID, CK_BYTE_PTR pJournal, CK_ULONG_PTR pulJournalSize ); |
Параметры
slotID | [in] | идентификатор слота |
pJournal | [out] | указатель на запись журнала |
pulJournalSize | [out] | размер записи журнала |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
AUI Button | ||||||
---|---|---|---|---|---|---|
|
C_EX_LoadActivationKey()
Назначение
Активирует защищенный канал связи с токеном с использованием пароля (поддерживается только в 20-й версии прошивки)
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_LoadActivationKey)( CK_SESSION_HANDLE hSession, CK_BYTE_PTR key, CK_ULONG keySize ); |
Параметры
hSession | [in] | дескриптор сессии |
key | [in] | указатель на пароль |
keySize | [in] | длина пароля |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
C_EX_SetActivationPassword()
Назначение
Активирует защищенный канал связи с токеном с использованием пароля (поддерживается с 21-й версии прошивки).
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_SetActivationPassword)(
CK_SLOT_ID slotID,
CK_UTF8CHAR_PTR password
); |
Параметры
hSession | [in] | дескриптор сессии |
password | [in] | пароль активации |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
C_EX_GenerateActivationPassword()
Назначение
Генерирует пароль для активации защищенного канала связи с токеномзащищенный канал связи с токеном с использованием пароля (поддерживается с 21-й версии прошивки).
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_GenerateActivationPasswordSetActivationPassword)( CK_SESSION_HANDLE hSession, CK_ULONGSLOT_ID ulPasswordNumberslotID, CK_UTF8CHAR_PTR pPassword, CK_ULONG_PTR pulPasswordSize, CK_ULONG ulPasswordCharacterSet ); |
Параметры
...
hSession
...
ulPasswordNumber
...
порядковый номер генерируемого пароля. Допустимые значения от 1 до 6 и
GENERATE_NEXT_PASSWORD
– генерировать следующий пароль (только для 21-й версии микропрограммы)
...
pPassword
...
pulPasswordSize
...
ulPasswordCharacterSet
...
набор допустимых символов:
CAPS_AND_DIGITS
– заглавные буквы латинского алфавита без O и цифры без 0CAPS_ONLY
– заглавные буквы латинского алфавита
password
); |
Параметры
hSession | [in] | дескриптор сессии |
password | [in] | пароль активации |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
C_EX_
...
GenerateActivationPassword()
Назначение
Управляет режимом работы токена и таймаутом беспроводного соединения Рутокен Bluetooth.
...
Генерирует пароль для активации защищенного канала связи с токеном.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_TokenManage)((CK_RV, C_EX_GenerateActivationPassword)( CK_SESSION_HANDLE hSession, CK_ULONG ulPasswordNumber, CK_SESSIONUTF8CHAR_HANDLEPTR hSessionpPassword, CK_ULONG_PTR ulModepulPasswordSize, CK_VOID_PTRULONG pValueulPasswordCharacterSet ); |
Параметры
hSession | [in] | дескриптор сессии | |||
ulMode | [in] | режим работы функции:
| |||
ulPasswordNumber | порядковый номер генерируемого пароля. Допустимые значения от 1 до 6 и
| ||||
pPassword | [out] | указатель на буфер, содержащий сгенерированный пароль | |||
pulPasswordSize | [out] | размер буфера | |||
ulPasswordCharacterSet | [in] | набор допустимых символов:
| pValue | [in] |
1 .. 0х46 – произвольное значение в минутах, от 1 минуты до 70 минут
|
Возвращаемые значения
CKR_OK – функция выполнена успешно.
Функции системного назначeния
C_EX_
...
TokenManage()
Назначение
Позволяет выполнить расширенную инициализацию токена, получить значение имитовставки токена и расширенную информацию о всех локальных PIN-кодах токена.
Управляет режимом работы токена и таймаутом беспроводного соединения Рутокен Bluetooth.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_SlotManageTokenManage)( CK_SESSION_HANDLE hSession, CK_ULONG ulMode, CK_VOID_PTR pValue ); |
Параметры
hSession | [in] | дескриптор сессии |
ulMode | [in] | режим работы функции:
|
pValue | [out] | указатель на буфер с возвращаемым значением (зависит от значения аргумента ulMode). |
Для режима работы функции MODE_GET_LOCAL_PIN_INFO
в pValue возвращается указатель массив структур типа CK_LOCAL_PIN_INFO
:
| ||
pValue | [in] |
1 .. 0х46 – произвольное значение в минутах, от 1 минуты до 70 минут
|
ulPinID | [in] | идентификатор PIN-кода |
ulMinSize | [out] | заданная минимальная длина PIN-кода |
ulMaxSize | [out] | заданная максимальная длина PIN-кода |
ulMaxRetryCount | [out] | заданное максимальное значение счетчика неверных попыток ввода пароля |
ulCurrentRetryCount | [out] | текущее значение счетчика оставшихся попыток ввода пароля: 0 – PIN-код заблокирован |
flags | [out] | информационные флаги:
|
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...
Функции для работы с ключами в оперативной памяти
C_EX_WrapKey
Назначение
Генерирует сессионный ключ, вычисляет ключ согласования, шифрует сессионный ключ ключом согласования и возвращает указатель на дескриптор сессионного ключа, хранящегося в оперативной памяти токена.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_WrapKey)( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pGenerationMechanism, CK_ATTRIBUTE_PTR pKeyTemplate, CK_ULONG ulKeyAttributeCount, CK_MECHANISM_PTR pDerivationMechanism, CK_OBJECT_HANDLE hBaseKey, CK_MECHANISM_PTR pWrappingMechanism, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pulWrappedKeyLen, CK_OBJECT_HANDLE_PTR phKey ); |
Параметры
hSession | [in] | дескриптор сессии |
pGenerationMechanism | [in] | механизм генерации сессионного ключа. Допустимое значение: CKM_GOST28147_KEY_GEN – по стандарту ГОСТ 28147-89 |
pKeyTemplate | [in] | указатель на буфер, содержащий шаблон сессионого ключа |
ulKeyAttributeCount | [in] | количество атрибутов сессионого ключа в шаблоне |
pDerivationMechanism | [in] | механизм выработки ключа согласования. Допустимые значения: CKM_GOSTR3410_DERIVE – по стандарту ГОСТ Р 34.10-2001 |
hBaseKey | [in] | дескриптор закрытого ключа для формирования ключа согласования |
pWrappingMechanism | [in] | механизм шифрования сессионного ключа |
pWrappedKey | [in] | указатель на зашифрованный сессионный ключ |
pulWrappedKeyLen | [in] | длина зашифрованного сессионного ключа |
phKey | [out] | указатель на сессионый ключ (CEK) |
C_EX_UnwrapKey
Назначение
Вычисляет ключ согласования, расшифровывает зашифрованный сессионный ключ и возвращает указатель на дескриптор расшифрованного сессионного ключа, хранящего в оперативной памяти токена.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_UnwrapKey)( CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pDerivationMechanism, CK_OBJECT_HANDLE hBaseKey, CK_MECHANISM_PTR pUnwrappingMechanism, CK_BYTE_PTR pWrappedKey, CK_ULONG ulWrappedKeyLen, CK_ATTRIBUTE_PTR pKeyTemplate, CK_ULONG ulKeyAttributeCount, CK_OBJECT_HANDLE_PTR phKey ); |
Параметры
hSession | [in] | дескриптор сессии |
pDerivationMechanism | [in] | механизм выработки ключа согласования (KEK). Допустимые значения: CKM_GOSTR3410_DERIVE – по стандарту ГОСТ Р 34.10-2001 |
hBaseKey | [in] | дескриптор закрытого ключа для формирования ключа согласования |
pUnwrappingMechanism | [in] | механизм расшифрования зашифрованного сессионного ключа |
pWrappedKey | [in] | указатель на зашифрованный сессионный ключ |
ulWrappedKeyLen | [in] | длина зашифрованного сессионного ключа |
pKeyTemplate | [in] | указатель на буфер, содержащий шаблон сессионного ключа |
ulKeyAttributeCount | [in] | количество атрибутов сессионного ключа в шаблоне |
phKey | [out] | указатель на дескриптор сессионного ключа (CEK) |
...
Вспомогательные функции
C_EX_FreeBuffer()
Назначение
Функция освобождает память, выделенную другими расширенными функциями, например C_EX_GetCertificateInfoText.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_FreeBuffer)( CK_BYTE_PTR pBuffer ); |
Параметры
pBuffer | [in] | указатель на буфер |
Возвращаемые значения
CKR_OK – функция выполнена успешно.
...