Hi

I planned to validate self-signed certificate against Trusted root certificate authorities in windows machine. Initially I used below Wininet API Internetqueryoption to get self signed certificate Issuer or subject, then the same need to be validated against system trusted root certificate authorities. If its there, then i will print certificate found, else certificate is not found.


if you have any other approach, Please let us know

Code:
code snippet
INTERNET_CERTIFICATE_INFO certificateInfo; 
certInfoLength = sizeof(INTERNET_CERTIFICATE_INFO); 
if ( TRUE == InternetQueryOption( hRequest,
INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT,
&certificateInfo,
&certInfoLength) )
{ 
// free up memory with LocalFree()

if ( certificateInfo.lpszEncryptionAlgName )
{
std::cout << (char *) certificateInfo.lpszEncryptionAlgName << std::endl;
LocalFree( certificateInfo.lpszEncryptionAlgName);
}

if ( certificateInfo.lpszIssuerInfo )
{
std::cout << (char *) certificateInfo.lpszIssuerInfo << std::endl;
LocalFree( certificateInfo.lpszIssuerInfo );
}

if ( certificateInfo.lpszProtocolName )
{
std::cout << (char *) certificateInfo.lpszProtocolName << std::endl;
LocalFree( certificateInfo.lpszProtocolName );
}

if ( certificateInfo.lpszSignatureAlgName )
{
std::cout << (char *) certificateInfo.lpszSignatureAlgName << std::endl;
LocalFree( certificateInfo.lpszSignatureAlgName );
}

if ( certificateInfo.lpszSubjectInfo )
{
std::cout << (char *) certificateInfo.lpszSubjectInfo << std::endl;
LocalFree( certificateInfo.lpszSubjectInfo );
}
}

Thanks
Ananth