一段 CryptAPI 取得 证书序列号 的代码

CryptAPI 取得 证书序列号 的操作

 

cheungmine

 

通过Win32 CryptAPI查找个人证书库(MY)中的指定的证书的序列号。显示之。证书的序列号经过处理,和IE中显示的一样(只是人为地去掉了空格)。

 

 

==========================

如下代码调用:

------------------------------------------------------------------------------------------------------------

    HCERTSTORE hStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 
                                                   PKCS_7_ASN_ENCODING|X509_ASN_ENCODING,
                                                   0,
                                                   CERT_SYSTEM_STORE_CURRENT_USER,
                                                   L"MY");
    if (hStore==NULL){
        throw "Fail to open my cert store";

    }
  
    // 要查找的证书
    char  szBuf[512];
    szBuf[511]=0;
  
    BOOL  bRet;
    DWORD cbSize;
    
    PCCERT_CONTEXT  hCert = 0;
   
    char SerialNumber[48]; // 必须是48

  

    while((hCert=CertEnumCertificatesInStore(hStore, hCert)) != NULL){
        // 发行者名称

        cbSize = CertGetNameString(hCert,

                                   CERT_NAME_SIMPLE_DISPLAY_TYPE, 

                                   CERT_NAME_ISSUER_FLAG,

                                   0,

                                   szBuf,

                                   128);
     

         // 取出序列号
         if (!parseX509CertSerialNumber(hCert, SerialNumber)){
               bRet = CertCloseStore(hStore, 0);
               throw "Fail to get serial number";
         }

 

         // SerialNumber存放了你想要的序列号,如:

         // ‎"df48a548cef576bb4ae7a726b6938424"

        

         // 做你喜欢的事

         ......

    }

   

    // 关掉这个家伙

    bRet = CertCloseStore(hStore, 0);

------------------------------------------------------------------------------------------------------------

 

补充:很讨厌这套API。真的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车斗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值