Question

I want to encrypt few files using python what is the best way I can use gpg/pgp using any standard/famous python libraries?

Was it helpful?

Solution

PyCrypto seems to be the best one around.

OTHER TIPS

Try KeyCzar

Very easy to implement.

I use GPGme The main strength of GPGme is that it read and writes files at the OpenPGP standard (RFC 4880) which can be important if you want to interoperate with other PGP programs.

It has a Python interface. Warning: it is a low-level interface, not very Pythonic.

If you read French, see examples.

Here is one, to check a signature:

signed = core.Data(sys.stdin.read())
plain = core.Data()
context = core.Context()

context.op_verify(signed, None, plain)
result = context.op_verify_result()

sign = result.signatures
while sign:
    if sign.status != 0:
        print "BAD signature from:"
    else:
        print "Good signature from:"
    print "  uid:        ", context.get_key(sign.fpr, 0).uids.uid
    print "  timestamp:  ", sign.timestamp
    print "  fingerprint:", sign.fpr
    sign = sign.next

I use pyOpenSSL, its a python binding for OpenSSL which has been around for a long time and is very well tested. I did some benchmarks for my application, which is very crypto intensive and it won hands down against pyCrypto. YMMV.

See Google's Keyczar project, which provides a nice set of interfaces to PyCrypto's functionality.

I like pyDes (http://twhiteman.netfirms.com/des.html). It's not the quickest, but it's pure Python and works very well for small amounts of encrypted data.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top