Atom Лента - Форум КриптоПро - Тема:Unsupported algorithm Gost3410_2012_256CryptoServiceProvider - 10Форум КриптоПро - Atom Лентаurn:https:--www-cryptopro-ru:AtomLenta:ForumKriptoPro:Tema:UnsupportedalgorithmGost3410_2012_256CryptoServiceProvider-10:1Copyright 2024 Форум КриптоПро2024-03-29T07:57:32Zhttps://www.cryptopro.ru/forum2/Images/YAFLogo.pngForum Adminhttps://www.cryptopro.ruforum@cryptopro.rubenchstylehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=56158&name=benchstylebenchstylehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=56158&name=benchstyletwo_oceanshttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=36490&name=two_oceansbenchstylehttps://www.cryptopro.ru/forum2/default.aspx?g=profile&u=56158&name=benchstyleYetAnotherForum.NETurn:https:--www-cryptopro-ru:ftPosts:st1:meid114899:1Unsupported algorithm Gost3410_2012_256CryptoServiceProvider<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=114882#post114882"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Добрый день. По одной строке сложно сказать что еще нужно чинить в коде. С C# я примерно также, но скорее всего Вам не нужно "дербанить" то что уже получили - просто используйте сам certificate или certificate.PrivateKey (смотря что по смыслу подходит) далее в программе.<br /><br />В чем может быть проблема - Криптопро возвращает экземпляр privatekey привязанный к Криптопро и не содержащий реального закрытого ключа, вместо реального ключа там временный идентификатор. По требованиям сертификации нужно чтобы реальный закрытый ключ не покидал контейнер и не хранился в открытом виде.<br /><br />Это нормально: потом при подписании или другой операции боунтикасл все равно передаст этот идентификатор-ключ "по месту привязки", то есть обратно в Криптопро и Криптопро по идентификатору и табличке связывающей идентификатор с контейнерами найдет реальный закрытый ключ в контейнере.<br /><br />Однако если Вы попробуете идентификатор-ключ обработать чем-то кроме криптопро, то ничего хорошего не выйдет - реального закрытого ключа там нет и ключевую пару не получите. Аналогично при работе с продуктами КриптоПро нельзя выгрузить реальный закрытый ключ куда-либо в открытом виде (не считая утилит самого Криптопро, экспортирующих в pfx и копирования самого контейнера - там ключ зашифрован) или загрузить закрытый ключ не из контейнера.</div></div><br /><br /><br />Добрый день, сертификат дальше не дербаним, просто Private Key нужно перегнать из System.x509 в bouncyCastle.x509, т.к. код от iText обрабатывает именно такой формат. </td></tr></table>2020-04-27T15:51:17+03:002020-04-27T15:51:17+03:00benchstyle<table class="content postContainer_Alt" width="100%"><tr><td><div class="quote"><span class="quotetitle">Автор: two_oceans <a href="/forum2/default.aspx?g=posts&m=114882#post114882"><img src="/forum2/Themes/soclean/icon_latest_reply.gif" title="Перейти к цитате" alt="Перейти к цитате" /></a></span><blockquote>Добрый день. По одной строке сложно сказать что еще нужно чинить в коде. С C# я примерно также, но скорее всего Вам не нужно "дербанить" то что уже получили - просто используйте сам certificate или certificate.PrivateKey (смотря что по смыслу подходит) далее в программе.<br /><br />В чем может быть проблема - Криптопро возвращает экземпляр privatekey привязанный к Криптопро и не содержащий реального закрытого ключа, вместо реального ключа там временный идентификатор. По требованиям сертификации нужно чтобы реальный закрытый ключ не покидал контейнер и не хранился в открытом виде.<br /><br />Это нормально: потом при подписании или другой операции боунтикасл все равно передаст этот идентификатор-ключ "по месту привязки", то есть обратно в Криптопро и Криптопро по идентификатору и табличке связывающей идентификатор с контейнерами найдет реальный закрытый ключ в контейнере.<br /><br />Однако если Вы попробуете идентификатор-ключ обработать чем-то кроме криптопро, то ничего хорошего не выйдет - реального закрытого ключа там нет и ключевую пару не получите. Аналогично при работе с продуктами КриптоПро нельзя выгрузить реальный закрытый ключ куда-либо в открытом виде (не считая утилит самого Криптопро, экспортирующих в pfx и копирования самого контейнера - там ключ зашифрован) или загрузить закрытый ключ не из контейнера.</div></div><br /><br /><br />Добрый день, сертификат дальше не дербаним, просто Private Key нужно перегнать из System.x509 в bouncyCastle.x509, т.к. код от iText обрабатывает именно такой формат. </td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid114882:1Unsupported algorithm Gost3410_2012_256CryptoServiceProvider<table class="content postContainer" width="100%"><tr><td>Добрый день. По одной строке сложно сказать что еще нужно чинить в коде. С C# я примерно также, но скорее всего Вам не нужно "дербанить" то что уже получили - просто используйте сам certificate или certificate.PrivateKey (смотря что по смыслу подходит) далее в программе.<br /><br />В чем может быть проблема - Криптопро возвращает экземпляр privatekey привязанный к Криптопро и не содержащий реального закрытого ключа, вместо реального ключа там временный идентификатор. По требованиям сертификации нужно чтобы реальный закрытый ключ не покидал контейнер и не хранился в открытом виде.<br /><br />Это нормально: потом при подписании или другой операции боунтикасл все равно передаст этот идентификатор-ключ "по месту привязки", то есть обратно в Криптопро и Криптопро по идентификатору и табличке связывающей идентификатор с контейнерами найдет реальный закрытый ключ в контейнере.<br /><br />Однако если Вы попробуете идентификатор-ключ обработать чем-то кроме криптопро, то ничего хорошего не выйдет - реального закрытого ключа там нет и ключевую пару не получите. Аналогично при работе с продуктами КриптоПро нельзя выгрузить реальный закрытый ключ куда-либо в открытом виде (не считая утилит самого Криптопро, экспортирующих в pfx и копирования самого контейнера - там ключ зашифрован) или загрузить закрытый ключ не из контейнера.</td></tr></table>2020-04-27T10:04:23+03:002020-04-27T10:04:23+03:00two_oceans<table class="content postContainer" width="100%"><tr><td>Добрый день. По одной строке сложно сказать что еще нужно чинить в коде. С C# я примерно также, но скорее всего Вам не нужно "дербанить" то что уже получили - просто используйте сам certificate или certificate.PrivateKey (смотря что по смыслу подходит) далее в программе.<br /><br />В чем может быть проблема - Криптопро возвращает экземпляр privatekey привязанный к Криптопро и не содержащий реального закрытого ключа, вместо реального ключа там временный идентификатор. По требованиям сертификации нужно чтобы реальный закрытый ключ не покидал контейнер и не хранился в открытом виде.<br /><br />Это нормально: потом при подписании или другой операции боунтикасл все равно передаст этот идентификатор-ключ "по месту привязки", то есть обратно в Криптопро и Криптопро по идентификатору и табличке связывающей идентификатор с контейнерами найдет реальный закрытый ключ в контейнере.<br /><br />Однако если Вы попробуете идентификатор-ключ обработать чем-то кроме криптопро, то ничего хорошего не выйдет - реального закрытого ключа там нет и ключевую пару не получите. Аналогично при работе с продуктами КриптоПро нельзя выгрузить реальный закрытый ключ куда-либо в открытом виде (не считая утилит самого Криптопро, экспортирующих в pfx и копирования самого контейнера - там ключ зашифрован) или загрузить закрытый ключ не из контейнера.</td></tr></table>urn:https:--www-cryptopro-ru:ftPosts:st1:meid114876:1Unsupported algorithm Gost3410_2012_256CryptoServiceProvider<table class="content postContainer_Alt" width="100%"><tr><td>Добрый день, есть задача подписывать документы через ЭЦП и ставить штампик с реквизитами подписи на базе Gost3410_2012_256 в C#.<br />С c# на Вы, пытаюсь собрать Франкештейна на основе примеров от КриптоПро и iText7. Проблема в том, что никак не могу подружить X509, которые используются в примерах КриптоПро и bouncyCastle от iText.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br /><br />ICipherParameters pk = Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair(certificate.PrivateKey).Private;<br /><br />System.ArgumentException<br /> HResult=0x80070057<br /> Сообщение = Unsupported algorithm specified<br />Имя параметра: privateKey<br /> Источник = BouncyCastle.Crypto<br /> Трассировка стека:<br /> в Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair(AsymmetricAlgorithm privateKey) в D:\a\1\s\crypto\src\security\DotNetUtilities.cs:строка 152<br /> в Рабочий_сертификат.Program.Main() в C:\Users\IRON\source\repos\Рабочий сертификат\Рабочий сертификат\Program.cs:строка 87<br /></div></div><br /><br />Буду благодарен, если подскажите, как починить код. Спасибо</td></tr></table>2020-04-26T16:38:25+03:002020-04-26T16:38:25+03:00benchstyle<table class="content postContainer_Alt" width="100%"><tr><td>Добрый день, есть задача подписывать документы через ЭЦП и ставить штампик с реквизитами подписи на базе Gost3410_2012_256 в C#.<br />С c# на Вы, пытаюсь собрать Франкештейна на основе примеров от КриптоПро и iText7. Проблема в том, что никак не могу подружить X509, которые используются в примерах КриптоПро и bouncyCastle от iText.<br /><br /><div class="quote"><span class="quotetitle">Цитата:</span><blockquote><br /><br />ICipherParameters pk = Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair(certificate.PrivateKey).Private;<br /><br />System.ArgumentException<br /> HResult=0x80070057<br /> Сообщение = Unsupported algorithm specified<br />Имя параметра: privateKey<br /> Источник = BouncyCastle.Crypto<br /> Трассировка стека:<br /> в Org.BouncyCastle.Security.DotNetUtilities.GetKeyPair(AsymmetricAlgorithm privateKey) в D:\a\1\s\crypto\src\security\DotNetUtilities.cs:строка 152<br /> в Рабочий_сертификат.Program.Main() в C:\Users\IRON\source\repos\Рабочий сертификат\Рабочий сертификат\Program.cs:строка 87<br /></div></div><br /><br />Буду благодарен, если подскажите, как починить код. Спасибо</td></tr></table>