CryptXmlDllSignData 回调函数 (cryptxml.h)

CryptXmlDllSignData 函数对数据进行签名。

CryptXmlDllSignData 函数通过导出的 CryptXmlDllGetInterface 函数公开。

语法

CryptXmlDllSignData Cryptxmldllsigndata;

HRESULT Cryptxmldllsigndata(
  [in]            const CRYPT_XML_ALGORITHM *pSignatureMethod,
  [in]            HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
  [in]            DWORD dwKeySpec,
  [in]            const BYTE *pbInput,
  [in]            ULONG cbInput,
  [out, optional] BYTE *pbOutput,
  [in]            ULONG cbOutput,
  [out]           ULONG *pcbResult
)
{...}

参数

[in] pSignatureMethod

指向 指定算法的CRYPT_XML_ALGORITHM 结构的指针。

[in] hCryptProvOrNCryptKey

加密服务提供程序的句柄 (创建签名的 CSP) 。 此句柄必须是从调用 CryptAcquireContext 函数或通过使用 NCryptOpenKey 函数创建的NCRYPT_KEY_HANDLE句柄获取的 HCRYPTPROV 句柄。 新应用程序应传入 NCRYPT_KEY_HANDLE 句柄。

[in] dwKeySpec

要从提供程序的容器使用的私钥。 此密钥可以AT_KEYEXCHANGE或AT_SIGNATURE。 如果在 hCryptProvOrNCryptKey 参数中使用NCRYPT_KEY_HANDLE句柄,则忽略此参数。

[in] pbInput

指向包含要签名的摘要值的缓冲区的指针。 cbInput 参数包含此缓冲区的大小。

[in] cbInput

pbInput 参数指向的缓冲区的大小(以字节为单位)。

[out, optional] pbOutput

要接收此函数生成的签名的缓冲区的地址。 cbOutput 参数包含此缓冲区的大小。

如果此参数为 NULL,则此函数将计算加密数据所需的大小,并返回 由印刷电路板Result 参数指向的位置的大小。

[in] cbOutput

pbOutput 参数指向的缓冲区的大小(以字节为单位)。

[out] pcbResult

指向 DWORD 变量的指针,该变量接收复制到 pbOutput 缓冲区的字节数。 如果 pbOutputNULL,则接收签名所需的大小(以字节为单位)。

返回值

如果函数成功,则函数返回零。

如果函数失败,它将返回一个 指示错误的 HRESULT 值。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 cryptxml.h