...
hSession | [in] | дескриптор сессии |
pCms | [in] | указатель на байт-массив CK_BYTE, содержащий сообщение в формате PKCS#7 для проверки |
ulCmsSize | [in] | длина сообщения |
pStore | [in] | структура типа CK_VENDOR_X509_STORE, содержащая указатели на необходимые для проверки подписи доверенные сертификаты, цепочку сертификатов сертификаты подписывающей стороны и списки отозванных сертификатов |
ckMode | [in] | политика проверки списков отозванных сертификатов (CRLs), может принимать следующие значения: OPTIONAL_CRL_CHECK – отсутствие соответсвующего соответствующего списка отозванных сертификатов не влияет на верификацию; |
flags | [in] | переменная типа CK_ULONG, может принимать следующие значения: CKF_VENDOR_DO_NOT_USE_INTERNAL_CMS_CERTS – не использовать для проверки подписи содержащиеся в CMS сообщении сертификаты; |
...
C_EX_PKCS7Verify()
Назначение
Осуществляет Выполняет процесс проверки подписи переданных на вход данных в в формате 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 | [in] | указатель на байт-массив CK_BYTE, содержащий detached подпись данные, которые были подписаны (EncapsulatedContentInfo) в случае их отсутствия подписи в CMS сообщении, заданном функцией переданномфункции C_EX_PKCS7VerifyInit |
pulDataSize | [in] | длина detached подписиразмер данных |
ppSignerCertificates | [in] | указатель на массив, содержащий сертификаты подписантаподписавшей стороны |
pulSignerCertificatesCount | [in] | количество сертификатов в массиве |
...
CKR_OK – функция выполнена успешно.
Стандартные коды ошибок:CKR_SIGNATURE_INVALID
CKR_ARGUMENTS_BAD,CKR_OPERATION_ACTIVE,
CKR_FUNCTION_NOT_SUPPORTED.
C_EX_PKCS7VerifyUpdate()
Назначение
Выполняет проверку подписи очередного блока переданных данных в формате PKCS#7 для составной операции проверки подписи.
Синтаксис
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_PKCS7VerifyUpdate)(
CK_SESSION_HANDLE hSession,
CK_BYTE_PTR_PTR ppData,
CK_ULONG_PTR pulDataSize
);
|
Параметры
hSession | [in] | дескриптор сессии |
ppData | [in] | указатель на байт-массив CK_BYTE, содержащий блок данных, которые были подписаны (EncapsulatedContentInfo) в случае их отсутствия в CMS сообщении, переданномфункции C_EX_PKCS7VerifyInit |
pulDataSize | [in] | размер данных |
Примечание
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7VerifyInit. Для завершения процесса проверки подписи необходим вызов функции C_EX_PKCS7Verifyfinal.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
Стандартные коды ошибок:
CKR_ARGUMENTS_BAD,
CKR_FUNCTION_NOT_SUPPORTED.
C_EX_PKCS7VerifyFinal()
Назначение
Завершает процесс проверки подписи переданных на вход данных в в формате 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 | [in] | указатель на массив, содержащий сертификаты подписавшей стороны |
pulSignerCertificatesCount | [in] | количество сертификатов в массиве |
Примечание
Функция может быть вызвана только из состояний "R/W User Functions" и "R User Functions", после вызова функции C_EX_PKCS7VerifyUpdate.
Возвращаемые значения
CKR_OK – функция выполнена успешно.
Стандартные коды ошибок:
CKR_SIGNATURE_INVALID,
CKR_ARGUMENTS_BAD,
CKR_FUNCTION_NOT_SUPPORTED.
Функции специального назначения
C_EX_FreeBuffer()
Назначение
Функция высвобождает память, выделенную другими расширенными функциями, например C_EX_GetCertificateInfoText.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_FreeBuffer)( CK_BYTE_PTR pBuffer ); |
Параметры
pBuffer | [in] | указатель на буфер |
...
C_EX_SetLocalPIN()
Назначение
Функция устанавливает локальный PIN-код, если он не был установлен или меняет локальный PIN-код, если он был установлен заранее.
...
Code Block |
---|
CK_DEFINE_FUNCTION(CK_RV, C_EX_SetLocalPIN)( CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pUserPin, // или pOldLocalPin CK_ULONG ulUserPinLen, // или pOldLocalPinLen CK_UTF8CHAR_PTR pNewLocalPin, CK_ULONG ulNewLocalPinLen, CK_ULONG ulLocalID ); |
Параметры
slotID | [in] | идентификатор слота, к которому подключен токен |
pUserPin или pOldLocalPin | [in] | указатель на текущий PIN-код Пользователя или на текущий локальный PIN-код |
ulUserPinLen или pOldLocalPinLen | [in] | длина текущего PIN-кода Пользователя или длина текущего локального PIN-кода |
pNewLocalPin | [in] | указатель на новый Локальный PIN-код |
ulNewLocalPinLen | [in] | длина нового Локального PIN-кода |
ulLocalID | [in] | идентификатор Локального PIN-кода |
...