2003-05-27 Moritz Schulte <moritz@g10code.com>
[libgcrypt.git] / README
1                     libgcrypt - The GNU crypto library
2                    ------------------------------------
3                             Version 1.1
4
5     Copyright 2000, 2002 Free Software Foundation, Inc.
6
7     This file is free software; as a special exception the author gives
8     unlimited permission to copy and/or distribute it, with or without
9     modifications, as long as this notice is preserved.
10
11     This file is distributed in the hope that it will be useful, but
12     WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
13     implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
15
16     THIS IS A DEVELOPMENT VERSION, THE FIRST STABLE VERSION WILL BE 1.2.0.
17
18
19     Overview
20     --------
21
22     Libgcrypt is a general purpose crypto library based on the code
23     used in GnuPG.  We can't start with a new version number because
24     libgcrypt was part of gnupg 1.1 and some applications already used
25     it and tested for the version number. We believe that the API can
26     stay as it is, except that new functions may be added in the
27     future.
28
29
30     CVS
31     ---
32
33     If you are using the CVS version, make sure that you have the
34     latest automake (I am using Debian Sid) and run ./autogen.sh to
35     create configure.  You also need to enable maintainer mode at
36     configure time with the `--enable-maintainer-mode' switch; without
37     this switch, the documentation can not be build, since the file
38     `version.texi', which is needed for building the documentation, will
39     only be generated, if maintainer mode is enabled.
40
41
42     Mailing List
43     ------------
44
45     You may want to join the developer's mailing list
46     gcrypt-devel@gnupg.org by sending mail with a subject of
47     "subscribe" to gcrypt-devel-request@gnupg.org.  An archive of this
48     list is available at http://lists.gnupg.org .
49
50
51     License
52     -------
53     
54     Most of this library is distributed under the terms of the GNU
55     Lesser General Public License (LGPL); see the file COPYING.LIB for
56     the actual terms.  However some parts are distributed under the
57     GNU General Public License (GPL) so if you configure Libgcrypt to
58     include these modules, you have to comply with the conditions of
59     the GPL as found in the file COPYING.  The modules under the GPL
60     are:
61
62       rndunix - Entropy gatherer for Unices without a /dev/random
63       rndw32  - Entropy gatherer for MS Windows
64
65     The documentation is available under the terms of the GNU Free
66     Documentation License; see the file COPYING.DOC for the terms.
67
68     This library used to be available under the GPL - this was changed
69     with version 1.1.7 with the rationale that there are now many free
70     crypto libraries available and many of them come with capabilities
71     similar to Libcrypt.  We decided that to foster the use of
72     cryptography in Free Software an LGPLed library would make more
73     sense because it avoids problems due to license incompatibilities
74     between some Free Software licenses and the GPL. 
75
76     Please note that in many cases it is better for a library to be
77     licensed under the GPL, so that it provides an advantage for free
78     software projects.  The Lesser GPL is so named because it does
79     less to protect the freedom of the users of the code that it
80     covers.  See http://www.gnu.org/philosophy/why-not-lgpl.html for
81     more explanation.
82
83
84     Configure options 
85     -----------------
86     Here is a list of configure options which are sometimes useful 
87     for installation.
88
89      --enable-m-guard
90                      Enable the integrated malloc checking code. Please
91                      note that this feature does not work on all CPUs
92                      (e.g. SunOS 5.7 on UltraSparc-2) and might give
93                      you a bus error.
94
95      --disable-asm
96                      Do not use assembler modules.  It is not possible 
97                      to use this on some CPU types.
98                     
99      --enable-ld-version-script
100                      Libgcrypt tries to build a library where internal
101                      symbols are not exported.  This requires support
102                      from ld and is currently enabled for a few OSes.
103                      If you know that your ld supports the so called
104                      ELF version scripts, you can use this option to
105                      force its use.  OTOH, if you get error message
106                      from the linker, you probably want to use this
107                      option to disable the use of version scripts.
108                      Note, that you should never ever use an
109                      undocumented symbol or one which is prefixed with
110                      an underscore.
111
112      --enable-ciphers=list
113      --enable-pubkey-ciphers=list
114      --enable-digests=list
115                      If not otherwise specified, all algorithms
116                      included in the libgcrypt source tree are built.
117                      An exception are algorithms, which depend on
118                      features not provided by the system, like 64bit
119                      data types.  With these switches it is possible
120                      to select exactly those algorithm modules, which
121                      should be built.