Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline artsb  
#1 Оставлено : 21 января 2016 г. 17:24:13(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 06.05.2010(UTC)
Сообщений: 103
Откуда: центр Вселенной

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Добрый день!
У меня есть файл сертификата и есть имя контейнера закрытого ключа.
Мне нужно создать контекст сертификата и привязать к нему закрытый ключ.
Делаю следующее:
Код:
X509Certificate2 userCert = new X509Certificate2(certRawData);

CspParameters cp = new CspParameters();
cp.KeyContainerName = "my_container_name";

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

userCert.PrivateKey = rsa;

На последней строке вылетает исключение с текстом: "Открытый ключ сертификата не соответствует указанному значению."

То, что это открытый ключ именно от этого контейнера, я точно знаю.
Подскажите, в чем может быть дело.
Спасибо!

ЗЫ В .Net не силен. Вполне возможно, что-то упустил или сделал не так(
Offline artsb  
#2 Оставлено : 21 января 2016 г. 17:38:00(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 06.05.2010(UTC)
Сообщений: 103
Откуда: центр Вселенной

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Дополнение.
Если открыть сертификат из хранилища, то все работает отлично.
Код:
string thumbprint = "d1f19ec5be83dd27d0ed59ea67a6992308a15be5";
X509Store certStore = new X509Store(StoreLocation.CurrentUser);
certStore.Open(OpenFlags.ReadWrite);
X509Certificate2Collection validCerts = certStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);
if (validCerts.Count == 0)
{
	return false;
}
X509Certificate2 userCert = validCerts[0];
Offline artsb  
#3 Оставлено : 22 января 2016 г. 10:08:02(UTC)
artsb

Статус: Активный участник

Группы: Участники
Зарегистрирован: 06.05.2010(UTC)
Сообщений: 103
Откуда: центр Вселенной

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
С этим вопросом разобрался: нужно было создавать объект Gost3410CryptoServiceProvider.
Теперь другой вопрос: как можно отвязаться от провайдера? Получается, мне нужно как-то динамически определять тип провайдера и открывать нужного провайдера.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.