小编Sre*_*nth的帖子

需要帮助以使用CertFindCertificateInStore()按主题名称(X500格式,CERT_X500_NAME_STR)查找证书?

客户端应用程序必须从Windows证书存储区访问证书.搜索输入是X500字符串格式的主题名称,如下所示.

"C=CH, S=Aargau, L=Baden, O=Test, OU=FF, CN= Test Root"
Run Code Online (Sandbox Code Playgroud)

需要完全匹配(不使用CERT_FIND_SUBJECT_STR进行子字符串匹配).为此我做了以下几点

CERT_NAME_BLOB subjectname = {0};

/*convert the input X500 string to encoded subject name*/
bRet = CertStrToNameA(X509_ASN_ENCODING, "C=CH, S=Aargau, L=Baden, O=Test, OU=S1, CN= Test Root", CERT_X500_NAME_STR, NULL, NULL, &size, NULL);
  if(TRUE == bRet)
  {
     subjectname.pbData  = (BYTE*)malloc(size);
     subjectname.cbData = size;

     bRet = CertStrToNameA(X509_ASN_ENCODING , "C=CH, S=Aargau, L=Baden, O=Test, OU=S1, CN=Test Root", CERT_X500_NAME_STR, NULL, subjectname.pbData, &subjectname.cbData, NULL);
     if(TRUE == bRet)
     {
          capiCertificate = CertFindCertificateInStore(hStore, X509_ASN_ENCODING, 0, CERT_FIND_SUBJECT_NAME, &subjectname, NULL);
         if (NULL == …
Run Code Online (Sandbox Code Playgroud)

windows certificate cryptoapi

6
推荐指数
1
解决办法
3207
查看次数

标签 统计

certificate ×1

cryptoapi ×1

windows ×1