Skip to main content

Pretty Good Privacy for Python

Project description

Latest version Travis-CI Coveralls

Homepage: None yet.

PGPy is a Python (2 and 3) library for implementing Pretty Good Privacy into Python programs.

Features

Currently, PGPy can load keys and signatures of all kinds in both ASCII armored and binary formats.

It can sign and verify RSA signatures only, at the moment.

Installation

To install PGPy, simply:

$ pip install PGPy

Examples

with pubsec.key("DEADBEEF"):
    # You can sign things by specifying a private key.
    # If the key is protected, you may need to unlock it first, otherwise, :py:meth:`PGPKeyring.sign` will raise an exception
    if pubsec.selected_privkey.encrypted:
        pubsec.unlock("C0rrectPassphr@se")

    # now sign your document. This can be a path, URL, file-like object, string, or bytes.
    sig = pubsec.sign("path/to/document")

    # if you want to write the signature to disk, that's easy too!
    sig.path = "path/to/document.asc"
    sig.write()

    # You can verify the signature using the public key half of the same key:
    if pubsec.verify("path/to/document", str(sig)):
        print("Signature in memory verified!")

    # or use the signature you just wrote to disk
    if pubsec.verify("path/to/document", "path/to/document.asc"):
        print("Signature on disk verified!")

# When you exit the context-management block, decrypted secret key material is removed from memory,
# leaving only the encrypted key material.

# When verifying documents with signatures, you don't need to specify a specific key ahead of time.
# PGPy will figure out which key signed it using metadata in the signature:
ubuntupubkeys = pgpy.PGPKeyring("http://us.archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg")
with ubuntupubkeys.key():
    # PGPKeyring.verify returns a SignatureVerification object which can be compared directly as a boolean.
    # It also retains some additional information you can use:
    sigv = pubsec.verify("http://us.archive.ubuntu.com/ubuntu/dists/precise/Release",
                         "http://us.archive.ubuntu.com/ubuntu/dists/precise/Release.gpg")
    if sigv:
        print("Signature was verified using {key}".format(key=sigv.key.keyid))

Documentation

PGPy Documentation <http://commod0re.github.io/PGPy/>

Requirements

License

MIT licensed. See the bundled LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PGPy-0.1.0.tar.gz (22.1 kB view details)

Uploaded Source

File details

Details for the file PGPy-0.1.0.tar.gz.

File metadata

  • Download URL: PGPy-0.1.0.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PGPy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5a3918d730fdebca3d683d5859a6733033822b30141b25f36a33b8ccbaeea19b
MD5 8a61df944865b85b972638ce4b6f0163
BLAKE2b-256 79c058408c33a4df458cbd76af06a1d45791b0e521d7a73bedb8cd157922a1bd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page