1

我正在做一些智能卡编程,并想考虑以下情况:

  1. 卡中的证书未导入本地商店(这不是给定的,这是当前问题的根源)

  2. 未提供提供者的名称

第二个标准意味着我不能依赖通过创建 RSACryptoServiceProvider 的实例来获取证书,如下所示:

CspParameters cspParameters = new CspParameters(1, "provider name");
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cspParameters);

因此,除了从 HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider 或 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Cryptography\Defaults\Provider 从注册表中读取所有提供程序的名称之外,然后从每个到创建一个 RSACryptoServiceProvider 实例查看容器是否将自己标识为硬件设备,似乎有一种更简单的方法可以直接从读卡器访问证书。

我已经研究过使用 P/Invoke 和 API,但也无法确定我可以为此使用哪些 API 调用。

4

0 回答 0