我有兴趣尝试从数字签名中读取字段。我有代码调用CryptQueryObject,然后CryptMsgGetParam来获取一些字段,最后是CertFindCertificateInStore来加载证书。
有关如何使用下一代加密API进行此操作的任何提示?微软告诉我CryptQueryObject已被弃用,但并未指出它的替代品。
答案 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中没有对应的函数。也许这被标记为不赞成使用。