windowsAPI验证上下级证书关系
来源:互联网 发布:梯形螺纹怎么编程 编辑:程序博客网 时间:2024/06/05 00:49
现象:
调用CertCreateCertificateContext解析Base64格式证书时报“0x8009310b ASN1 遇到了不正确的标记值”
分析:
windows不支持Base64编码只支持Der编码
解决方案:
Base64证书先解码,然后使用
//使用根证书对用户证书进行验证,确认是自己颁发的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; //连接CSPHCRYPTPROV hCryptProv = NULL;if(!CryptAcquireContextA(&hCryptProv,NULL,CspName,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT)){nErrCode = GetLastError();return 71;}//创建证书上下文pCertContextRoot = CertCreateCertificateContext(X509_ASN_ENCODING, RootCertInfo, nRootCertInfo);if (pCertContextRoot == NULL){ nErrCode = GetLastError();//0x8009310b 应该是证书的编码错了,不支持Base64编码只支持Der编码return 92;//92 创建证书上下文失败} //使用根公钥对用户证书验签if (!CryptVerifyCertificateSignature(hCryptProv,X509_ASN_ENCODING,UserCertInfo,nUserCertInfoSize,&(pCertContextRoot->pCertInfo->SubjectPublicKeyInfo))) //CA证书公钥{nErrCode = GetLastError();return 93;//93 验证证书签名失败} return 0;}
0 0
- windowsAPI验证上下级证书关系
- 上下级关系
- Spread.js 上下级关系
- 数据库处理用户上下级关系
- dtree实现上下级关系的显示
- 拼上下级关系的json数据格式
- windowsAPI
- 用树展示上下级关系-jquery+ztree+json的运用
- 中国城市数据 上下级关系 区号 邮编 entity by jpa
- Activiti 生成工作流节点之间的上下级关系
- echarts 结合ajax完成上下级关系图的绘制
- MySQL语句之or/in 对于上下级关系sql用法
- mySql+Hibernate 单表上下级关系数据整理
- 对"一个非常难的查询问题(部门上下级的关系)"之解答的完善
- 对"一个非常难的查询问题(部门上下级的关系)"之解答的
- 用树展示上下级关系-jquery+ztree+json的运用之获取选中的信息
- 根据tree绑定数据的上下级关系,实现无限制的分支等级[flex][arraycollection][tree]
- Hibernate对同表中存在上下级关联关系的映射处理
- 锁和并发性----隔离级别
- IT外企那点儿事(16): 上情下达易,下情上达难
- 数据制图问题—总结
- Android 汉字转拼音
- .Net GC 机制原理
- windowsAPI验证上下级证书关系
- 通过IP地址获取MAC
- nand和nor启动
- IT外企那点儿事(17): 左右逢源,还是左右为难?
- svn如何取消认证缓存设置?重新输入svn的用户名和密码
- LeetCode解题报告 --- Single Number II
- cmake Debug模式
- 亲爱的、我们从13到14、爱了那么久..
- IT外企那点儿事(18): 当“we are a team”成为口头禅