Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

hSession[in]дескриптор сессии

pCms

[in]указатель на байт-массив CK_BYTE, содержащий сообщение в формате PKCS#7 для проверки

ulCmsSize

[in]длина сообщения

pStore

[in]

структура типа CK_VENDOR_X509_STORE, содержащая указатели на необходимые для проверки подписи доверенные сертификаты, цепочку сертификатов сертификаты подписывающей стороны и списки отозванных сертификатов

ckMode

[in]

политика проверки списков отозванных сертификатов (CRLs), может принимать следующие значения:

OPTIONAL_CRL_CHECK – отсутствие соответсвующего соответствующего списка отозванных сертификатов не влияет на верификацию;
LEAF_CRL_CHECK – проверяется актуальность сертификата удостоверяющего центра (центра сертификации, CA) подписывающей стороны;
ALL_CRL_CHECK – проверяется актуальность сертификат каждого удостоверяющего центра из цепочки сертификатов.

flags[in]

переменная типа CK_ULONG, может принимать следующие значения:

CKF_VENDOR_DO_NOT_USE_INTERNAL_CMS_CERTS – не использовать для проверки подписи содержащиеся в CMS сообщении сертификаты;
CKF_VENDOR_ALLOW_PARTIAL_CHAINS – для проверки подписи достаточно, чтобы хотя бы один сертификат удостоверяющего центра из цепочки сертификатов подписывающей стороны находился в списке доверенных.

...

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-кода

...