pkcs7Sign
¶pkcs7Sign
(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLength, CK_OBJECT_HANDLE hSignCertificate, CK_BYTE_PTR_PTR pEnvelope, CK_ULONG_PTR oulEnvelopeSize, CK_OBJECT_HANDLE hPrivateKey, CK_OBJECT_HANDLE_PTR phCertificates, CK_ULONG ulCertificatesCount, CK_FLAGS flags)¶Параметры: |
|
---|
Поле flags
принимает следующие флаги:
PKCS7_DETACHED_SIGNATURE
– если этот флаг установлен, то исходные данные не сохраняются вместе с подписью
(отсоединенная подпись). В обратном случае исходные данные сохраняются вместе с подписью (присоединенная подпись).PKCS7_HARDWARE_HASH1
– если этот флаг установлен, то хэширование будет осуществляться аппаратно устройством
eToken ГОСТ или JaCarta ГОСТ. В обратном случае хэширование будет осуществляться программно.Функция pkcs7Sign
используется для подписи объектов данных в формате, определённом стандартом PKCS #7 версии 1.5.
Сертификат, используемый при формировании подписи, должен располагаться в памяти устройства.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
pkcs7SignEx
¶pkcs7SignEx
(CK_SESSION_HANDLE session, CK_BYTE_PTR data, CK_ULONG dataLength, CK_BYTE_PTR signCertificate, CK_ULONG signCertificateLength, CK_BYTE_PTR* envelope, CK_ULONG_PTR envelopeLength, CK_OBJECT_HANDLE privateKey, CK_OBJECT_HANDLE_PTR certificates, CK_ULONG certificatesLength, CK_ULONG flags)¶Параметры: |
|
---|
Поле flags
принимает следующие флаги:
PKCS7_DETACHED_SIGNATURE
– если этот флаг установлен, то исходные данные не сохраняются вместе с подписью
(отсоединенная подпись). В обратном случае исходные данные сохраняются вместе с подписью (присоединенная подпись).PKCS7_HARDWARE_HASH1
– если этот флаг установлен, то хэширование будет осуществляться аппаратно устройством
eToken ГОСТ или JaCarta ГОСТ. В обратном случае хэширование будет осуществляться программно.Функция pkcs7SignEx
используется для подписи объектов данных в формате, определённом стандартом PKCS #7 версии 1.5 с расширенным набором параметров. В отличие от функции pkcs7Sign
, сертификат должен быть указан явно, а параметр privateKey
не должен
принимать значение 0
.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
pkcs7Verify
¶pkcs7Verify
(CK_BYTE_PTR pEnvelope, CK_ULONG ulEnvelopeSize, CK_BYTE_PTR pData, CK_ULONG ulDataSize)¶Параметры: |
|
---|
Функция pkcs7Verify
используется для проверки ЭП в сообщениях, формат которых
соответствует стандарту PKCS #7. Возвращаемое значение определяет результат проверки:
CKR_OK
– подпись действительна,CKR_SIGNATURE_INVALID
– подпись недействительна.Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
pkcs7VerifyHW
¶pkcs7VerifyHW
(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEnvelope, CK_ULONG pEnvelopeSize, CK_BYTE_PTR pData, CK_ULONG pDataSize, CK_FLAGS flags)¶Параметры: |
|
---|
Проверка подписи в PKCS#7 сообщении типа signed data
. Используется аппаратная реализация проверки подписи.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
pkcs7TrustedVerifyHW
¶pkcs7TrustedVerifyHW
(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEnvelope, CK_ULONG pEnvelopeSize, CK_BYTE_PTR pData, CK_ULONG pDataSize, CK_BYTE_PTR pTrustedSigner, CK_ULONG pTrustedSignerSize, CK_FLAGS flags)¶Параметры: |
|
---|
Проверка подписи в PKCS#7 сообщении типа signed data
с дополнительной проверкой на доверие к сертификату
подписанта. Используется аппаратная реализация проверки подписи.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
pkcs7Parse
¶pkcs7Parse
(CK_BYTE_PTR pEnvelope, CK_ULONG ulEnvelopeSize, CK_BYTE_PTR* pSignerCertificate, CK_ULONG_PTR pulSignerCertificate, CK_BYTE_PTR* pAttachedData, CK_ULONG_PTR ulAttachedDataSize)¶Параметры: |
|
---|
Извлечение данных и сертификата подписанта из PKCS #7 контейнера.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
pkcs7ParseEx
¶pkcs7ParseEx
(CK_BYTE_PTR pEnvelope, CK_ULONG ulEnvelopeSize, CK_BYTE_PTR* ppSignerCert, CK_ULONG_PTR pulSignerCertLen, CK_BYTE_PTR* ppAttachedData, CK_ULONG_PTR pulAttachedDataLength, CK_BYTE_PTR* ppSignature, CK_ULONG_PTR pulSignatureLength)¶Параметры: |
|
---|
Извлечение данных, подписи и сертификата подписанта из PKCS#7 контейнера.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
createCSR
¶createCSR
(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE publicKey, CK_CHAR_PTR* dn, CK_ULONG dnLength, CK_BYTE_PTR* csr, CK_ULONG_PTR csrLength, CK_OBJECT_HANDLE privateKey, CK_CHAR_PTR* attributes, CK_ULONG attributesLength, CK_CHAR_PTR* extensions, CK_ULONG extensionsLength)¶Параметры: |
|
---|
Функция формирует запрос на выпуск сертификата в формате PKCS #10.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
Пример использования
Пример запроса на выпуск сетификата на языке C:
// дескриптор сессии
CK_SESSION_HANDLE session = 0;
// дескриптор открытого ключа
CK_OBJECT_HANDLE publicKey;
// distinguished name для запроса на сертификат
CK_CHAR_PTR dn[] =
{
(CK_CHAR_PTR)"CN",
(CK_CHAR_PTR)"Ivan Ivanov",
(CK_CHAR_PTR)"C",
(CK_CHAR_PTR)"RU"
};
// extensions для запроса на сертификат
CK_CHAR_PTR exts[] =
{
//(CK_CHAR_PTR)"1.2.3.5",
//(CK_CHAR_PTR)"DER:01020304",
//(CK_CHAR_PTR)"2.5.29.16",
//(CK_CHAR_PTR)"ASN1:SEQUENCE:privateKeyUsagePeriod\n[privateKeyUsagePeriod]\nnotAfter=IMPLICIT:1,GENERALIZEDTIME:20150101000000Z",
//(CK_CHAR_PTR)"subjectKeyIdentifier",
//(CK_CHAR_PTR)"1234567890abcdef",
//(CK_CHAR_PTR)"1.2.3.4",
//(CK_CHAR_PTR)"ASN1:IA5STRING:This is a string",
(CK_CHAR_PTR)"keyUsage",
(CK_CHAR_PTR)"digitalSignature,keyEncipherment"
};
// запрос на сертификат
CK_BYTE_PTR csr = NULL;
CK_ULONG csrLength = 0;
rv = createCSR(session, publicKey, dn, sizeof(dn)/sizeof(CK_CHAR_PTR), &csr, &csrLength, 0, NULL, 0, exts, sizeof(exts)/sizeof(CK_CHAR_PTR));
if (rv != CKR_OK)
{
PrintError("createCSR", rv);
return;
}
printf("Create CSR: OK\n");
createCSREx
¶createCSREx
(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE publicKey, CK_CHAR_PTR* dn, CK_ULONG dnLength, CK_BYTE_PTR* csr, CK_ULONG_PTR csrLength, CK_OBJECT_HANDLE privateKey, CK_CHAR_PTR* attributes, CK_ULONG attributesLength, CK_CHAR_PTR* extensions, CK_ULONG extensionsLength, CK_MECHANISM_PTR signatureMech)¶Параметры: |
|
---|
Расширенный вариант функции createCSR()
. Формирует запрос на выпуск сертификата.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
JC_CreateCertificateRequest
¶JC_CreateCertificateRequest
(CK_FUNCTION_LIST_PTR pFunctionList, CK_SESSION_HANDLE session, CK_OBJECT_HANDLE publicKey, CK_CHAR_PTR* dn, CK_ULONG dnLength, CK_BYTE_PTR* csr, CK_ULONG_PTR csrLength, CK_OBJECT_HANDLE privateKey, CK_CHAR_PTR* attributes, CK_ULONG attributesLength, CK_CHAR_PTR* extensions, CK_ULONG extensionsLength, CK_MECHANISM_PTR signatureMech)¶Параметры: |
|
---|
Расширенное формирование запроса на сертификат при помощи сторонних реализаций PKCS#11.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
verifyReq
¶verifyReq
(CK_BYTE_PTR pRequest, CK_ULONG ulRequestSize)¶Параметры: |
|
---|
Функция позволяет проверить подпись в запросе на сертификат в формате PKCS #10. Возвращаемое значение определяет результат проверки:
CKR_OK
– подпись действительна,CKR_SIGNATURE_INVALID
– подпись недействительна.Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
verifyReqEx
¶verifyReqEx
(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE publicKey, CK_BYTE_PTR csr, CK_ULONG csrLength, CK_MECHANISM_PTR mech)¶Параметры: |
|
---|
Расширенный вариант функции verifyReq()
. Позволяет проверить подпись в запросе на сертификат. Возвращаемое
значение определяет результат проверки:
CKR_OK
– подпись действительна,CKR_SIGNATURE_INVALID
– подпись недействительна.Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
genCert
¶genCert
(CK_SESSION_HANDLE session, CK_BYTE_PTR csr, CK_ULONG csrLength, CK_OBJECT_HANDLE privateKey, CK_CHAR_PTR serial, CK_CHAR_PTR* issuerDN, CK_ULONG issuerDNLength, CK_ULONG days, CK_BYTE_PTR* certificate, CK_ULONG_PTR certificateLength)¶Параметры: |
|
---|
Функция создает сертификат из запроса на сертификат в формате PKCS #10.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
genCertEx
¶genCertEx
(CK_SESSION_HANDLE session, CK_BYTE_PTR csr, CK_ULONG csrLength, CK_OBJECT_HANDLE privateKey, CK_OBJECT_HANDLE publicKey, CK_CHAR_PTR serial, CK_CHAR_PTR* issuerDN, CK_ULONG issuerDNLength, CK_ULONG days, CK_BYTE_PTR* certificate, CK_ULONG_PTR certificateLength, CK_MECHANISM_PTR mech)¶Параметры: |
|
---|
Расширенный вариант функции genCert()
. Позволяет создать сертификат из запроса на сертификат.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
certVerify
¶certVerify
(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE certificateToVerify, CK_OBJECT_HANDLE_PTR trustedCertificates, CK_ULONG trustedCertificatesLength, CK_OBJECT_HANDLE_PTR certificateChain, CK_ULONG certificateChainLength, CK_BYTE_PTR* crls, CK_ULONG_PTR crlsLengths, CK_ULONG crlsLength)¶Параметры: |
|
---|
Функция используется для проверки подписи сертификатов формата X.509 по всей цепочке сертификации.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
getCertificateInfo
¶getCertificateInfo
(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE certificate, CK_CHAR_PTR* certificateInfo, CK_ULONG* certificateInfoLength)¶Параметры: |
|
---|
Функция используется для получения сведений о сертификате, записанном на токен, и возвращает эти данные в текстовом формате.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
getCertificateInfoEx
¶getCertificateInfoEx
(CK_BYTE_PTR certificate, CK_ULONG certificateLength, CK_CHAR_PTR* certificateInfo, CK_ULONG* certificateInfoLength)¶Параметры: |
|
---|
Функция используется для получения сведений о сертификате. В отличие от
функции getCertificateInfo
сертификат не определяется дескриптором, а задаётся явно в виде массива байт. Результат возвращается в текстовом формате.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
getCertificateAttribute
¶getCertificateAttribute
(CK_BYTE_PTR pX509data, CK_ULONG ulX509dataSize, JC_EX_X509_DATA_TYPE dataType, CK_BYTE_PTR* pOutputdata, CK_ULONG_PTR pulOutputdataSize)¶Параметры: |
|
---|
Получить параметры сертификата.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
checkCertSignature
¶checkCertSignature
(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pCertificate, CK_ULONG ulCertificateSize, CK_BYTE_PTR pTrustedSignerCertificate, CK_ULONG ulTrustedSignerCertificateSize)¶Параметры: |
|
---|
Проверка подписи в сертификате на соответствие ключу его подписанта. Проверка подписи выполняется аппаратно.
Хеширование выполняется аппаратно, если была вызвана функция useHardwareHash(CK_TRUE)
.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
JC_Compose_CMS
¶JC_Compose_CMS
(JC_CMS_MATERIAL_PTR CMSmaterial, CK_BYTE_PTR_PTR cmsMessage, CK_ULONG_PTR cmsMessageSize)¶Параметры: |
|
---|
Формирует CMS сообщение.
Примечание
Функция предназначена только для работы с алгоритмами ГОСТ.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
JC_Decompose_CMS
¶JC_Decompose_CMS
(CK_BYTE_PTR cms, CK_ULONG cmsSize, JC_CMS_CONTAINER_PTR* ppCMScontainer)¶Параметры: |
|
---|
Разбирает CMS сообщение.
Примечание
Функция предназначена только для работы с алгоритмами ГОСТ.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
JC_KeyParametersFromCert
¶JC_KeyParametersFromCert
(CK_BYTE_PTR certificate, CK_ULONG certificateSize, JC_CERTIFICATE_MATERIAL_PTR* certificateMaterial, CK_ULONG_PTR certificateMaterialSize)¶Параметры: |
|
---|
Получить публичный ключ и параметры из X509 сертификата.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
JC_CreateCertificateRenewal
¶JC_CreateCertificateRenewal
(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hOldPrivateKey, CK_OBJECT_HANDLE hOldCertificate, CK_OBJECT_HANDLE hNewPrivateKey, CK_UTF8CHAR_PTR_PTR ppAttributes, CK_ULONG ulAttributesLen, CK_BYTE_PTR_PTR ppCMC, CK_ULONG_PTR pulCMCSize)¶Параметры: |
|
---|
Создает запрос на переиздание сертификата в формате CMC. На токене должен присутствовать старый сертификат и новый открытый ключ.
Примечание
Функция предназначена только для работы с алгоритмами ГОСТ.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|
JC_CreateCertificateRenewal2
¶JC_CreateCertificateRenewal2
(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hOldPrivateKey, CK_BYTE_PTR pCertificateBody, CK_ULONG ulCertificateBodySize, CK_OBJECT_HANDLE hNewPrivateKey, CK_UTF8CHAR_PTR_PTR ppAttributes, CK_ULONG ulAttributesLen, CK_BYTE_PTR_PTR ppCMC, CK_ULONG_PTR pulCMCSize)¶Параметры: |
|
---|
Создает запрос на переиздание сертификата в формате CMC. На токене должен присутствовать новый открытый ключ.
Примечание
Функция предназначена только для работы с алгоритмами ГОСТ.
Запускается в режимах
Результат: | Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11. Совет Полный список ошибок см. в приложении. |
---|