CertCreateCertificateChainEngine在Windows 7中引发了错误


ChainConfig.cbSize = sizeof(CERT_CHAIN_ENGINE_CONFIG);
ChainConfig.hRestrictedRoot = NULL;
ChainConfig.hRestrictedTrust = NULL;  
ChainConfig.hRestrictedOther = NULL;
ChainConfig.cAdditionalStore = 0;  
ChainConfig.rghAdditionalStore = NULL;
ChainConfig.dwFlags = CERT_CHAIN_CACHE_END_CERT;
ChainConfig.dwUrlRetrievalTimeout = 0;
ChainConfig.MaximumCachedCertificates = 0;
ChainConfig.CycleDetectionModulus = 0;
//---------------------------------------------------------
// Create the nondefault certificate chain engine.
if (CertCreateCertificateChainEngine(
        &ChainConfig,
        &hChainEngine)){
        printf("A chain engine has been created.n");}

获取错误0x80070057(-2147024809)参数不正确,有人在这里提供帮助吗?

我希望您已经设法解决了这个问题。如果没有,这是我有点晚答案:

看起来您正在使用Microsoft的示例代码来创建证书链。不幸的是,它似乎已经过时了。如果您检查了CERT_CHAIN_ENGINE_CONFIG的文档,您会发现还有两个成员变量需要在Windows 7,hExclusiveRoothExclusiveTrustedPeople中初始化。

您可以将它们设置为null(如果您不需要)来照顾错误:

ChainConfig.hExclusiveRoot = NULL;
ChainConfig.hExclusiveTrustedPeople = NULL;

相关内容

  • 没有找到相关文章

最新更新