可视化我们如何在C++和Windows API中验证openssl数字签名

visual How we can verify openssl digital signature in C++ & windows API

本文关键字:API 验证 openssl 数字签名 Windows 我们 C++ 可视化      更新时间:2023-10-16

使用openssl我在服务器上创建了签名文档,请参考下面的命令。

------创建私钥

openssl pkcs12 -in "D:Cummins IssuesXML  Encryptionmycredentialsandkey2010.pfx"  -nodes -nocerts -out "D:privatekey.pem" -nodes

------创建公钥

openssl rsa -in "D:privatekey.pem" -pubout -out "D:rsapublickey.pem"

------创建签名文档。

openssl dgst -sha1 -sign "D:privatekey.pem" -out "D:ProductInformation_xml.cipher" "D:ProductInformation.xml"

现在我可以使用opensll验证数字签名,如下所示

——验证

openssl dgst -sha1 -verify "D:rsapublickey.pem" -signature "D:ProductInformation_xml.cipher" "D:ProductInformation.xml"

但是我需要使用c++验证数字签名&客户端应用程序中的Windows API(没有openssl库或源代码)。我知道使用公钥&哈希我们可以验证数字签名。请尽快提供伪代码或windows API给我。

为什么不能使用libssl?这是一条显而易见的路线。算法本身是RSA和SHA1,尽管你真的不应该尝试自己的算法。

google搜索"microsoft ssl library",得到的只是大量的漏洞。不,真的!

来自Microsoft的CryptoAPI将允许您签名和验证数据。

你应该注意到微软已经从Windows vista开始引入了CNG。所以评估一下你的需求。

您可以使用CryptoAPI从MSDN找到签名和验证的示例源代码