使用 C# 从 PKI 智能卡读取证书
Posted
技术标签:
【中文标题】使用 C# 从 PKI 智能卡读取证书【英文标题】:Read certificates from PKI smart card with C# 【发布时间】:2016-04-20 09:19:45 【问题描述】:我尝试使用 C# 从我的 PKI 智能卡中读取证书。 我读到当我将智能卡插入读卡器时,证书会从智能卡复制到计算机上的证书存储中。
但是,当我检查证书存储区不同区域(My、AuthRoot、Root、...)中的证书数量时,我得到相同的数量,它确实 不管智能卡是否插入。
这是我检查商店中证书数量的方法:
var myStore = new X509Store(StoreName.AuthRoot, StoreLocation.CurrentUser);
myStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var count = myStore.Certificates.Count;
那么如何访问智能卡上的证书来验证私钥?
感谢和亲切的问候 弗里德海姆·德雷克特拉
【问题讨论】:
【参考方案1】:这取决于卡片类型。在本地卡(具有文件系统的卡)上,每个证书都简单地存储在一个文件中,并且可以使用标准命令读取,很可能是 READ BINARY。要找出文件 ID,您通常必须查看支持信息,例如您的卡提供的 PKCS-11 或 PKCS-15/ISO 7816-15 目录文件。如果有多个证书,您必须为此目的解析(通常也在文件中)。
【讨论】:
以上是关于使用 C# 从 PKI 智能卡读取证书的主要内容,如果未能解决你的问题,请参考以下文章