Atom Лента - Форум КриптоПро - Тема:Как составить запрос на сертификат используя .net/c# - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:Kaksostavit'zaprosnasertifikatispol'zuja.net/c#-10:1Copyright 2024 Форум КриптоПро2024-03-28T18:23:21Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.ruTolikTipaTut1https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=49415&name=TolikTipaTut1TolikTipaTut1https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=49415&name=TolikTipaTut1astarukhinhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=61146&name=astarukhinTolikTipaTut1https://www.cryptopro.ru/forum2/default.aspx?g=profile&u=49415&name=TolikTipaTut1Максим Коллегинhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=3&name=Максим Коллегинastarukhinhttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=61146&name=astarukhinYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid129903:1Как составить запрос на сертификат используя .net/c#<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей C <a href="/forum2/default.aspx?g=posts&m=129893#post129893"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><strong></strong>Спасибо! Может быть подскажите, как подписывать хэш средствами крипто про? Я задавал вопрос, но на него так и не смогли ответить - <a rel="nofollow" href="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332" title="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332">https://www.cryptopro.ru...aspx?g=posts&t=20332</a></div></div><br /><br />В .Net можно сделать так: пример Gost3410_2012_256CSPSample.cs, он находится в Samples -> Sign -> cs.<br />В вашем случае не подскажу...</td></tr></table>2021-12-27T09:31:26+03:002021-12-27T09:31:26+03:00TolikTipaTut1<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: Андрей C <a href="/forum2/default.aspx?g=posts&m=129893#post129893"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote><strong></strong>Спасибо! Может быть подскажите, как подписывать хэш средствами крипто про? Я задавал вопрос, но на него так и не смогли ответить - <a rel="nofollow" href="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332" title="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332">https://www.cryptopro.ru...aspx?g=posts&t=20332</a></div></div><br /><br />В .Net можно сделать так: пример Gost3410_2012_256CSPSample.cs, он находится в Samples -> Sign -> cs.<br />В вашем случае не подскажу...</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129893:1Как составить запрос на сертификат используя .net/c#<table class="content postContainer" width="100%"><tr><td><strong></strong><div class="quote"><span class="quotetitle">Автор: TolikTipaTut1 <a href="/forum2/default.aspx?g=posts&m=129855#post129855"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Не уверен, но возможно подойдет BoucnyCastle для составления непосредственно самого запроса. Подписывать уже можно средствами КриптоПро (метод SignHash(), например).<br />Я так создавал запросы на сертификат с BoucnyCastle:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-powershell">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;
}
</code></pre>
</div></div></div></div><br /><br />Спасибо! Может быть подскажите, как подписывать хэш средствами крипто про? Я задавал вопрос, но на него так и не смогли ответить - <a rel="nofollow" href="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332" title="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332">https://www.cryptopro.ru...aspx?g=posts&t=20332</a></td></tr></table>2021-12-27T07:19:28+03:002021-12-27T07:19:28+03:00astarukhin<table class="content postContainer" width="100%"><tr><td><strong></strong><div class="quote"><span class="quotetitle">Автор: TolikTipaTut1 <a href="/forum2/default.aspx?g=posts&m=129855#post129855"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Не уверен, но возможно подойдет BoucnyCastle для составления непосредственно самого запроса. Подписывать уже можно средствами КриптоПро (метод SignHash(), например).<br />Я так создавал запросы на сертификат с BoucnyCastle:<br /><div class="code"><strong>Код:</strong><div class="innercode"><pre class="line-numbers"><code class="language-powershell">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;
}
</code></pre>
</div></div></div></div><br /><br />Спасибо! Может быть подскажите, как подписывать хэш средствами крипто про? Я задавал вопрос, но на него так и не смогли ответить - <a rel="nofollow" href="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332" title="https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=20332">https://www.cryptopro.ru...aspx?g=posts&t=20332</a></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129855:1Как составить запрос на сертификат используя .net/c#<table class="content postContainer_Alt" width="100%"><tr><td>Не уверен, но возможно подойдет BoucnyCastle для составления непосредственно самого запроса. Подписывать уже можно средствами КриптоПро (метод SignHash(), например).<br />Нужен пример <strong>Sample_5_GenerateCertRequest</strong>.<br />Мой профиль на GitHub: там много примеров: <a rel="nofollow" href="https://github.com/anatolkavassermann/Funny-crypto-BounyCastle-and-OpenSSL" title="https://github.com/anatolkavassermann/Funny-crypto-BounyCastle-and-OpenSSL">https://github.com/anato...-BounyCastle-and-OpenSSL</a></td></tr></table>2021-12-29T13:24:38+03:002021-12-29T13:24:38+03:00TolikTipaTut1<table class="content postContainer_Alt" width="100%"><tr><td>Не уверен, но возможно подойдет BoucnyCastle для составления непосредственно самого запроса. Подписывать уже можно средствами КриптоПро (метод SignHash(), например).<br />Нужен пример <strong>Sample_5_GenerateCertRequest</strong>.<br />Мой профиль на GitHub: там много примеров: <a rel="nofollow" href="https://github.com/anatolkavassermann/Funny-crypto-BounyCastle-and-OpenSSL" title="https://github.com/anatolkavassermann/Funny-crypto-BounyCastle-and-OpenSSL">https://github.com/anato...-BounyCastle-and-OpenSSL</a></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129854:1Как составить запрос на сертификат используя .net/c#<table class="content postContainer" width="100%"><tr><td>.NET не предоставляет такой функциональности. Только через P\Invoke с использованием CryptoAPI: <a rel="nofollow" href="https://docs.microsoft.com/en-us/windows/win32/seccrypto/example-c-program-making-a-certificate-request" title="https://docs.microsoft.com/en-us/windows/win32/seccrypto/example-c-program-making-a-certificate-request">https://docs.microsoft.c...ng-a-certificate-request</a><br />Или через COM Interop: certenroll: <a rel="nofollow" href="https://www.sysadmins.lv/retired-msft-blogs/alejacma/how-to-create-a-certificate-request-with-certenroll-and-net-csharp.aspx" title="https://www.sysadmins.lv/retired-msft-blogs/alejacma/how-to-create-a-certificate-request-with-certenroll-and-net-csharp.aspx">https://www.sysadmins.lv...roll-and-net-csharp.aspx</a></td></tr></table>2021-12-24T16:33:40+03:002021-12-24T16:33:40+03:00Максим Коллегин<table class="content postContainer" width="100%"><tr><td>.NET не предоставляет такой функциональности. Только через P\Invoke с использованием CryptoAPI: <a rel="nofollow" href="https://docs.microsoft.com/en-us/windows/win32/seccrypto/example-c-program-making-a-certificate-request" title="https://docs.microsoft.com/en-us/windows/win32/seccrypto/example-c-program-making-a-certificate-request">https://docs.microsoft.c...ng-a-certificate-request</a><br />Или через COM Interop: certenroll: <a rel="nofollow" href="https://www.sysadmins.lv/retired-msft-blogs/alejacma/how-to-create-a-certificate-request-with-certenroll-and-net-csharp.aspx" title="https://www.sysadmins.lv/retired-msft-blogs/alejacma/how-to-create-a-certificate-request-with-certenroll-and-net-csharp.aspx">https://www.sysadmins.lv...roll-and-net-csharp.aspx</a></td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid129845:1Как составить запрос на сертификат используя .net/c#<table class="content postContainer_Alt" width="100%"><tr><td>Добрый день! Есть необходимость генерации ключей и составления запроса на сертификат. Не нашёл таких примеров в .net sdk. В папке с SDK есть очень старый пример. Но он использует библиотеки, которые отсутствуют после установки Крипто ПРО .NET sdk и Crypto PRO CSP SDK. Подскажите, пожалуйста, какие библиотеки можно использовать для создания запросов. По возможности, дайте пример, пожауйста</td></tr></table>2021-12-24T13:33:25+03:002021-12-24T13:33:25+03:00astarukhin<table class="content postContainer_Alt" width="100%"><tr><td>Добрый день! Есть необходимость генерации ключей и составления запроса на сертификат. Не нашёл таких примеров в .net sdk. В папке с SDK есть очень старый пример. Но он использует библиотеки, которые отсутствуют после установки Крипто ПРО .NET sdk и Crypto PRO CSP SDK. Подскажите, пожалуйста, какие библиотеки можно использовать для создания запросов. По возможности, дайте пример, пожауйста</td></tr></table>