[pyar] FIRMA ELECTRONICA

Mariano Reingart reingart en gmail.com
Jue Abr 23 03:14:38 ART 2015


2015-04-20 15:37 GMT-03:00 Wilson Cunalata <wilsonrobertocunalata en gmail.com>
:

> Buenos dias
>
> Alguna persona que haya trabajado firmando xml con python en formato
> xades-bes
>

Hace algún tiempo estuve trabajando con python y firmas xml:

https://github.com/pysimplesoap/pysimplesoap/blob/master/pysimplesoap/xmlsec.py

Lo hice para WSSE (WebService Security):

https://github.com/pysimplesoap/pysimplesoap/blob/master/pysimplesoap/wsse.py

Calculo que se podría adaptar a firmar documentos general.

A grandes razgos funciona ok, pero hay un tema con la forma de
"canonicalizar" (c14n, "limpiar" y formatear de manera estándard el XML),
en particular con:

CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"

InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"
PrefixList="soap"

Hay algunos servidores que utilizan este método que tiene algún tipo de
particularidad con los prefijos de los espacios de nombre, pero no he
tenido tiempo de analizarlo (el modulo c14n.py "legado" no creo que lo
soporte, y lxml es bastante más complejo de adaptar -hasta donde recuerdo-).
Lamentablemente el hash calculado no coincide, entonces no se puede
verificar la firma de la respuesta, pero para el requerimiento, si parece
funcionar (salvo que te obliguen a usar ese tipo de canonicalización).

En estos días no tengo mucho tiempo como para colaborar con esto, pero si
estas interesado puedo darte una mano inicial y vemos que se puede hacer.

Por cierto, hay otras bibliotecas como xmlsec que ya traen este tipo de
cuestiones (al menos en teoría, algunas con bindings para python), pero por
lo que ví son muchísimo más complejas y difíciles de instalar / utilizar.
También, al hacerlo con las bibliotecas más tradicionales (o incluso python
puro + M2Crypto), me parece un camino mejor para entender como funciona el
tema.

Sds

Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150423/a75b5fdd/attachment.html>


More information about the pyar mailing list