Size: 3345
Comment: The manuals are quite up-to-date. Drop the scary warning.
|
Size: 3600
Comment: updated gpgme-sharp entry, which more history information and two links.
|
Deletions are marked like this. | Additions are marked like this. |
Line 32: | Line 32: |
* [[http://danm.de/index.php?action=source|gpgme-sharp]] in alpha for 32bit windows (as of 2014-09). | * gpgme-sharp originally done 2009 by Daniel Mueller <daniel@danm.de>. The code quality was considered "experimental" 32bit for windows, but [[https://stackoverflow.com/questions/4156819/using-the-gpgme-library-from-net|some reported success]]. It seems the code can be found at https://github.com/slayercat/gpgme-sharp [as of 2017-09-08]. |
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.
A number of GPGME bindings for other programming languages/environments exist (Please point us to missing entries or corrections or add them directly in the wiki.):
All / C
- gpgme (GPG Made Easy) is the official GnuPG API. It is implemented in C itself, but this is what you should use from your language as well.
GPGME bindings
A number of language bindings are maintained within the GPGME repository. If possible, try to use these bindings.
- C++: Based upon the code previously maintained by KDE.
- Qt: Based upon the code previously maintained by KDE.
- Python: Based upon the 'pyme' bindings, should be backwards compatible.
- Common Lisp
Third-party GPGME bindings
C++ wrappers
- http://quickgit.kde.org/?p=kdepimlibs.git gpgme++ is a wrapper for gpgme in kdepimlibs
C# (c-sharp) wrappers
- gpgme-sharp originally done 2009 by Daniel Mueller <daniel@danm.de>. The code quality was considered "experimental" 32bit for windows, but some reported success. It seems the code can be found at https://github.com/slayercat/gpgme-sharp [as of 2017-09-08].
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 for python2 (continuation of the old version)
- pyme for python3 SWIG generated wrapper for python3, port of pyme 0.9, designated language binding to be included in gpgme.
- https://launchpad.net/pygpgme manually written wrapper in C for python2 and python3. GNU LGPL v?=2. Packaged for Debian and Ubuntu.
Ruby wrappers
- ruby-gpgme is a ruby wrapper, which can be installed with: gem install gpgme.
(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 arguments and text outputs are not an (official) 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.
Python
- python-gnupg using the subprocess module to call the gpg executables (not using the recommended gpgme for python alternatives, see above). Xorg Style license.