SignXML Sunat is an implementation of the W3C XML Signature standard in Python. SignXML Sunat implements all of the required components of the standard, and most recommended ones. Its features are:
- Well-supported, portable, reliable dependencies: lxml, xmlsec
- Simple interface with useful defaults
- Compactness, readability, and extensibility
pip install signxml_sunat
Note: SignXML SUNAT depends on lxml and xmlsec
OS | Python | Command |
---|---|---|
Ubuntu 16.04, 18.04 | Python 3 | pip install lxml xmlsec |
Note: In windows you need install a binary for lxml and xmlsec https://www.lfd.uci.edu/~gohlke/pythonlibs
SignXML SUNAT uses the ElementTree API (also supported by lxml) to work with XML data.
from signxml_sunat import XMLSigner, XMLVerifier
signed_root = XMLSigner().sign('doc.xml', key_data='rsakey.pem', cert_data='rsacert.pem')
# if you need password
# signed_root = XMLSigner().sign('doc.xml', key_data='rsakey.pem', cert_data='rsacert.pem', password='p4ssw0rd')
verified = XMLVerifier().verify('signed_doc.xml', key_data='rsakey.pem')
# if you need password
# verified_data = XMLVerifier().verify('signed_doc.xml', key_data='rsakey.pem', password='p4ssw0rd')
- Danilo Britto Nuñez
- Miguel Caballero Bustinza
Please report bugs, issues, feature requests, etc. on GitHub.