Функция CryptXmlSign (cryptxml.h)
Функция CryptXmlSign создает криптографическую подпись элемента SignedInfo .
Синтаксис
HRESULT CryptXmlSign(
[in] HCRYPTXML hSignature,
[in, optional] HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hKey,
DWORD dwKeySpec,
DWORD dwFlags,
CRYPT_XML_KEYINFO_SPEC dwKeyInfoSpec,
[in, optional] const void *pvKeyInfoSpec,
[in] const CRYPT_XML_ALGORITHM *pSignatureMethod,
[in] const CRYPT_XML_ALGORITHM *pCanonicalization
);
Параметры
[in] hSignature
Дескриптор структуры CRYPT_XML_SIGNATURE .
[in, optional] hKey
Дескриптор закрытого ключа , используемого для подписывания элемента SignedInfo . Этот параметр должен иметь значение NULL для алгоритмов подписи на основе HMAC.
dwKeySpec
Значение DWORD , указывающее тип ключа. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Пара ключей — это пара обмена ключами. |
|
Пара ключей является парой подписей. |
|
Ключ — это api шифрования: ключ следующего поколения (CNG). |
dwFlags
Значение DWORD , определяющее способ подписи данных. Этот параметр может принимать одно из указанных ниже значений.
dwKeyInfoSpec
Тип структуры данных, на которую указывает параметр pvKeyInfoSpec . Ниже приведены некоторые возможные сочетания.
dwKeyInfec | pvKeyInfoSpec |
---|---|
CRYPT_XML_KEYINFO_SPEC_NONE | Задано значение NULL |
CRYPT_XML_KEYINFO_SPEC_ENCODED | Указывает на структуру CRYPT_XML_BLOB |
CRYPT_XML_KEYINFO_SPEC_PARAM | Указывает на структуру CRYPT_XML_KEYINFO_PARAM |
[in, optional] pvKeyInfoSpec
Указатель на структуру, тип которой определяется значением параметра dwKeyInfoSpec .
[in] pSignatureMethod
Указатель на структуру CRYPT_XML_ALGORITHM , задающую метод сигнатуры.
[in] pCanonicalization
Указатель на структуру CRYPT_XML_ALGORITHM , задающую метод канонизации.
Возвращаемое значение
Если функция выполнена успешно, функция возвращает ноль.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку.
Комментарии
Если сертификат не найден, CryptXmlSign создаст пользовательский интерфейс для выбора сертификата. Если это окно создается из процесса, запущенного в сеансе 0, приложение может неожиданно завершить работу.
Требования
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | cryptxml.h |
Библиотека | Cryptxml.lib |
DLL | Cryptxml.dll |