Size: 683
Comment: Added a head line
|
Size: 2003
Comment: added a section on non-gpgme solutions
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= GPGME an API to GnuPG | = GPGME - an API to GnuPG |
Line 6: | Line 6: |
A number of binding form other languages exist: | A number of binding for other programming languages/environments exist: |
Line 8: | Line 8: |
== C == * [[https://www.gnupg.org/gpgme.html|gpgme]] (~GPG Made Easy) is the official GnuPG API written in C == C++ wrappers == * http://quickgit.kde.org/?p=kdepimlibs.git gpgme++ is a wrapper for gpgme in kdepimlibs == Java wrappers == * [[https://github.com/guardianproject/gnupg-for-java|GnuPG-for-Java]] is a Java wrapper for gpgme >=1.5 and GnuPG >=2.x * [[https://github.com/smartrevolution/gnupg-for-java|GnuPG-for-Java]] is a Java wrapper for gpgme and GnuPG 1.x * [[https://github.com/guardianproject/gnupg-for-android|Gnu Privacy Guard]] is an Android app based [[https://github.com/guardianproject/gnupg-for-java|GnuPG-for-Java]] and gpgme to provide a GnuPG engine in Android |
|
Line 15: | Line 32: |
== C++ wrappers == | = (not recommended) calling executables directly = |
Line 17: | Line 34: |
* http://quickgit.kde.org/?p=kdepimlibs.git gpgme++ is a wrapper for gpgme in kdepimlibs | A number of elder applications call ~GnuPG executables in a subprocess and interact with them via command line arguments and file-descriptors. This is less perferable to ~G~PGME, because the command line and text outputs are not considered a guarenteed API to ~G~nuPG. While there is an effort made to keep them stable, using the official ~G~PGME API can manage this more precisely and thus you end up with a more robust solution. == Objective-C == * [[https://github.com/GPGTools/Libmacgpg|Libmacgpg]] is a Mac OS X Framework built on top of GnuPG (but not gpgme), used as part of the [[https://gpgtools.org/|GPGTools suite]]. |
GPGME - an API to GnuPG
The recommended way to use the GnuPG crypto stack from your application is GPGME, which is written in C. Here is the online version of the manual (maybe out of date).
A number of binding for other programming languages/environments exist: Below is an incomplete list:
C
C++ wrappers
- http://quickgit.kde.org/?p=kdepimlibs.git gpgme++ is a wrapper for gpgme in kdepimlibs
Java wrappers
- GnuPG-for-Java is a Java wrapper for gpgme >=1.5 and GnuPG >=2.x
- GnuPG-for-Java is a Java wrapper for gpgme and GnuPG 1.x
- Gnu Privacy Guard is an Android app based GnuPG-for-Java and gpgme to provide a GnuPG engine in Android
Python wrappers
- pyme SWIG generated wrapper (continuation of the old version)
- https://launchpad.net/pygpgme manually written wrapper in C
(not recommended) calling executables directly
A number of elder applications call GnuPG executables in a subprocess and interact with them via command line arguments and file-descriptors. This is less perferable to GPGME, because the command line and text outputs are not considered a guarenteed API to GnuPG. While there is an effort made to keep them stable, using the official GPGME API can manage this more precisely and thus you end up with a more robust solution.
Objective-C
- Libmacgpg is a Mac OS X Framework built on top of GnuPG (but not gpgme), used as part of the GPGTools suite.