使用C#从PKI智能卡读取证书

时间:2016-04-20 09:19:46

标签: authentication smartcard pki

我尝试用C#从我的PKI智能卡读取证书。 我读到当我将智能卡插入读卡器时,证书会从智能卡复制到计算机上的证书存储中。

但是,当我检查证书库的不同区域(My,AuthRoot,Root,...)中的证书数量时,我得到相同的号码,它确实 无论是否插入智能卡都无关紧要。

以下是我检查商店证书数量的方法:

var myStore = new X509Store(StoreName.AuthRoot, StoreLocation.CurrentUser);
myStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var count = myStore.Certificates.Count;

那么如何访问智能卡上的证书以验证私钥?

谢谢和亲切的问候 Friedhelm Drecktrah

1 个答案:

答案 0 :(得分:0)

这取决于卡片类型。在本机卡(具有文件系统的卡)上,每个证书只是存储在一个文件中,可以使用标准命令读取,很可能是 READ BINARY 。要查找文件ID,您通常需要查看支持信息,例如您的卡提供的PKCS-11或PKCS-15 / ISO 7816-15目录文件。如果有多个证书,您必须为此目的解决(通常也在文件中)。