如何解决如何确定证书来自哪个智能卡 - 例如使用 Windows.Devices.SmartCard 或 winapi?
我想知道智能卡上的 X509Certificate2s,其中可能有多个智能卡读卡器和多张卡,并且卡上有多个证书。
使用 SmartCardReader Class 我使用 FindAllCardsAsync 获取所有智能卡。
- 是否有可能获得该智能卡上的证书?
- 是否可以从 Windows.Devices.SmartCards 获得任何属性,然后我可以将其与 x509Store 一起使用?
我还尝试在 x509Store 中查询证书,以确定它们是否来自硬件设备。在此 X509Certificate2: determine if certificate private key belongs to an hardware device,and if it needs a PIN 的帮助下,我可以获得所有证书并知道它们是否已连接到读卡器。
问题在于,当将卡插入读卡器时,证书会添加到存储中,但是,当您取出卡时,它们会保留在那里。只有当您移除读卡器时才会移除。该问题使用以下代码将私钥转换为 RSACryptoServiceProvider,但是,这会自动显示插入卡片的对话框。
Dim rsaKey As RSACryptoServiceProvider = CType(x509.PrivateKey,RSACryptoServiceProvider)
If rsaKey.CspKeyContainerInfo.HardwareDevice Then
Debug.Print("Certifacte on Card")
End If
使用 x509 存储和 X509Certificate2Collection 是否有另一种方法来确定证书是否来自智能卡并且该卡仍在读卡器中?
顺便说一下,该问题还有一个标题为 My preferred solution 的建议答案,它确实确认了商店中的证书是基于软件还是基于硬件,但这并不能确认卡是否仍然插入。>
有没有办法使用 X509Certificate2 句柄来找出它来自的卡(如果有的话),然后将其与 Windows.Devices.SmartCard 的类似属性相关联?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。