Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 20.02.2017(UTC) Сообщений: 225
  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 67 раз в 62 постах
  
	 
	
     | 
    
        
            
		      
                Автор: Anton G  Добрый день! Собрали тестовый проект -  https://github.com/Crypt.../DotnetCoreSampleProjectВсё отлично работает. Создали свой проект (Веб-API Core, платформа .NET Core 3.1) по указанной инструкции для win. Добавили все сборки и пакеты, внесли изменения в .csproj -  https://skr.sh/sDzkWZEl5bcЗапускаем также, как и DotnetCoreSampleProject на Win10 + IIS (Также пробовали c Docker, Linux контейнер) и получаем одну и ту же ошибку -  Method not found: 'System.Security.Cryptography.HashAlgorithmName System.Security.Cryptography.HashAlgorithmName.get_Gost3411_2012_256()'При вызове signedCms.CheckSignature(certCollection, verifySignatureOnly); p.s. В DotnetCoreSampleProject данный метод успешно отрабатывает с переданными файлами.  Для iis ожидается работа только в out of process. https://docs.microsoft.c...ting?view=aspnetcore-6.0Для докера + Linux не вижу особых проблем, почему может не работать, если работает в рамках тестового проекта. Проверьте ещё раз, что в контейнере корректно установлены и используются netstandard, как указанно в инструкции, происходит сборка self-contained для linux-x64. Вроде ранее в данной ветке выкладывали некоторые Dockerfile.    | 
 | 
            
	 
        
    
    
        
              1 пользователь поблагодарил Артём Макаров за этот пост.  
     | 
    
        
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Новичок
  Группы: Участники
 Зарегистрирован: 17.05.2022(UTC) Сообщений: 2  Откуда: Москва Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                После обновления в Windows 10 "Накопительное обновление от 10 мая 2022 г. до KB5013624 для платформа .NET Framework 3.5 и 4.8 для Windows 10, версии 20H2, Windows Server, версии 20H2, Windows 10 версии 21H1 и Windows 10 версии 21H2"  Перестал работать .Net - Алгоритм ключа сертификата не поддерживается. Какая-то не совместимость с CLR... Версии CSP 5.0.12417 .Net Клиент 1.0.7775.0 В логе osinfo при каждом запуске приложения идет         <entry type="Error" date="13.05.2022" time="09:52:01" source="CPNetDetours45" categoty="Init/Done CLR" event="5">Uncatched patch initialization error. Error code: 0xe06d7363.  </entry>   osinfo.xml  (208kb) загружен 1 раз(а).Отредактировано пользователем 17 мая 2022 г. 21:45:27(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы
 Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,417  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 729 раз в 630 постах
  
	 
	
     | 
    
         | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Администраторы
 Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,417  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 729 раз в 630 постах
  
	 
	
     | 
    
         | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Новичок
  Группы: Участники
 Зарегистрирован: 11.05.2022(UTC) Сообщений: 5  Откуда: Ижевск Сказал(а) «Спасибо»: 3 раз
  
	 
	
     | 
    
        
            
		      
                Автор: Санчир Момолдаев  Автор: Владимир Сид  В текущей ситуации в мире стоит надеяться на выход под .Net6 ?  Да  Подскажите, пожалуйста, а когда примерно можно ожидать пример под .net 6.0?  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 16.09.2020(UTC) Сообщений: 14  Сказал(а) «Спасибо»: 3 раз
  
	 
	
     | 
    
        
            
		      
                Здравствуйте, необходима помощь :( На linux не собирается следующий код: Код:
using var cert = new X509Certificate2(File.ReadAllBytes(keyPath), keyPassword, X509KeyStorageFlags.CspNoPersistKeySet);
var key = certificate.PrivateKey as Gost3410_2012_256CryptoServiceProvider;
var signedXml = new SignedXml(xmlDoc) { SigningKey = (AsymmetricAlgorithm)key };
var reference = new Reference { Uri = "", DigestMethod = SignedXml.XmlDsigGost3411_2012_256Url };
signedXml.AddReference(reference);
signedXml.ComputeSignature();
 
 при сборке выдает ошибку  Цитата:error CS0117: 'SignedXml' does not contain a definition for 'XmlDsigGost3411_2012_256Url'  если поменять DigestMethod на SignedXml.XmlDsigSHA1Url собирается нормально, ключ читает, но при подписи выдает  Цитата:Failed to create signing key at System.Security.Cryptography.Xml.SignedXml.ComputeSignature()  System.Security.Cryptography.Xml.dll по указанному в проекте пути лежит. Gost3411_2012_256CryptoServiceProvider и Gost3410_2012_256CryptoServiceProvider работают на этой же сборке  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 20.02.2017(UTC) Сообщений: 225
  Сказал(а) «Спасибо»: 4 раз Поблагодарили: 67 раз в 62 постах
  
	 
	
     | 
    
        
            
		      
                Автор: DarkShark  Здравствуйте, необходима помощь :( На linux не собирается следующий код: Код:
using var cert = new X509Certificate2(File.ReadAllBytes(keyPath), keyPassword, X509KeyStorageFlags.CspNoPersistKeySet);
var key = certificate.PrivateKey as Gost3410_2012_256CryptoServiceProvider;
var signedXml = new SignedXml(xmlDoc) { SigningKey = (AsymmetricAlgorithm)key };
var reference = new Reference { Uri = "", DigestMethod = SignedXml.XmlDsigGost3411_2012_256Url };
signedXml.AddReference(reference);
signedXml.ComputeSignature();
 
 при сборке выдает ошибку  Цитата:error CS0117: 'SignedXml' does not contain a definition for 'XmlDsigGost3411_2012_256Url'  если поменять DigestMethod на SignedXml.XmlDsigSHA1Url собирается нормально, ключ читает, но при подписи выдает  Цитата:Failed to create signing key at System.Security.Cryptography.Xml.SignedXml.ComputeSignature()  System.Security.Cryptography.Xml.dll по указанному в проекте пути лежит. Gost3411_2012_256CryptoServiceProvider и Gost3410_2012_256CryptoServiceProvider работают на этой же сборке  Видимо по какой то причине подтягивает родной, а не модифицированный SignedXml. Проверьте, что ссылается именно на модифицированную сборку и нет ссылок на родной Xml и его пакет. Можно посмотреть на проект примера  https://github.com/Crypt.../DotnetCoreSampleProject который точно собирается и работает, если следовать инструкции, ещё раз внимательно проверить пути и версии.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 16.09.2020(UTC) Сообщений: 14  Сказал(а) «Спасибо»: 3 раз
  
	 
	
     | 
    
        
            
		      
                Цитата:Видимо по какой то причине подтягивает родной, а не модифицированный SignedXml. Проверьте, что ссылается именно на модифицированную сборку и нет ссылок на родной Xml и его пакет. Можно посмотреть на проект примера  https://github.com/Crypt.../DotnetCoreSampleProject который точно собирается и работает, если следовать инструкции, ещё раз внимательно проверить пути и версии.  Спасибо за ответ. В том то и дело, что проект примера собирается и работает на той же машине. Ладно, будем искать...  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 11.04.2017(UTC) Сообщений: 25
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Всем доброго дня!
  Вопрос касательно данной темы, а именно, надо ли добавлять ссылку на пакет System.Security.Cryptography.X509Certificates из пропатченнкого вами CoreFx для работы с сертификатами содержащими ссылки на гостовые алгоритмы? В Вашем описании добавлены только две сборки, видимо, только для работы тестового примера. В моем коде перед подписыванием cms выполняется инстанциация объекта типа X509Certificate2 по файлу сертификата. Сама инстанциация выполняется нормально. Но при попытке подписи и передаче сертификата в качестве сертификата подписанта происходит ошибка: System.Security.Cryptography.CryptographicException: Could not determine signature algorithm for the signer certificate.
  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 11.04.2017(UTC) Сообщений: 25
  Сказал(а) «Спасибо»: 1 раз
  
	 
	
     | 
    
        
            
		      
                Автор: Андрей Врагов  Всем доброго дня!
  Вопрос касательно данной темы, а именно, надо ли добавлять ссылку на пакет System.Security.Cryptography.X509Certificates из пропатченнкого вами CoreFx для работы с сертификатами содержащими ссылки на гостовые алгоритмы? В Вашем описании добавлены только две сборки, видимо, только для работы тестового примера. В моем коде перед подписыванием cms выполняется инстанциация объекта типа X509Certificate2 по файлу сертификата. Сама инстанциация выполняется нормально. Но при попытке подписи и передаче сертификата в качестве сертификата подписанта происходит ошибка: System.Security.Cryptography.CryptographicException: Could not determine signature algorithm for the signer certificate.
   Отбой. Сам виноват. Серт в хранилище был не связан с контейнером. Просто смутило сообщение об ошибке. В трассировке же дошел до сути причины. Собственно проблему можно было выявить еще на стадии инстанциации объекта типа серт. Свойство HasPrivateKey имело значение false. Всем спасибо.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close