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

以下是该函数的基本语法和说明:
NTSTATUS BCryptVerifySignature(
  BCRYPT_KEY_HANDLE hKey,
  VOID             *pPaddingInfo,
  PUCHAR           pbHash,
  ULONG            cbHash,
  PUCHAR           pbSignature,
  ULONG            cbSignature,
  ULONG            dwFlags
);

参数说明:

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

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

  •  pbHash:指向用于签名的哈希值的缓冲区的指针。

  •  cbHash:哈希值的大小,以字节为单位。

  •  pbSignature:指向要验证的签名的缓冲区的指针。

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

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

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

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

请注意,hKey 必须是一个公钥。签名的算法和填充方式与密钥的算法和填充方式相对应。

如果验证成功,表示签名有效,否则表示签名无效。调用方需要确保提供正确的密钥和签名数据。




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