2020-01-20 00:05:21 +01:00
PGPainless is a wrapper around [Bouncycastle ](https://www.bouncycastle.org/ ), 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.
2018-07-27 14:18:41 +02:00
Note, that the project is still in alpha phase.
## About
2020-01-20 00:05:21 +01:00
PGPainless was created [during a Google Summer of Code project ](https://blog.jabberhead.tk/summer-of-code-2018/ ),
for which an easy to use OpenPGP API for Java and Android was needed.
Originally the author looked into forking [bouncy-gpg ](https://github.com/neuhalje/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 written by Jens Neuhalje.
2018-07-27 14:18:41 +02:00
### Easy to use API
2020-01-20 00:05:21 +01:00
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.
2018-07-27 14:18:41 +02:00
2018-08-15 19:04:48 +02:00
For examples about how to use the API, see the projects
[readme ](https://github.com/pgpainless/pgpainless/blob/master/README.md ).
2018-07-27 14:18:41 +02:00
### Android Support
2020-01-20 00:05:21 +01:00
PGPainless is designed to work on Android versions down to [API level 9 ](https://developer.android.com/about/versions/android-2.3 ) (Gingerbread).
This makes PGPainless a good choice for implementing OpenPGP encryption in your Android app.
2018-07-27 14:18:41 +02:00
Compatibility with certain Android APIs is ensured through [Animalsniffer ](http://www.mojohaus.org/animal-sniffer/ ).
## Releases
PGPainless is released on the maven central repository. Including it in your project is simple:
Maven:
```xml
< dependency >
< groupId > org.pgpainless< / groupId >
< artifactId > pgpainless-core< / artifactId >
2020-08-30 22:51:39 +02:00
< version > 0.1.0< / version >
2018-07-27 14:18:41 +02:00
< / dependency >
```
Gradle:
```gradle
repositories {
mavenCentral()
}
dependencies {
2020-08-30 22:51:39 +02:00
compile 'org.pgpainless:pgpainless-core:0.1.0'
2018-07-27 14:18:41 +02:00
}
```
2020-01-20 00:05:21 +01:00
There are also [snapshot releases ](https://oss.sonatype.org/content/repositories/snapshots/org/pgpainless/pgpainless-core/ ) available.
2018-07-27 14:18:41 +02:00
## Development
2020-01-20 00:05:21 +01:00
PGPainless is currently developed by [@vanitasvitae ](https://blog.jabberhead.tk ).
2018-07-27 14:18:41 +02:00
### Contribute
Contributions are always welcome :) The project is developed in the following places:
* [Github ](https://github.com/pgpainless/pgpainless )
2020-01-20 00:05:21 +01:00
* [Codeberg ](https://codeberg.org/pgpainless/pgpainless )
2018-07-27 14:18:41 +02:00
Pull requests are accepted on either of them.
### Bug Reports
2020-08-30 22:51:39 +02:00
PGPainless is in early state of development and the likelihood of bugs is quite high.
2020-01-20 00:05:21 +01:00
If you encounter a bug, please make sure to check, whether the bug has already been reported
either [here ](https://github.com/pgpainless/pgpainless/issues ),
or [here ](https://codeberg.org/PGPainless/pgpainless/issues ), in order to avoid duplicate bug reports.