У меня есть хранилище ключей, полное сертификатов. Другой человек сказал мне, что у сертификатов есть закрытый ключ, но когда я проверяю свой код, я никогда не вижу его. Все эти ключи были использованы в vs6 и cryptapi, я использую C#.Как узнать, имеет ли сертификат закрытый ключ
Я создал свой собственный сертификат и убедившись, что он имел секретный ключ, используя методы здесь http://www.source-code.biz/snippets/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();
}
Найдено, что ключи находятся в «ключевой контейнер» не в «хранилище сертификатов» Кто-нибудь знает, как я могу указать ключ, который я буду использовать, чтобы сделать шифрования/дешифрования при условии, что есть обмен/подпись ключи и другие в контейнере ключей. – user1202605