

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# NCryptSignHash 使用密钥存储提供商 (KSP)
<a name="ksp-library-apis-sign-hash"></a>

`NCryptSignHash` 函数创建哈希值的签名。

## 参数
<a name="ksp-library-apis-sign-hash-parameters"></a>

 `hKey` [in]   
 用于对哈希进行签名的密钥的句柄。

`pPaddingInfo` [in, optional]  
指向包含填充信息的结构的指针。结构类型取决于 `dwFlags` 值。仅对非对称密钥使用此参数；对于其他密钥类型，请设置为 NULL。

`pbHashValue` [in]  
指向包含待签名哈希值的缓冲区的指针。使用 `cbHashValue` 指定缓冲区大小。

`cbHashValue` [in]  
待签名 `pbHashValue` 缓冲区的大小，以字节为单位。

`pbSignature` [out]  
用于存储签名的缓冲区的地址。使用 `cbSignature` 指定缓冲区大小。  
要确定所需的缓冲区大小，请将此参数设置为 NULL。该函数将所需的大小（以字节为单位）存储在 `pcbResult` 所指向的位置。

`cbSignature` [in]  
`pbSignature` 缓冲区的大小，以字节为单位。如果 `pbSignature` 为 NULL，则该函数将忽略此参数。

`pcbResult` [out]  
指向 DWORD 变量的指针，该变量存储复制到 `pbSignature` 缓冲区的字节数。  
如果 `pbSignature` 为 NULL，则存储所需的缓冲区大小，以字节为单位。

`dwFlags` [in]  
用于修改函数行为的标志。允许的标志取决于您的密钥类型。使用以下值之一：    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/cloudhsm/latest/userguide/ksp-library-apis-sign-hash.html)

## 返回值
<a name="ksp-library-apis-sign-hash-return-value"></a>

该函数返回一个状态代码，指示成功或失败。

常见的返回代码包括：


****  

| 返回代码 | 说明 | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  操作已成功完成。  | 
|  NTE\$1INVALID\$1PARAMETER  |  一个或多个参数无效。  | 
|  NTE\$1FAIL  |  操作无法完成。  | 
|  NTE\$1INVALID\$1HANDLE  |  `hKey` 中的句柄无效。  | 
|  NTE\$1BAD\$1FLAGS  |  `dwFlags` 参数包含无效值。  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  `pcbOutput` 参数对于返回值来说太小。  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  密钥状态无效。  | 
|  NTE\$1INTERNAL\$1ERROR  |  对哈希进行签名时发生内部错误。  | 