КриптоПро CAPILite  

CryptSignMessage

Функция CryptSignMessage создает хэш определенного содержания, подписывает хэш и затем производит закодирование и текста исходного сообщения, и подписанного хэша.

WINCRYPT32API BOOL WINAPI CryptSignMessage(
  IN PCRYPT_SIGN_MESSAGE_PARA pSignPara,
  IN BOOL fDetachedSignature,
  IN DWORD cToBeSigned,
  IN const BYTE * rgpbToBeSigned,
  IN DWORD rgcbToBeSigned,
  OUT BYTE * pbSignedBlob,
  IN OUT DWORD * pcbSignedBlob
);

Примечания

При создании электронной подписи при помощи функции CryptSignMessage в создаваемую подпись будут добавлены дополнительные подписанные атрибуты. (см. Особенности создания подписанных CMS сообщений в @cspname ). На добавление атрибутов влияет параметр dwFlags. Параметр dwFlags может содержать дополнительные флаги, определённые в файле WinCryptEx.h:

ФлагОписание
CPCRYPT_MESSAGE_CADES_DISABLE Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_STRICT.
CPCRYPT_MESSAGE_CADES_STRICT Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_DISABLE.

Требования:

AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.

См. также

Высокоуровневые функции обработки криптографических сообщений , CryptVerifyMessageSignature, CryptSignMessage в MS CryptoAPI 2.0 World Wide Web link