I have managed to sign xml so I am reporting here in case some else needs this info.Also if someone more experienced see some possible improvment please leave a note. So my input is a pfx file. I am forced to use both pyopeenssl and m2crypto. I am using PyOpenssl to extract certificate and private key. pfx=open('/home/cikic/manc.pfx','rb').read() PKCS=crypto.load_pkcs12(pfx,'mypfxpass') cert=PKCS.get_certificate() #PKey=cert.get_pubkey() pk=PKCS.get_privatekey() pkStr=crypto.dump_privatekey(crypto.FILETYPE_PEM,pk)
I am using PyOpenssl to extract pem, serial number and issuer from certificate but you could do it also with m2crypto. I am constructin m2crypto RSA object with rsa=RSA.load_key_string(pkStr) I am using m2crypto MessageDigest('sha1') or MessageDigest('md5') as needed and I am singing the hash with dig=MessageDigest('sha1') dig.update(xmlstring) dgst=dig.digest() retVal=rsa.sign(dgst,'sha1') Then I use sval=base64.b64encode(retVal) to get the signature value Essentially I use pyopenssl just to get private key since I didn't find m2crypto function that reads pfx file. Nenad -- http://mail.python.org/mailman/listinfo/python-list