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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Андрей C  
#1 Оставлено : 24 декабря 2021 г. 13:33:25(UTC)
astarukhin

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.12.2021(UTC)
Сообщений: 9
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Добрый день! Есть необходимость генерации ключей и составления запроса на сертификат. Не нашёл таких примеров в .net sdk. В папке с SDK есть очень старый пример. Но он использует библиотеки, которые отсутствуют после установки Крипто ПРО .NET sdk и Crypto PRO CSP SDK. Подскажите, пожалуйста, какие библиотеки можно использовать для создания запросов. По возможности, дайте пример, пожауйста
Offline Максим Коллегин  
#2 Оставлено : 24 декабря 2021 г. 16:32:36(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,374
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 32 раз
Поблагодарили: 704 раз в 613 постах
.NET не предоставляет такой функциональности. Только через P\Invoke с использованием CryptoAPI: https://docs.microsoft.c...ng-a-certificate-request
Или через COM Interop: certenroll: https://www.sysadmins.lv...roll-and-net-csharp.aspx

Отредактировано пользователем 24 декабря 2021 г. 16:33:40(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
astarukhin оставлено 27.12.2021(UTC)
Offline TolikTipaTut1  
#3 Оставлено : 24 декабря 2021 г. 16:54:03(UTC)
TolikTipaTut1

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

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 467

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Не уверен, но возможно подойдет BoucnyCastle для составления непосредственно самого запроса. Подписывать уже можно средствами КриптоПро (метод SignHash(), например).
Нужен пример Sample_5_GenerateCertRequest.
Мой профиль на GitHub: там много примеров: https://github.com/anato...-BounyCastle-and-OpenSSL

Отредактировано пользователем 29 декабря 2021 г. 13:24:38(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил TolikTipaTut1 за этот пост.
astarukhin оставлено 27.12.2021(UTC)
Offline Андрей C  
#4 Оставлено : 27 декабря 2021 г. 7:19:28(UTC)
astarukhin

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.12.2021(UTC)
Сообщений: 9
Российская Федерация

Сказал(а) «Спасибо»: 3 раз
Автор: TolikTipaTut1 Перейти к цитате
Не уверен, но возможно подойдет BoucnyCastle для составления непосредственно самого запроса. Подписывать уже можно средствами КриптоПро (метод SignHash(), например).
Я так создавал запросы на сертификат с BoucnyCastle:
Код:
var secureRandom = new SecureRandom();
ECPrivateKeyParameters prk = (ECPrivateKeyParameters)ReadPemObject("prk.pem");
ECPublicKeyParameters pbk = (ECPublicKeyParameters)ReadPemObject("pbk.pem");
X509ExtensionsGenerator extGen = new X509ExtensionsGenerator();
extGen.AddExtension(X509Extensions.KeyUsage, true, new KeyUsage(240));
extGen.AddExtension(new DerObjectIdentifier("2.5.29.37"), false, new DerSequence(new DerObjectIdentifier("1.3.6.1.5.5.7.3.2")));
var subjectPbkInfo = new SubjectPublicKeyInfo(new AlgorithmIdentifier(RosstandartObjectIdentifiers.id_tc26_signwithdigest_gost_3410_12_256.Id), pbk.Q.GetEncoded());
var subjectKeyID = new SubjectKeyIdentifier(subjectPbkInfo);
extGen.AddExtension(new DerObjectIdentifier("2.5.29.14"), false, new DerOctetString(subjectKeyID.GetKeyIdentifier()));
AttributePkcs attributePkcs = new AttributePkcs(PkcsObjectIdentifiers.Pkcs9AtExtensionRequest, new DerSet(extGen.Generate()));
var request = new Pkcs10CertificationRequest(
    "1.2.643.7.1.1.3.2",
    new X509Name("CN=Anatolka"),
    (ECPublicKeyParameters)pbk,
    new DerSet(attributePkcs),
    (ECPrivateKeyParameters)prk);

static System.Object ReadPemObject (String _fileName)
{
    TextReader TextReader = File.OpenText($".\\{_fileName}");
    var PemReader = new PemReader(TextReader);
    var _object = PemReader.ReadObject();
    TextReader.Close();
    TextReader.Dispose();
    return _object;
}


Спасибо! Может быть подскажите, как подписывать хэш средствами крипто про? Я задавал вопрос, но на него так и не смогли ответить - https://www.cryptopro.ru...aspx?g=posts&t=20332
Offline TolikTipaTut1  
#5 Оставлено : 27 декабря 2021 г. 9:26:35(UTC)
TolikTipaTut1

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

Группы: Участники
Зарегистрирован: 05.07.2018(UTC)
Сообщений: 467

Сказал(а) «Спасибо»: 43 раз
Поблагодарили: 69 раз в 61 постах
Автор: Андрей C Перейти к цитате
Спасибо! Может быть подскажите, как подписывать хэш средствами крипто про? Я задавал вопрос, но на него так и не смогли ответить - https://www.cryptopro.ru...aspx?g=posts&t=20332


В .Net можно сделать так: пример Gost3410_2012_256CSPSample.cs, он находится в Samples -> Sign -> cs.
В вашем случае не подскажу...

Отредактировано пользователем 27 декабря 2021 г. 9:31:26(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.