BCryptSignHash 函数是 Windows Cryptography API Next Generation (CNG) 中的一个函数,用于对哈希值进行数字签名。它通常与非对称密钥对一起使用,其中私钥用于签名生成,公钥用于验证签名。

以下是该函数的基本语法和说明:
NTSTATUS BCryptSignHash(
  BCRYPT_KEY_HANDLE hKey,
  VOID             *pPaddingInfo,
  PUCHAR           pbInput,
  ULONG            cbInput,
  PUCHAR           pbOutput,
  ULONG            cbOutput,
  ULONG            *pcbResult,
  ULONG            dwFlags
);

参数说明:

  •  hKey:用于签名的密钥的句柄。

  •  pPaddingInfo:一个指向填充信息结构的指针,可以为 NULL。

  •  pbInput:指向要签名的数据的缓冲区的指针。

  •  cbInput:要签名的数据的大小,以字节为单位。

  •  pbOutput:指向接收签名数据的缓冲区的指针。

  •  cbOutput:缓冲区的大小,以字节为单位。

  •  pcbResult:指向一个变量,用于接收实际写入 pbOutput 的字节数。

  •  dwFlags:标志位,可以为零或以下之一:

  - BCRYPT_PAD_PKCS1:使用 PKCS #1 填充。
  - BCRYPT_PAD_PSS:使用 Probabilistic Signature Scheme (PSS) 填充。

函数返回一个 NTSTATUS 类型的值,指示函数是否成功执行。

请注意,hKey 必须是一个私钥。签名的算法和填充方式与密钥的算法和填充方式相对应。调用方需要确保提供足够大的缓冲区以接收签名。




转载请注明出处:http://www.pingtaimeng.com/article/detail/24010/Win32 API/Bcrypt.h/BCryptSignHash