CryptoAPI:如何使用 CryptVerifySignature 验证来自 OpenSSL 或 Java 的 DSA 签名
我希望能够使用 Microsoft CryptoAPI 验证 OpenSSL 生成的 DSA 签名。
假设您有以下输入:
- 现有的 DSA 公钥:
- 要验证的数据
- 二进制签名
签名已从 Base64 转换为一系列 48 字节。
I would like to be able to verify an OpenSSL-generated DSA signature using the Microsoft CryptoAPI.
Consider that you have the following inputs:
- an existing DSA public key:
- the data to be verified
- a binary signature
The signature has already been converted from Base64 into a series of 48 bytes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果没有很好地了解 CryptoAPI,这将会困难得多。
主要的障碍是:
以下是我最终如何解决该问题的粗略示例:
Without good knowledge of the CryptoAPI, this is much more difficult that it should be.
The major stumbling blocks were:
Here's a rough sample of how I finally solved the problem:
请注意,Microsoft 的加密 API 不支持大于 1024 的 DSA 密钥长度。CryptImportPublicKeyInfo() 将失败并显示 NTE_BAD_DATA。
Just a note, Microsoft's crypto API doesn't support DSA key lengths greater than 1024. CryptImportPublicKeyInfo() will fail with NTE_BAD_DATA.