怎样在 vc++ 程序(MFC)中实现 把个人数字证书 加载到证书库中?

猿年码月 2009-11-03 04:43:44
开始我用CrytoAPI但是都是证书库之间的调用,和一些遍历证书库,显示证书的操作。我用了CertCreateCertificateContext()函数来制造一个证书的句柄,但是它只对.cer格式证书有效,
求怎样编程实现注册 .p12 格式的个人证书到证书库中,和从证书库中删除。(也就是实现windows自带的证书向导那样的导入和注销证书功能)。
最好能提供一个历程。
...全文
564 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwww2 2009-12-30
  • 打赏
  • 举报
回复
PFXImportCertStore
这个函数应该满足你需要
猿年码月 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 miaolingshaohua 的回复:]
pCryptCATAdminAcquireContext =
(CryptCATAdminAcquireContext)GetProcAddress(dllHandle,"CryptCATAdminAcquireContext");
pCryptCATAdminReleaseContext =
(CryptCATAdminReleaseContext)GetProcAddress(dllHandle,"CryptCATAdminReleaseContext");
pCryptCATAdminCalcHashFromFileHandle =
(CryptCATAdminCalcHashFromFileHandle)GetProcAddress(dllHandle,"CryptCATAdminCalcHashFromFileHandle");
pCryptCATAdminEnumCatalogFromHash =
(CryptCATAdminEnumCatalogFromHash )GetProcAddress(dllHandle,"CryptCATAdminEnumCatalogFromHash");
pCryptCATAdminReleaseCatalogContext =
(CryptCATAdminReleaseCatalogContext)GetProcAddress(dllHandle,"CryptCATAdminReleaseCatalogContext");
pCryptCATCatalogInfoFromContext =
(CryptCATCatalogInfoFromContext)GetProcAddress(dllHandle,"CryptCATCatalogInfoFromContext");
pWinVerifyTrustX =
(WinVerifyTrustX)GetProcAddress(dllHandle,"WinVerifyTrust");
if (pCryptCATAdminAcquireContext == NULL
|| pCryptCATAdminReleaseContext == NULL
|| pCryptCATAdminCalcHashFromFileHandle == NULL
|| pCryptCATAdminEnumCatalogFromHash == NULL
|| pCryptCATAdminReleaseCatalogContext == NULL
|| pCryptCATCatalogInfoFromContext == NULL
|| pWinVerifyTrustX == NULL)
pCryptCATAdminCalcHashFromFileHandle
这些函数建议你用一下,是 获得数字签名的一些函数
[/Quote]
不需要获得签名,我要做的是把证书 加载上 让IE能识别就可以了。
哈利路亚1874 2009-11-03
  • 打赏
  • 举报
回复
pCryptCATAdminAcquireContext =
(CryptCATAdminAcquireContext)GetProcAddress(dllHandle,"CryptCATAdminAcquireContext");
pCryptCATAdminReleaseContext =
(CryptCATAdminReleaseContext)GetProcAddress(dllHandle,"CryptCATAdminReleaseContext");
pCryptCATAdminCalcHashFromFileHandle =
(CryptCATAdminCalcHashFromFileHandle)GetProcAddress(dllHandle,"CryptCATAdminCalcHashFromFileHandle");
pCryptCATAdminEnumCatalogFromHash =
(CryptCATAdminEnumCatalogFromHash )GetProcAddress(dllHandle,"CryptCATAdminEnumCatalogFromHash");
pCryptCATAdminReleaseCatalogContext =
(CryptCATAdminReleaseCatalogContext)GetProcAddress(dllHandle,"CryptCATAdminReleaseCatalogContext");
pCryptCATCatalogInfoFromContext =
(CryptCATCatalogInfoFromContext)GetProcAddress(dllHandle,"CryptCATCatalogInfoFromContext");
pWinVerifyTrustX =
(WinVerifyTrustX)GetProcAddress(dllHandle,"WinVerifyTrust");
if (pCryptCATAdminAcquireContext == NULL
|| pCryptCATAdminReleaseContext == NULL
|| pCryptCATAdminCalcHashFromFileHandle == NULL
|| pCryptCATAdminEnumCatalogFromHash == NULL
|| pCryptCATAdminReleaseCatalogContext == NULL
|| pCryptCATCatalogInfoFromContext == NULL
|| pWinVerifyTrustX == NULL)
pCryptCATAdminCalcHashFromFileHandle
这些函数建议你用一下,是 获得数字签名的一些函数
MoXiaoRab 2009-11-03
  • 打赏
  • 举报
回复
CrytoAPI可以实现证书库的操作的。我有个学长做过,但是我不是很清楚,但是可以肯定它可以
猿年码月 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tr0j4n 的回复:]
Windows不支持p12这种证书的API支持。你那种是自己的一套机制
[/Quote]

2楼你能说的具体点吗,用什么技术,或者借助什么方法实现?
猿年码月 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tr0j4n 的回复:]
必须使用CrytoAPI。你有PKI的书么?
[/Quote]

我有些有这方面的资料,请问用CrytoAPI是否能实现上述功能,如何实现,能说下具体用到的函数吗?
MoXiaoRab 2009-11-03
  • 打赏
  • 举报
回复
必须使用CrytoAPI。你有PKI的书么?
MoXiaoRab 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 cchai83321 的回复:]
    开始我用CrytoAPI但是都是证书库之间的调用,和一些遍历证书库,显示证书的操作。我用了CertCreateCertificateContext()函数来制造一个证书的句柄,但是它只对.cer格式证书有效,
    求怎样编程实现注册 .p12 格式的个人证书到证书库中,和从证书库中删除。(也就是实现windows自带的证书向导那样的导入和注销证书功能)。
    最好能提供一个历程。
[/Quote]
Windows不支持p12这种证书的API支持。你那种是自己的一套机制
WecanHuang 2009-11-03
  • 打赏
  • 举报
回复
个人数字证书是什么?
可以用普通数据库方案实现吗

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧