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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Антон Тверетин  
#1 Оставлено : 2 мая 2023 г. 12:09:02(UTC)
Антон Тверетин

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

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

Добрый день!
Дано: КриптоПро CSP версии 5.0.11455, обновляли до 5.0.12000. КриптоПро .NET последней версии. Windows 10 x64 обновлена до 22Н2 сборка 19045.2846
Проект на .NET Core Web (версии 3.1.3) на основе DotnetCoreSampleProject. Эталонный проект получилось собрать и запустить, а наш - только на 1 компьютере, на остальных нет.
Симптомы: сертификат с закрытым ключом находится, свойство .HasPrivateKey==true, само .PrivateKey даёт System.NotSupportedException: The certificate key algorithm is not supported..
Нашёл в каком-то примере, что закрытый ключ можно задать через KeyInfo.AddClause. Но если для SignedXml не указать свойство SigningKey, то ComputeSignature завершается с исключением "Signing key is not loaded."
new System.Security.Cryptography.Gost3410_2012_256CryptoServiceProvider() завершается с исключением "Could not load type 'System.Security.Cryptography.Gost3410_2012_256CryptoServiceProvider' from assembly 'System.Security.Cryptography.Csp, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'."
new CryptoPro.Sharpei.Gost3410_2012_256CryptoServiceProvider() завершается с исключением "Could not load file or assembly 'CryptoPro.Sharpei.CorLib, Version=1.4.0.11, Culture=neutral, PublicKeyToken=473b8c5086e795f5'. Не удается найти указанный файл."
Испробовано много чего, переустановка КриптоПро CSP, со службой ключей, netstandard из репозитория КриптоПро, .NET SDK нескольких версий (runtime 3.1.3 и указан явно).
В какую сторону дальше копнуть?
Offline Артём Макаров  
#2 Оставлено : 3 мая 2023 г. 9:31:07(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 63 раз в 59 постах
Добрый день.

Если тестовый проект работает, а другие нет - значит что то не так в других проектах.

Как я понимаю, речь идёт про форк corefx. Рекомендуемая версия csp - текущий релиз. На момент написания это 12600. В более ранних возможны ошибки, связанные с отсутствием нужной функциональности в csp для рядов сценариев использования. Ваша ошибка, похоже, не связана с версией csp, но, возможно, ошибки связанные с ней могут появиться позднее, как только победите данную.

Особых советов, кроме как ещё раз внимательно прочитать инструкцию к DotnetCoreSampleProject и выполнить именно те действия, которые там написаны нет.
Важно устанавливать именно указанные версии sdk и runtime, указать все необходимые свойства в csproj (включая ссылку на пакет рантайма), использовать только self-contained сборку. Пример csproj есть и в инструкции, и в репозитории тестового проекта. Также замечу, что одного установленного netstandard не достаточно, нужно ещё и установить пакет самого рантайма, как указано в инструкции.

Криптопро.NET при использовании в core 3.1 не нужен, он работает только в .net Framework до версии 4.8 включительно.

Если вам не принципиален core 3.1 - можете попробовать решение для core 6.0, в нём сборка и использование сделано намного легче - https://github.com/CryptoPro/libcore
Техническую поддержку оказываем тут
Наша база знаний
Offline Антон Тверетин  
#3 Оставлено : 3 мая 2023 г. 12:27:55(UTC)
Антон Тверетин

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

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

То есть надо убрать КриптоПро сборки и классы. Но тогда ошибка из https://github.com/Crypt...reSampleProject/issues/1 и не устраняется указанным способом. Поэтому особо в эту сторону не копал.
Offline Артём Макаров  
#4 Оставлено : 3 мая 2023 г. 12:39:04(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 63 раз в 59 постах
Автор: Антон Тверетин Перейти к цитате
То есть надо убрать КриптоПро сборки и классы. Но тогда ошибка из https://github.com/Crypt...reSampleProject/issues/1 и не устраняется указанным способом. Поэтому особо в эту сторону не копал.


Если под "КриптоПро сборки и классы" - вы имеете в виду сборки продукта КриптоПро.NET - то да. Это отдельный продукт только для .NET Framework.

По поводу той ошибки, на которую вы указываете, то её наличие можно проверить следующим образом - если вы можете скомпилировать код, в котором присутствует, например Gost3410_2012_256CryptoServiceProvider, но в рантайме получаете ошибку о том, что данный тип не найден - тогда это она, и надо смотреть установленные версии рантайма и sdk. Если у вас ошибка при сборке - это иной тип ошибки.
Техническую поддержку оказываем тут
Наша база знаний
Offline Антон Тверетин  
#5 Оставлено : 3 мая 2023 г. 14:09:34(UTC)
Антон Тверетин

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

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

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