我对尝试从数字签名中读取字段感兴趣。我有调用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中没有对应的函数。也许这被标记为不赞成使用。