In case anyone is looking for an answer to this question, i am posting how i could do it, incase it is useful
static PCCERT_CONTEXT
FindCertificate(
const HCERTSTORE hStore,
const char* CertSearchString)
{
PCCERT_CONTEXT capiCertificate = NULL;
DWORD dType = CERT_X500_NAME_STR | CERT_NAME_STR_REVERSE_FLAG;
char certname [MAX_SIZE_CERT_NAME] = {0};
for(;;)
{
capiCertificate = CertEnumCertificatesInStore(hStore, capiCertificate);
if (NULL == capiCertificate)
{
break;
}
if (FALSE ==
CertGetNameStringA(capiCertificate, CERT_NAME_RDN_TYPE,
0, &dType, certname, MAX_SIZE_CERT_NAME))
{
CertFreeCertificateContext(capiCertificate);
capiCertificate = NULL;
break;
}
if ((0 == strncmp(certname, CertSearchString, MAX_SIZE_CERT_NAME)) &&
(capiCertificate->dwCertEncodingType == X509_ASN_ENCODING))
{
break;
}
}
return capiCertificate;
}