2017-09-27 10 views
2
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) 매개 변수가 잘못되었습니다. 누군가 도움을 줄 수 있습니까?CertCreateCertificateChainEngine이 Windows 7에서 오류를 throw합니다.

+0

. 나는 많은 예를 찾고 수색했으나 아무것도 작동하지 않는다. 5 달 전에이 질문을하셨습니다. 그 대답을 아시오, 제발 말해줘요? – QuangNHb

답변

0

이 문제를 이미 해결했기를 바랍니다. 그렇지 않다면 다소 늦은 대답이 있습니다.

인증서 체인을 만드는 데 Microsoft의 example code과 같이 작업 한 것으로 보입니다. 불행히도 오래된 것 같습니다. CERT_CHAIN_ENGINE_CONFIG에 대한 설명서를 살펴보면 Windows 7에서 초기화해야하는 멤버 변수가 두 개 더 있다는 것을 알 수 있습니다 (hExclusiveRoothExclusiveTrustedPeople). 오류를 돌봐 (당신이 그들을 필요하지 않은 경우)

당신은 그들을 NULL로 설정할 수 있습니다 : 난 그냥 같은 문제 우연히

ChainConfig.hExclusiveRoot = NULL; 
ChainConfig.hExclusiveTrustedPeople = NULL; 
+0

나는 창 7을 사용하고 아무것도 작동하지 않는다. 나는 또한 0x80070057를 얻는다. 실천 사례를 작성해 주시겠습니까? – QuangNHb

+0

@QuangNHb 올바른 플랫폼을 타겟팅하도록 프로그램을 설정해야 할 수도 있습니다. 여기에 도움이 될 수있는 몇 가지 답변이 있습니다. [답변 1] (https://stackoverflow.com/questions/34313023/i-get-0x80070057-error-code-on-certcreatecertificatechainengine-func/34480267#34480267), [답변 2] (https://stackoverflow.com/questions/6429251/vs2010-structure-change-in-cryptoapi-v7-0a-vs-v6-0a-wincrypt-h/6549295#6549295) – frslm

+0

@frislm 감사합니다. 내게 대답 해. 컴파일 할 때 Windows 7과 Visual Studio 2015를 사용합니다. Windows XP에서 프로그램을 실행하고 싶지 않습니다. _WIN32_WINNT는 0x0601과 같습니다. – QuangNHb