Функция CryptSignMessageWithKey (wincrypt.h)
Функция CryptSignMessageWithKey подписывает сообщение с помощью закрытого ключа CSP, указанного в параметрах. Создается заполнитель SignerId , который сохраняется в сообщении.
Синтаксис
BOOL CryptSignMessageWithKey(
[in] PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara,
[in] const BYTE *pbToBeSigned,
[in] DWORD cbToBeSigned,
[out] BYTE *pbSignedBlob,
[in, out] DWORD *pcbSignedBlob
);
Параметры
[in] pSignPara
Указатель на структуру CRYPT_KEY_SIGN_MESSAGE_PARA , содержащую параметры сигнатуры.
[in] pbToBeSigned
Указатель на буферный массив, содержащий подписывающее сообщение.
[in] cbToBeSigned
Количество элементов массива в буферном массиве pbToBeSigned .
[out] pbSignedBlob
Указатель на буфер для получения закодированного подписанного сообщения.
Этот параметр может иметь значение NULL , чтобы задать размер этих сведений для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbSignedBlob
Указатель на значение DWORD , указывающее размер буфера pbSignedBlob в байтах. При возврате функции эта переменная содержит размер подписанного и закодированного сообщения в байтах.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE).
Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE).
Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Ниже перечислены коды ошибок, наиболее часто возвращаемые функцией GetLastError .
Код возврата | Описание |
---|---|
|
Если буфер, заданный параметром pbSignedBlob , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbSignedBlob. |
|
Недопустимый тип кодирования сообщений . В настоящее время поддерживается только PKCS_7_ASN_ENCODING. CbSize в *pSignPara является недопустимым. |
|
PSigningCert в *pSignPara не имеет свойства CERT_KEY_PROV_INFO_PROP_ID или CERT_KEY_CONTEXT_PROP_ID. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |