我正在尝试向用户显示一个对话框以选择证书。最初,我将CryptUIDlgSelectCertificateFromStore
与“ MY”存储区结合使用,但这导致选择所有证书,而我只希望用户在
具有私钥的证书。
由于这个原因,我创建了一个新的内存存储区,并且仅存储存在私钥的证书。我可以使用CryptAcquireCertificatePrivateKey
获取证书的私钥,但是例如,这可能会导致对话框要求输入PIN。我不想使用CRYPT_ACQUIRE_SILENT_FLAG
,因为提供者可能希望在钥匙上显示信息(不一定是密码或智能卡提示)。
是否有一种方法可以知道有一个私钥并未实际获得?
谢谢。