У меня есть хранилище ключей, полное сертификатов. Другой человек сказал мне, что сертификаты имеют закрытый ключ, но когда я проверяю свой код, я никогда его не вижу. Все эти ключи были использованы в vs6 и cryptapi, я использую c #.
Я создал свой собственный сертификат и удостоверился, что у него есть закрытый ключ, используя методы здесь
http://www.source -code.biz / сниппеты / VBasic / 3.htm
Когда я импортировал это в то же хранилище ключей, а затем запустил мой код, сертификат показал, что у него действительно был закрытый ключ, все остальные сертификаты в хранилище ключей не (согласно моему коду).
Какой-нибудь флаг или что-то мне нужно установить, чтобы иметь возможность использовать закрытый ключ в сертификатах в этом хранилище ключей?
public void testForPrivateKey(string keystorename)
{
X509Store teststore = new X509Store(keystorename);
teststore.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 cert in teststore.Certificates)
{
if(cert.HasPrivateKey)
{
System.Diagnostics.Debug.WriteLine("Private key found certificate name: {0}", cert.Subject);
}
}
store.Close();
}