Развернуть все
Свернуть все

Функция CadesEnhanceMessage

Функция усовершенствования подписи.

Синтаксис

C/C++
 BOOL CadesEnhanceMessage (
   __in PCADES_ENHANCE_MESSAGE_PARA pEnhancePara,
   __in DWORD dwSignerIndex,
   __in const BYTE *pbSignedBlob,
   __in DWORD cbSignedBlob,
   __out PCRYPT_DATA_BLOB *ppEnhancedBlob
 );

Параметры

pEnhancePara

[in] Указатель на структуру CADES_ENHANCE_MESSAGE_PARA.

dwSignerIndex

[in] Номер обрабатываемой подписи. Для обработки всех подписей сообщения используйте функцию CadesEnhanceMessageAll.

pbSignedBlob

[in] Указатель на буфер, содержащий подписанное сообщение (для совмещённой подписи) или отделённую подпись.

cbSignedBlob

[in] Число байт в массиве pbSignedBlob. В этой структуре возвращается подписанное содержимое сообщения. Структура должна быть освобождена после использования с помощью CadesFreeBlob.

ppEnhancedBlob

[out] Указатель на указатель на структуру CRYPT_DATA_BLOB . В этой структуре возвращается усовершенствованная подпись. Структура должна быть освобождена после использования с помощью CadesFreeBlob.

Возвращаемое значение

TRUE в случае успеха, FALSE в случае неудачи, дополнительную информацию об ошибке можно получить через GetLastError .

Примечания

С помощью данной функции подпись, созданная в формате CAdES BES, может быть дополнена до усовершенствованной подписи CADES-X Long Type 1. Если исходная подпись не соответствует формату CAdES BES, то она не может быть дополнена ни до CAdES BES, ни до CADES-X Long Type 1.

Если поле pEnhancePara->pCadesSignPara->dwCadesType имеет значение CADES_X_LONG_TYPE_1 или поле pEnhancePara->pCadesSignPara равно NULL, то функция добавляет неподписанные атрибуты, необходимые для соответствия CADES-X Long Type 1 (штампы времени на подпись и на доказательства подлинности, ссылки на сертификаты и информацию об отзыве, значения сертификатов, CRL и OCSP ответов, использовавшихся при проверке цепочки). Если dwCadesType имеет значение CADES_BES, функция проверяет подпись на соответствие CAdES BES, без добавления дополнительных атрибутов. Точно так же, если поле dwCadesType имеет значение CADES_X_LONG_TYPE_1 то сначала проверяется, не соответствует ли уже подпись CADES_X_LONG_TYPE_1 (cоответствие определяется по наличию нужных атрибутов), и если соответствует, то функция успешно завершается, не внося никаких изменений.

Данная функция может принимать как целиком подписанное сообщение, так и только отделённую подпись. При этом на выход будет также возвращено целиком подписанное сообщение с усовершенствованной подписью или только отделённая усовершенствованная подпись соответственно.

Замечание

Функция CadesEnhanceMessage не выполняет проверку криптографической подписи. В ряде случаев, когда отсутствует доверие к сообщению, подаваемому на вход, проверку криптографической подписи следует выполнить самостоятельно.
Например подобная необходимость может возникнуть, если процессы подписания и усовершенствования разделены по времени и/или месту.

Требования

Заголовочный файл cades.h
Библиотека cades.dll (Windows), cades.so (Unix)
Библиотека импорта cades.lib (Windows)
Минимальная версия продукта 1.0