首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定存储中的证书是否与智能卡相关?

如何确定存储中的证书是否与智能卡相关?
EN

Stack Overflow用户
提问于 2016-04-04 19:32:28
回答 1查看 846关注 0票数 0

我可以枚举插入的智能卡上存在的证书,但是即使没有插入智能卡,如何确定windows证书存储中存在的证书与智能卡相关?

当没有智能卡时,我如何知道来自商店的证书在使用之前是否会要求提供PIN?

EN

回答 1

Stack Overflow用户

发布于 2016-04-05 03:18:29

如果您有证书和相关的私钥(作为X509Certificate2对象),则可以检查certificate.PrivateKey.CspKeyContainerInfo.HardwareDevice属性链(HardwareDevice。如果该属性返回true,那么密钥将存储在智能卡上,并且很可能(但不是必须的)在您尝试访问密钥时提供PIN码。如果密钥存储在旧版加密服务提供程序(CSP)中,这将起作用。

现代卡支持称为密钥存储提供程序( KSP )的现代提供程序类型,这在.NET中不受支持。这意味着如果密钥存储在硬件KSP中,则( X509Certificate2对象的) HasPrivateKey属性将返回True,而PrivateKey将为null。在这种情况下,您必须通过调用NCrypt系列中的本机CryptoAPI函数来执行一些额外的工作。不过,从.NET 4.6+开始,X509Certificate2类中有几个可用于检索提供者信息的扩展方法:X509Certificate2 Extension Methods

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36401451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档