pycades не может подписать XML файл, вылетает ошибка 0x800705BA
Пытаюсь стандартно подписать XML файл используя CryptoPro 5.0 и библиотеку pycades.
def sign_xml(self, xml):
import pycades
store = pycades.Store()
store.Open()
certs = store.Certificates
signer = pycades.Signer()
signer.Certificate = certs.Item(1)
signer.CheckCertificate = True
signedXML = pycades.SignedXML()
_xml = self.xml_example()
signedXML.Content = _xml
signedXML.SignatureType = pycades.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED | pycades.CADESCOM_XADES_BES
signature = signedXML.Sign(signer)
return signature
При попытке подписать XML возникает ошибка:
Exception: An error was encountered while processing an XML digital signature. (0x800705BA)
Сам файл валидный и проходит верификацию без подписи на сервере, проблема при попытке подписать возникает из-за namespace файла. Примеры:
- XML, у которого удалены namespacы, подписывается успешно
- XML, исходный XML, который получается при заполнении данных, не подписывается
<?xml version='1.0' encoding='utf-8'?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<NewShop>
<CreateNewShop Request="c8763dad-c432-427b-a2b9-9be502ced07e" >
<Shop>
<Guid="38dae3ec-c2b0-43e5-8a27-b24dc0784807"/>
</Shop>
</CreateNewShop>
</NewShop>
</soap-env:Body>
</soap-env:Envelope>
<?xml version='1.0' encoding='utf-8'?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"">
<soap-env:Body>
<ns0:NewShop xmlns:ns0="shopcreator">
<ns0:CreateNewShop Request="c8763dad-c432-427b-a2b9-9be502ced07e" >
<ns0:Shop>
<Guid="38dae3ec-c2b0-43e5-8a27-b24dc0784807"/>
</ns0:Shop>
</ns0:CreateNewShop>
</ns0:NewShop>
</soap-env:Body>
</soap-env:Envelope>
Вопрос, как настроить pycades так, чтобы он корректно обрабатывал namespace у файла?