02ba35c1b6
* configure.ac (NEED_GPG_VERSION, NEED_GPGSM_VERSION) (NEED_G13_VERSION, NEED_GPGCONF_VERSION): Remove vars and all related checks. Do not check for any engine version. (HAVE_ASSUAN): Remove AM conditional. * src/Makefile.am: Remove separate component vars and always build all engines but uiserver. * src/dirinfo.c (WANT_GPGCONF_NAME): New. (struct dirinfo): Add field gpgconf_name. (_gpgme_get_default_gpgconf_name): Use WANT_GPGCONF_NAME. (get_gpgconf_item): Set gpgconf name and adjust for _gpgme_get_*_path now returning a malloced string. * src/engine.c (engine_ops): Always init all engines except for uiserver. * src/posix-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove unused functions. (walk_path): New. (_gpgme_get_gpg_path, _gpgme_get_gpgconf_path ): Re-implement using walk_path. * src/w32-util.c (_gpgme_get_gpgsm_path, _gpgme_get_g13_path): Remove unused functions. (_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Return a malloced string. * src/engine-g13.c (g13_get_req_version): Use a hardwired string with the required version. This info belongs into this file. * src/engine-gpg.c (gpg_get_req_version): Ditto. * src/engine-gpgconf.c (gpgconf_get_req_version): Ditto. * src/engine-gpgsm.c (gpgsm_get_req_version): Ditto. * tests/t-engine-info.c: Replace now useless test by an info output. * tests/gpg/Makefile.am (GPG, GPG_AGENT): Hardwire gpg and gpg-agent. * tests/gpgsm/Makefile.am (GPGSM): Hardwire gpgsm. Signed-off-by: Werner Koch <wk@gnupg.org>
114 lines
3.8 KiB
Plaintext
114 lines
3.8 KiB
Plaintext
GPGME - GnuPG Made Easy
|
|
---------------------------
|
|
|
|
Copyright 2004, 2006, 2010, 2012, 2013 g10 Code GmbH
|
|
|
|
This file is free software; as a special exception the author gives
|
|
unlimited permission to copy and/or distribute it, with or without
|
|
modifications, as long as this notice is preserved.
|
|
|
|
This file is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE.
|
|
|
|
|
|
Introduction
|
|
--------------
|
|
|
|
GnuPG Made Easy (GPGME) is a C language library that allows to add
|
|
support for cryptography to a program. It is designed to make access
|
|
to public key crypto engines like GnuPG or GpgSM easier for
|
|
applications. GPGME provides a high-level crypto API for encryption,
|
|
decryption, signing, signature verification and key management.
|
|
|
|
GPGME uses GnuPG and GpgSM as its backends to support OpenPGP and the
|
|
Cryptographic Message Syntax (CMS).
|
|
|
|
GPGME runs best on GNU/Linux or *BSD systems. Other Unices may
|
|
require small portability fixes, please send us your patches.
|
|
|
|
See the files COPYING, COPYING.LESSER, and each file for copyright and
|
|
warranty information. The file AUTHORS has a list of authors and
|
|
useful web and mail addresses.
|
|
|
|
|
|
Installation
|
|
--------------
|
|
|
|
See the file INSTALL for generic installation instructions.
|
|
|
|
Check that you have unmodified sources. See below on how to do this.
|
|
Don't skip it - this is an important step!
|
|
|
|
To build GPGME, you need to install libgpg-error (>= 1.11) and
|
|
Libassuan (>= 2.0.2).
|
|
|
|
For support of the OpenPGP protocol (default), you should use the
|
|
latest version of GnuPG (>= 1.4) , available at:
|
|
ftp://ftp.gnupg.org/gcrypt/gnupg/
|
|
For support of the CMS (Cryptographic Message Syntax) protocol, you
|
|
need a GnuPG version >= 2.0.
|
|
|
|
On some platforms GPGME based applications might hang at certain
|
|
operations when using GPGME_PROTOCOL_CMS. A workaround for this
|
|
problem is to build with the configure option --disable-fd-passing.
|
|
|
|
For building the GIT version of GPGME please see the file README.GIT
|
|
for more information.
|
|
|
|
|
|
How to Verify the Source
|
|
--------------------------
|
|
|
|
In order to check that the version of GPGME which you are going to
|
|
install is an original and unmodified one, you can do it in one of the
|
|
following ways:
|
|
|
|
a) If you have a trusted Version of GnuPG installed, you can simply check
|
|
the supplied signature:
|
|
|
|
$ gpg --verify gpgme-x.y.z.tar.gz.sig
|
|
|
|
This checks that the detached signature gpgme-x.y.z.tar.gz.sig is
|
|
indeed a a signature of gpgme-x.y.z.tar.gz. The key used to create
|
|
this signature is either of:
|
|
|
|
"pub 2048R/4F25E3B6 2011-01-12 Werner Koch (dist sig)"
|
|
"pub 1024D/87978569 1999-05-13
|
|
Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>
|
|
Marcus Brinkmann <mb@g10code.com>"
|
|
|
|
If you do not have this key, you can get it from any keyserver. You
|
|
have to make sure that this is really the key and not a faked one.
|
|
You can do this by comparing the output of:
|
|
|
|
$ gpg --fingerprint 0x4F25E3B6
|
|
|
|
with the fingerprint published elsewhere.
|
|
|
|
b) If you don't have any of the above programs, you have to verify
|
|
the SHA1 checksum:
|
|
|
|
$ sha1sum gpgme-x.y.z.tar.gz
|
|
|
|
This should yield an output _similar_ to this:
|
|
|
|
fd9351b26b3189c1d577f0970f9dcadc3412def1 gpgme-x.y.z.tar.gz
|
|
|
|
Now check that this checksum is _exactly_ the same as the one
|
|
published via the announcement list and probably via Usenet.
|
|
|
|
|
|
Documentation
|
|
---------------
|
|
|
|
For information how to use the library you can read the info manual,
|
|
which is also a reference book, in the doc/ directory. The programs
|
|
in the tests/gpg/ directory may also prove useful.
|
|
|
|
Please subscribe to the gnupg-devel@gnupg.org mailing list if you want
|
|
to do serious work.
|
|
|
|
For hacking on GPGME, please have a look at doc/HACKING.
|