Пытаюсь подписать запрос для отправки в СМЭВ шлюз. У меня есть пример запроса, где элемент Transforms имеет следующий вид:
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/>
<Transforms>
насколько я понял, режим подписания CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED не подходит, если нужно несколько Transform'ов. Я стал использовать CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE. Передаю CPSigner'у примерно следующий XML:
<request xmlns="http://www.bftcom.com/smevgate/">
...
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
...
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<Transform Algorithm="urn://smev-gov-ru/xmldsig/transform"/>
</Transforms>
..
</Reference>
...
</Signature>
...
</request>
На вызове oSignedXml.Sign(oSigner) валится "An error was encountered while processing an XML digital signature. (0x800705BA)" где-то во внутренностях плагина. Убираю трансформ - всё корректно подписывается. Плагин не умеет работать с этим алгоритмом? Через Sharpei мне до этого удалось корректно подписать.
Версия плагина 1.2.4, версия CSP - 4.0.9939, браузер Chrome 65.0.3325.181
Сборка персонального компьютера от Artline: умный выбор для современных пользователей