pgpainless/docs/index.md

2.7 KiB

PGPainless is a wrapper around Bouncycastle, which provides an easy to use, intuitive, but also powerful API for OpenPGP. Its main functionality is encrypting, signing, decrypting and verifying data, as well as generating encryption keys.

Note, that the project is still in alpha phase.

About

PGPainless was created during a Google Summer of Code project, for which an easy to use OpenPGP API for Java and Android was needed. Originally the author looked into forking bouncy-gpg, but since support for lower Android versions was a requirement, PGPainless was born as an independent project. The library is however heavily influenced by bouncy-gpg.

Easy to use API

One main focus of the project is ease of use. Using Bouncycastle can be a hassle, since simple tasks require a substantial amount of boilerplate code and small mistakes are easily made. PGPainless aims at providing a simple interface to get the job done quickly, while not trading away functionality.

Android Support

PGPainless is designed to work on Android versions down to API level 9 (Gingerbread). This makes PGPainless a good choice for implementing OpenPGP encryption in your Android app.

Compatibility with certain Android APIs is ensured through Animalsniffer.

Releases

PGPainless is released on the maven central repository. Including it in your project is simple:

Maven:

<dependency>
    <groupId>org.pgpainless</groupId>
    <artifactId>pgpainless-core</artifactId>
    <version>0.0.1-alpha2</version>
</dependency>

Gradle:

repositories {
	mavenCentral()
}

dependencies {
	compile 'org.pgpainless:pgpainless-core:0.0.1-alpha2'
}

There are also snapshot releases available.

Development

PGPainless is currently developed by @vanitasvitae.

Contribute

Contributions are always welcome :) The project is developed in the following places:

Pull requests are accepted on either of them.

Bug Reports

PGPainless is in a very early state of development and the likelihood of bugs is quite high. If you encounter a bug, please make sure to check, whether the bug has already been reported either here, or here, in order to avoid duplicate bug reports.