如何在没有PIN提示的情况下通过智能读卡器访问PKI证书的私钥
本文关键字:智能 读卡器 访问 私钥 证书 PKI 情况下 提示 PIN | 更新日期: 2023-09-27 18:27:24
我需要访问存储在卡中的PKI证书的私钥。我可以通过智能卡读卡器访问它。每当我尝试使用私钥时,第一次我总是要在PIN提示中输入PIN号码。
是否可以通过程序输入PIN并在没有PIN提示的情况下使用私钥?我需要创建WCF服务,该服务将使用PKI证书对输入数据进行签名,并将其重新签名给用户。
通过这种方式,我目前尝试使用C#:使用PKI证书对数据进行签名
var cmsSigner = new CmsSigner(x509certificate2); // certificate fetched from store
var contentInfo = new ContentInfo(dataToSign);
var signedCms = new SignedCms(contentInfo, true);
signedCms.ComputeSignature(cmsSigner, false);
PIN提示始终在第一次ComputeSignature
方法调用时打开。如何通过PIN直接访问私钥,避免通过提示手动输入PIN?
归结为两种情况:
- 硬件CSP(加密服务提供商)保持Microsoft定义的API,并正确实现CspParameters
- 当需要私钥操作时,硬件CSP本身生成用于PIN的弹出窗口
在第一种情况下,您应该阅读如何:访问硬件加密设备,然后尝试将KeyPassword
传递给CSP。
在后一种情况下,可能相当于联系创建CSP的公司,询问哪些选项可用。幸运的是,这个选项通常不再实现。