从Windows-My store请求x509证书的密码

时间:2015-05-27 15:22:32

标签: c# x509certificate2

我可以使用以下代码获取Windows-My商店中的证书:

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.IncludeArchived);

X509Certificate2Enumerator enumerator = store.Certificates.GetEnumerator();
// then I loop through the enumerator and store the certificates in a list
store.Close();

在我的应用中,用户选择证书,我必须要求输入密码。如果密码正确,用户可以输入应用程序的选项。我可以使用用户所选文件中的pfx或pkcs12证书来执行此操作:

X509Certificate2 cert = new X509Certificate2();

try
{
    cert.Import(File.ReadAllBytes(pathToMyPfxCert), "my password", X509KeyStorageFlags.DefaultKeySet);
}
catch (CryptographicException)
{
    //wrong password! :D
}

但是我不确定从Windows-My中选择证书是否可行。当我将Windows-My证书导出到pfx文件并使用错误的密码再次导入它时,我发出CryptographicException尖叫“网络密码无效”,但我没有例外,好像我输入了正确的密码。

请告诉我,如果我以错误的方式使用Windows-My证书,或者他们的设计方式不合适(我是x509中的新手)。

编辑:关于@CryptoGuy评论:

我同意:这有点奇怪,因为它有点实验性:我们想知道Windows-My Store证书是否可用于在桌面应用上登录而不是签署文档。 我的测试证书的配置方式是在签署文档时要求用户输入私钥的密码:

cert configured to ask for pk's pw

我用来签署文件并获取此对话框的应用程序是XolidoSign

我想在我的应用程序中执行相同的操作:询问证书的密码(或其私钥的密码)并检查它以登录我的应用程序。

0 个答案:

没有答案