# PGPy Documentation

`PGPy` is a Python implementation of the OpenPGP specification, as described in RFC 4880.

It aims to be easy to use above all else, but also to eventually embody a complete, compliant implementation of the specification.

Contents:

- Installation
  - Platform Specific Notes
  - Installation
- Examples
  - Keys
  - Messages
  - Actions
  - Exporting PGP* Objects
- API
  - Exceptions
  - Constants
  - Classes
  - Other Objects
- OpenPGP Implementation Progress
  - OpenPGP RFCs
  - Non-RFC Extensions
- Changelog
  - v0.6.0
  - v0.5.4
  - v0.5.3
  - v0.5.2
  - v0.5.0
  - v0.4.3
  - v0.4.2
  - v0.4.1
  - v0.4.0
  - v0.3.0
  - v0.2.3
  - v0.2.2
  - v0.2.1
  - v0.2.0
  - v0.1.0

## Installation

### Platform Specific Notes

#### Windows

PGPy has not been formally tested on Windows. I see no reason why it wouldn’t work, but your mileage may vary. If you try it out and run into any issues, please submit bug reports on the issue tracker!

#### Linux

##### Debian

PGPy is now in Debian Testing, and can be installed simply:

    $ sudo apt install python3-pgpy

##### Arch Linux

PGPy is available on the AUR

##### Gentoo

There are gentoo ebuilds available in the gentoo branch

##### RedHat/CentOS

Coming Soon!

##### Other Linux

Building PGPy on Linux requires a C compiler, headers for Python, headers for OpenSSL, and libffi, to support building Cryptography.

For Debian/Ubuntu, these requirements can be installed like so:

    $ sudo apt install build-essential libssl-dev libffi-dev python-dev

For Alpine linux, the build requirements can be installed like so:

    $ apk add build-base libressl-dev libffi-dev python-dev

You may need to install `python3-dev` if you are using PGPy on Python 3.

For Fedora/RHEL derivatives, the build requirements can be installed like so:

    $ sudo yum install gcc libffi-devel python-devel openssl-devel

#### Mac OS X

If you are on Mac OS, you may experience more limited functionality without installing a more capable version of OpenSSL.

You may refer to Cryptography’s documentation on Building cryptography on macOS for information on how to do so.

### Installation

Once you have the prerequisites specified above, PGPy can be installed from PyPI using pip, like so:

    $ pip install PGPy