c++ - 我们如何在 C++ 和 Windows API 中验证 openssl 数字签名

标签 c++ visual-c++ digital-signature cryptoapi

我使用 openssl 在服务器上创建了签名文档, 请引用以下命令。

------创建私钥。

openssl pkcs12 -in "D:\Cummins Issues\XML  Encryption\mycredentialsandkey2010.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"

现在我可以像下面这样使用 opensl 验证数字签名

---验证

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

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

感谢任何帮助。

最佳答案

为什么不能用libssl?这是明显的下降路线。算法本身是 RSASHA1尽管您真的不应该尝试自己动手。

在谷歌上搜索“microsoft ssl library”只会发现大量漏洞。不,真的!

关于c++ - 我们如何在 C++ 和 Windows API 中验证 openssl 数字签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760778/

相关文章:

c++ - 从 C++ 使用 USB 端口

c++ - C++ 中的浮点加法是否可能发生下溢?

c++ - 接受任何类型的 STL 容器并使用其值类型

c++ - 从 DLL 创建和导出 C++ 单例类

C++ 为什么这行得通

java - XAdES4j 签名验证 - URI 问题

c++ 从 'float' 到 'int32' 的转换,可能丢失数据

c++ - 我应该在公共(public)接口(interface)的结构中将相关参数分组吗?

jsf - p :signature 的较小显示

c# - 代码签名不再有效