First take on the low-level assuan interface.
[gpgme.git] / README
1                   GPGME - GnuPG Made Easy
2                 ---------------------------
3
4                Copyright 2004, 2006 g10 Code GmbH
5
6 This file is free software; as a special exception the author gives
7 unlimited permission to copy and/or distribute it, with or without
8 modifications, as long as this notice is preserved.
9
10 This file is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
12 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 PURPOSE.
14
15
16 Introduction
17 --------------
18
19 GnuPG Made Easy (GPGME) is a C language library that allows to add
20 support for cryptography to a program.  It is designed to make access
21 to public key crypto engines like GnuPG or GpgSM easier for
22 applications.  GPGME provides a high-level crypto API for encryption,
23 decryption, signing, signature verification and key management.
24
25 GPGME uses GnuPG and GpgSM as its backends to support OpenPGP and the
26 Cryptographic Message Syntax (CMS).
27
28 GPGME runs best on GNU/Linux or *BSD systems.  Other Unices may
29 require small portability fixes, send us your patches.
30
31 See the file COPYING.LESSER and each file for copyright and warranty
32 information.
33
34
35 Installation
36 --------------
37
38 See the file INSTALL for generic installation instructions.
39
40 Check that you have unmodified sources.  See below on how to do this.
41 Don't skip it - this is an important step!
42
43 To build GPGME, you need to install libgpg-error.  You need at least
44 libgpg-error 0.5.
45
46 For support of the OpenPGP protocol (default), you should use the
47 latest version of GnuPG 1.2 or 1.4, available at:
48 ftp://ftp.gnupg.org/gcrypt/gnupg/
49
50 You need at least GnuPG 1.2.2.
51
52 If configure can't find the `gpg' binary in your path, you can specify
53 the location with the --with-gpg=/path/to/gpg argument to configure.
54
55 For support of the CMS (Cryptographic Message Syntax) protocol, you
56 need the latest CVS version of GnuPG 1.9, which is available in the
57 GnuPG repository:
58 http://www.gnupg.org/download/cvs_access.html
59 Use the tag `GNUPG-1-9-BRANCH'.  There are also snapshots available at:
60 ftp://ftp.gnupg.org/gcrypt/alpha/gnupg/
61
62 You need at least GpgSM 1.9.6.
63
64 If configure can't find the `gpgsm' binary in your path, you can
65 specify the location with the --with-gpgsm=/path/to/gpgsm argument to
66 configure.
67
68 For building the CVS version of GPGME please see the file README.CVS
69 for more information.
70
71
72 How to Verify the Source
73 --------------------------
74
75 In order to check that the version of GPGME which you are going to
76 install is an original and unmodified one, you can do it in one of the
77 following ways:
78
79 a) If you have a trusted Version of GnuPG installed, you can simply check
80    the supplied signature:
81
82         $ gpg --verify gpgme-x.y.z.tar.gz.sig
83
84    This checks that the detached signature gpgme-x.y.z.tar.gz.sig is
85    indeed a a signature of gpgme-x.y.z.tar.gz.  The key used to create
86    this signature is either of:
87
88    "pub  1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>"
89    "pub  1024D/87978569 1999-05-13
90                         Marcus Brinkmann <Marcus.Brinkmann@ruhr-uni-bochum.de>
91                         Marcus Brinkmann <mb@g10code.com>"
92
93    If you do not have this key, you can get it from any keyserver.  You
94    have to make sure that this is really the key and not a faked one.
95    You can do this by comparing the output of:
96
97         $ gpg --fingerprint 0x57548DCD
98
99    with the fingerprint published elsewhere.
100
101 b) If you don't have any of the above programs, you have to verify
102    the SHA1 checksum:
103
104         $ sha1sum gpgme-x.y.z.tar.gz
105
106    This should yield an output _similar_ to this:
107
108    fd9351b26b3189c1d577f0970f9dcadc3412def1  gpgme-x.y.z.tar.gz
109
110    Now check that this checksum is _exactly_ the same as the one
111    published via the announcement list and probably via Usenet.
112
113
114 Documentation
115 ---------------
116
117 For information how to use the library you can read the info manual,
118 which is also a reference book, in the doc/ directory.  The programs
119 in the tests/gpg/ directory may also prove useful.
120
121 Please subscribe to the gnupg-devel@gnupg.org mailing list if you want
122 to do serious work.
123