Я новичок в Python. Я установил пакет xml sign и выполняю процесс xml подписи.
Ссылка на пакет python: https://pypi.org/project/signxml/
Мой xml файл генерируется. Однако XML код подписи немного отличается. Я был в состоянии соответствовать большей части, но у меня нет идеи, как соответствовать следующей.
Может кто-нибудь, пожалуйста, помогите мне в этом.
Другая часть является следующей меткой
<Signature>
Над этой частью должна быть эта
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
![enter image description here](https://i.stack.imgur.com/F5jag.png)
Когда я искал в знаке xml основной файл, я обнаружил следующее примечание.
To specify the location of an enveloped signature within **data**, insert a
``<ds:Signature Id="placeholder"></ds:Signature>`` element in **data** (where
"ds" is the "http://www.w3.org/2000/09/xmldsig#" namespace). This element will
be replaced by the generated signature, and excised when generating the digest.
Как внести изменения, чтобы это изменить. Ниже приведен мой python код
from lxml import etree
import xml.etree.ElementTree as ET
from signxml import XMLSigner, XMLVerifier
import signxml
el = ET.parse('example.xml')
root = el.getroot()
#cert = open("key/public.pem").read()
key = open("key/private.pem").read()
signed_root = XMLSigner(method=signxml.methods.enveloped,signature_algorithm='rsa-sha512',digest_algorithm="sha512").sign(root, key=key)
tree = ET.ElementTree(signed_root)
#dv = tree.findall(".//DigestValue");
#print(dv);
tree.write("new_signed_file.xml")
. Он берет один файл xml, выполняет цифровую подпись и создает новый файл.
Может кто-нибудь подсказать мне, где и какие изменения я должен сделать для этих требований?