Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция CryptSignCertificate подписывает сведения о подписании в закодированном подписанном содержимом.
Синтаксис
BOOL CryptSignCertificate(
[in] BCRYPT_KEY_HANDLE hBCryptKey,
[in] DWORD dwKeySpec,
[in] DWORD dwCertEncodingType,
[in] const BYTE *pbEncodedToBeSigned,
[in] DWORD cbEncodedToBeSigned,
[in] PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
[in] const void *pvHashAuxInfo,
[out] BYTE *pbSignature,
[in, out] DWORD *pcbSignature
);
Параметры
[in] hBCryptKey
Дескриптор CSP , который выполняет подпись. Этот дескриптор должен быть дескриптором HCRYPTPROV , который был создан с помощью функции CryptAcquireContext , или дескриптором NCRYPT_KEY_HANDLE , созданным с помощью функции NCryptOpenKey . Новые приложения всегда должны передавать дескриптор NCRYPT_KEY_HANDLE CSP CNG.
[in] dwKeySpec
Определяет закрытый ключ для использования из контейнера поставщика. Это может быть AT_KEYEXCHANGE или AT_SIGNATURE. Этот параметр игнорируется, если в параметре hCryptProvOrNCryptKey используется NCRYPT_KEY_HANDLE.
[in] dwCertEncodingType
Указывает используемый тип кодирования. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
В настоящее время определены следующие типы кодирования:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbEncodedToBeSigned
Указатель на закодированное содержимое для подписи.
[in] cbEncodedToBeSigned
Размер закодированного содержимого pbEncodedToBeSigned в байтах.
[in] pSignatureAlgorithm
Указатель на структуру CRYPT_ALGORITHM_IDENTIFIER с элементом pszObjId , равным одному из следующих элементов:
- szOID_RSA_MD5RSA
- szOID_RSA_SHA1RSA
- szOID_X957_SHA1DSA
- szOID_RSA_SSA_PSS
- szOID_ECDSA_SPECIFIED
[in] pvHashAuxInfo
В настоящий момент не используется. Должно иметь значение NULL.
[out] pbSignature
Указатель на буфер для получения хэша со знаком содержимого.
Этот параметр может иметь значение NULL , чтобы задать размер этих сведений для целей выделения памяти. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.
[in, out] pcbSignature
Указатель на DWORD , содержащий размер (в байтах) буфера, на который указывает параметр pbSignature . При возврате функции параметр DWORD содержит количество байтов, хранящихся или хранимых в буфере.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение не равно нулю (TRUE).
Если функция завершается ошибкой, возвращаемое значение равно нулю (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
| Код возврата | Описание |
|---|---|
|
Если буфер, заданный параметром pbSignature , недостаточно велик для хранения возвращаемых данных, функция задает код ERROR_MORE_DATA и сохраняет требуемый размер буфера в байтах в переменной, на которую указывает pcbSignature. |
|
Идентификатор объекта (OID) алгоритма подписи не сопоставляет с известным или поддерживаемым хэш-алгоритмом. |
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows XP [только классические приложения] |
| Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
| Целевая платформа | Windows |
| Header | wincrypt.h |
| Библиотека | Crypt32.lib |
| DLL | Crypt32.dll |