CNG替换CryptQueryObject

时间:2018-01-11 01:52:03

标签: digital-signature cng

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

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

1 个答案:

答案 0 :(得分:0)

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中没有对应的函数。也许这被标记为不赞成使用。