AlexMAS / GostCryptography

.NET driver for ViPNet CSP and CryptoPro CSP
MIT License
128 stars 41 forks source link

Подпись и проверка подписи XML-документа с предварительным XSLT-преобразованием подписываемых данных #29

Open ttvvaa opened 4 years ago

ttvvaa commented 4 years ago

SignedXmlTransformTest - не проходит.

В лог пишет: System.Security.Cryptography.Xml.SignedXml Information: 17 : [GostSignedXmlImpl#02093e65, UnsafeTransformMethod] Метод преобразования "http://www.w3.org/TR/1999/REC-xslt-19991116" не находится в списке безопасных. Безопасные методы преобразования: "http://www.w3.org/TR/2001/REC-xml-c14n-20010315", "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments", "http://www.w3.org/2001/10/xml-exc-c14n#", "http://www.w3.org/2001/10/xml-exc-c14n#WithComments", "http://www.w3.org/2000/09/xmldsig#enveloped-signature", "http://www.w3.org/2000/09/xmldsig#base64", "urn:mpeg:mpeg21:2003:01-REL-R-NS:licenseTransform", "http://www.w3.org/2002/07/decrypt#XML". System.Security.Cryptography.Xml.SignedXml Information: 12 : [GostSignedXmlImpl#02093e65, VerificationFailure] Проверка Ссылки не прошла.

Одно из решений - добавить в реестр http://go.microsoft.com/fwlink/?linkid=747061&clcid=0x409

https://support.microsoft.com/en-us/help/3148821/after-you-apply-security-update-3141780-net-framework-applications-enc

AlexMAS commented 4 years ago

Спасибо за информацию. К сожалению, в коде невозможно обработать данную ситуацию, поскольку основную работу выполняет стандартный System.Security.Cryptography.Xml.SignedXml.

JumpAttacker commented 4 years ago

Спасибо за информацию. К сожалению, в коде невозможно обработать данную ситуацию, поскольку основную работу выполняет стандартный System.Security.Cryptography.Xml.SignedXml.

Добрый день. Но в стандартном signedXml есть вот такая вещь

signedXml.SafeCanonicalizationMethods.Add("urn://smev-gov-ru/xmldsig/transform");

можно и сюда сделать такую?

AlexMAS commented 4 years ago

Думаю, да, можно пробросить это свойство.

JumpAttacker commented 4 years ago

Было бы круто, буду ждать, благодарю.

AlexMAS commented 4 years ago

Добавил свойство GostSignedXml.SafeCanonicalizationMethods, которое доступно, начиная с версии .NET Framework 4.5.1 включительно. Обновление опубликовано в v2.0.8.

JumpAttacker commented 4 years ago

Теперь все хорошо работает, благодарю. Хоть тема и не моя, но, думаю, ее можно закрывать