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