我需要访问存储在卡中的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?
答案 0 :(得分:1)
归结为两种情况:
在第一种情况下,您应该阅读How to: Access Hardware Encryption Devices,然后尝试将a KeyPassword
传递给CSP。
在后一种情况下,它可能等于联系创建CSP的公司并询问可用的选项。幸运的是,此选项通常不再实施。