日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

windowsAPI验证上下级证书关系

發(fā)布時間:2025/3/20 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windowsAPI验证上下级证书关系 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

現(xiàn)象:

調(diào)用CertCreateCertificateContext解析Base64格式證書時報“0x8009310b?ASN1?遇到了不確的標記值

分析:

windows不支持Base64編碼只支持Der編碼

解決方案:

Base64證書先解碼,然后使用

?

//使用根證書對用戶證書進行驗證,確認是自己頒發(fā)的 extern "C" int __stdcall VerifyUserCert( char* CspName, byte* UserCertInfo/*DER編碼*/, int nUserCertInfoSize, byte* RootCertInfo/*DER編碼*/, int nRootCertInfo ) { int nRet = 0; int nErrCode = 0; PCCERT_CONTEXT pCertContextRoot = NULL;//連接CSP HCRYPTPROV hCryptProv = NULL; if(!CryptAcquireContextA( &hCryptProv, NULL, CspName, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT )) { nErrCode = GetLastError(); return 71; } //創(chuàng)建證書上下文 pCertContextRoot = CertCreateCertificateContext(X509_ASN_ENCODING, RootCertInfo, nRootCertInfo); if (pCertContextRoot == NULL) { nErrCode = GetLastError();//0x8009310b 應該是證書的編碼錯了,不支持Base64編碼只支持Der編碼 return 92;//92 創(chuàng)建證書上下文失敗 }//使用根公鑰對用戶證書驗簽 if (!CryptVerifyCertificateSignature( hCryptProv, X509_ASN_ENCODING, UserCertInfo, nUserCertInfoSize, &(pCertContextRoot->pCertInfo->SubjectPublicKeyInfo))) //CA證書公鑰 { nErrCode = GetLastError(); return 93;//93 驗證證書簽名失敗 }return 0; }


總結(jié)

以上是生活随笔為你收集整理的windowsAPI验证上下级证书关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。