Skip to content

Using GnuPG from Java. This is a JNI binding to the gpgme lib.

License

Notifications You must be signed in to change notification settings

5bodnar/gnupg-for-java

 
 

Repository files navigation

GnuPG for Java

GnuPG for Java is a Java wrapper for the gpgme (GnuPG Made Easy) library for working with the GnuPG encryption suite. It is a native binding to the gpgme using JNI. It requires gpgme 1.4.3 or newer, and expects to work with GnuPG 2.x as the "engine" in gpgme. With GnuPG 2.x, gpg-agent will handle prompting the user for the passphrase, as well as passphrase caching.

gpgpme is the standard library for developing third-party apps on top of GnuPG.

It should be easy to add Windows support by compiling a DLL, adding this to the jar and extend the loading mechanism to load a DLL on a Windows platform instead of loading a .so lib.

History

Stefan Richter originally wrote it for 32-Bit Intel GNU/Linux platforms. Some of his colleagues added 64-Bit Intel GNU/Linux support. It should build and run on other UNIX platforms too, but that has not been tested. The Guardian Project then ported it to GnuPG 2.x and Android as the basis of Gnu Privacy Guard for Android, and added lots of features and fixed lots of bugs in the process.

Setup for Building

You will need a JUnit jar to run the tests. If your system does not provide one already, you can download the jar and put it into the build/ directory of this project.

Debian/Ubuntu/Mint/etc

sudo apt-get install default-jdk make ant build-essential \
    libgpgme11-dev libgpg-error-dev

Windows

Signing Key Fingerprint: 61AC 3F5E E4BE 593C 13D6 8B1E 7CBD 620B EC70 B1B8

Mac OS X

You need to install GnuPG2 from one of a couple sources. You can get it from Homebrew, MacPorts, or Fink. Or you can install "GPGTools":https://gpgtools.org and then build gpgme from source.

Building

To build the gnupg-for-java.jar and libgnupg-for-java.so in build/, run this:

ant clean release

You can run the test suite using ant also:

ant test

If you want the optional javadoc in build/docs/, run:

ant javadoc

Hacking Notes

Please conform to our code format standard. For C files use ./format-code.sh. For Java files, use Eclipse with the Android mode from the Android project. The default Eclipse formatting is usually close enough.

About

Using GnuPG from Java. This is a JNI binding to the gpgme lib.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 53.9%
  • C 39.5%
  • HTML 4.0%
  • Makefile 2.3%
  • Shell 0.3%