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 元素进行签名的私钥的句柄。 对于基于 HMAC 的签名算法,此参数必须为 NULL 。
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 将创建用于选择证书的 UI。 如果此窗口是从 会话 0 中运行的进程生成的,则应用程序可能会意外终止。
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | cryptxml.h |
Library | Cryptxml.lib |
DLL | Cryptxml.dll |