/signxml_sunat

Perú - SUNAT - sign and verify xml

Primary LanguagePythonMIT LicenseMIT

SignXML Sunat: XML Signature in Python for SUNAT

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

Installation

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

Synopsis

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')

Authors

  • Danilo Britto Nuñez

Co-creativo

  • Miguel Caballero Bustinza

Bugs

Please report bugs, issues, feature requests, etc. on GitHub.