digital-signature - CryptQueryObject 的 CNG 替代品

标签 digital-signature cng

我有兴趣尝试从数字签名中读取字段。我有调用 CryptQueryObject 的代码,然后是 CryptMsgGetParam 来获取一些字段,最后是 CertFindCertificateInStore 来加载证书。

有关如何使用下一代加密技术 API 执行此操作的任何提示?微软告诉我 CryptQueryObject 已被弃用,但并没有指向它的替代品。

最佳答案

CryptDecodeObject[Ex]未标记为已弃用。只是在说'。

您可以通过调用 CryptDecodeObjectEx 来模拟检测 blob 类型的逻辑。在具有不同对象类型的循环中查看哪个不会出错。

也就是说,如果你使用 CryptQueryObject解析 一个文件/数据块(而不是检测它的类型),并且您很清楚那是什么,查看 https://docs.microsoft.com/en-us/windows/win32/seccrypto/constants-for-cryptencodeobject-and-cryptdecodeobject 下的数据块是否有主题类型常量。

通常,处理 ASN.1 数据结构(证书、CSR、CRL 等)的 CryptoAPI 函数不会被弃用,并且在 CNG API 中没有对应物。也许这个被错误地标记为已弃用。

关于digital-signature - CryptQueryObject 的 CNG 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48198741/

相关文章:

c++ - 使用 SHA-512 为哈希在 CMS 中创建分离签名

ssl - 如何验证 RSA 签名的 ECDHE 公钥?

c# - 如何为 ECDiffieHellmanCng 导出私钥

c++ - CNG:何时使用 BCrypt* 与 NCrypt* 系列函数

windows - Signtool.exe 成功,但向文件添加了零个签名

php - 带有 PHP 和 Laravel 的数字签名 PDF 文件

java - 使用 IBM SDK 6.0 生成 XML 签名

java - 使用远程 Applet 设备进行 XML 签名

c# - 从其他地方导入公钥到 CngKey?

windows - Windows 中关键容器存储文件的 GUID 后缀是什么?