summaryrefslogtreecommitdiff
path: root/README
blob: 3b858ac1985def0646213ee519479887dc764bdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
		    libgcrypt - The GNU crypto library
		   ------------------------------------
  			    Version 1.1.43

    Copyright 2000, 2002, 2003 Free Software Foundation, Inc.

    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.


    THIS IS A DEVELOPMENT VERSION, THE FIRST STABLE VERSION WILL BE 1.2.0.


    Overview
    --------

    Libgcrypt is a general purpose crypto library based on the code
    used in GnuPG.  We can't start with a new version number because
    libgcrypt was part of gnupg 1.1 and some applications already used
    it and tested for the version number. We believe that the API can
    stay as it is, except that new functions may be added in the
    future.

    Libgcrypt depends on the library `libgpg-error', which must be
    installed correctly before Libgcrypt is to be built.


    CVS
    ---

    If you are using the CVS version, make sure that you have the
    latest GNU build tools installed and run ./autogen.sh before
    trying to build the library.  Instead of running autogen.sh,
    something like `autoreconf -i --symlink' can be used to prepare
    the tree for building as well.

    You also need to enable maintainer mode at configure time with the
    `--enable-maintainer-mode' configure switch; without this switch,
    the documentation can not be build, since the file `version.texi',
    which is needed for building the documentation, will only be
    generated, if maintainer mode is enabled.


    Mailing List
    ------------

    You may want to join the developer's mailing list
    gcrypt-devel@gnupg.org by sending mail with a subject of
    "subscribe" to gcrypt-devel-request@gnupg.org.  An archive of this
    list is available at http://lists.gnupg.org .


    License
    -------
    
    Most of this library is distributed under the terms of the GNU
    Lesser General Public License (LGPL); see the file COPYING.LIB for
    the actual terms.  However some parts are distributed under the
    GNU General Public License (GPL) so if you configure Libgcrypt to
    include these modules, you have to comply with the conditions of
    the GPL as found in the file COPYING.  The modules under the GPL
    are:

      rndunix - Entropy gatherer for Unices without a /dev/random
      rndw32  - Entropy gatherer for MS Windows

    The documentation is available under the terms of the GNU Free
    Documentation License; see the file COPYING.DOC for the terms.

    This library used to be available under the GPL - this was changed
    with version 1.1.7 with the rationale that there are now many free
    crypto libraries available and many of them come with capabilities
    similar to Libcrypt.  We decided that to foster the use of
    cryptography in Free Software an LGPLed library would make more
    sense because it avoids problems due to license incompatibilities
    between some Free Software licenses and the GPL. 

    Please note that in many cases it is better for a library to be
    licensed under the GPL, so that it provides an advantage for free
    software projects.  The Lesser GPL is so named because it does
    less to protect the freedom of the users of the code that it
    covers.  See http://www.gnu.org/philosophy/why-not-lgpl.html for
    more explanation.


    Configure options 
    -----------------
    Here is a list of configure options which are sometimes useful 
    for installation.

     --enable-m-guard
                     Enable the integrated malloc checking code. Please
                     note that this feature does not work on all CPUs
                     (e.g. SunOS 5.7 on UltraSparc-2) and might give
                     you a bus error.

     --disable-asm
                     Do not use assembler modules.  It is not possible 
                     to use this on some CPU types.
                    
     --enable-ld-version-script
                     Libgcrypt tries to build a library where internal
                     symbols are not exported.  This requires support
                     from ld and is currently enabled for a few OSes.
                     If you know that your ld supports the so called
                     ELF version scripts, you can use this option to
                     force its use.  OTOH, if you get error message
                     from the linker, you probably want to use this
                     option to disable the use of version scripts.
                     Note, that you should never ever use an
                     undocumented symbol or one which is prefixed with
                     an underscore.

     --enable-ciphers=list
     --enable-pubkey-ciphers=list
     --enable-digests=list
                     If not otherwise specified, all algorithms
                     included in the libgcrypt source tree are built.
		     An exception are algorithms, which depend on
		     features not provided by the system, like 64bit
		     data types.  With these switches it is possible
                     to select exactly those algorithm modules, which
		     should be built.