summaryrefslogtreecommitdiff
path: root/doc/gnutls.texi
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@chbouib.org>2007-05-31 00:08:59 +0200
committerLudovic Courtès <ludo@chbouib.org>2007-05-31 00:08:59 +0200
commit6b55b3d61e743045b88375ab86bc389d3ee2292f (patch)
tree1b6dd16a90e0bb579c5c0c89c7716af5579ccab4 /doc/gnutls.texi
parente6b134bbb87a1281ef65c881506542e1f2ea3e2a (diff)
downloadgnutls-6b55b3d61e743045b88375ab86bc389d3ee2292f.tar.gz
Integrated documentation of Guile bindings.
Diffstat (limited to 'doc/gnutls.texi')
-rw-r--r--doc/gnutls.texi215
1 files changed, 112 insertions, 103 deletions
diff --git a/doc/gnutls.texi b/doc/gnutls.texi
index dc3d45ba12..57a1089dcc 100644
--- a/doc/gnutls.texi
+++ b/doc/gnutls.texi
@@ -65,34 +65,35 @@ Documentation License''.
@contents
@ifnottex
-@node Top
+@node Top, Preface, (dir), (dir)
@top GNU TLS
@insertcopying
@end ifnottex
@menu
-* Preface::
-* The Library::
-* Introduction to TLS::
-* Authentication methods::
-* More on certificate authentication::
-* How to use TLS in application protocols::
-* How to use GnuTLS in applications::
-* Included programs::
-* Function reference::
-* Certificate to XML convertion functions::
-* All the supported ciphersuites in GnuTLS::
-* Internal architecture of GnuTLS::
-* Copying Information::
-* Concept Index::
+* Preface::
+* The Library::
+* Introduction to TLS::
+* Authentication methods::
+* More on certificate authentication::
+* How to use TLS in application protocols::
+* How to use GnuTLS in applications::
+* Included programs::
+* Function reference::
+* Certificate to XML convertion functions::
+* All the supported ciphersuites in GnuTLS::
+* Guile Bindings::
+* Internal architecture of GnuTLS::
+* Copying Information::
+* Concept Index::
* Function and Data Index::
@c * @mybibnode{}::
-* Bibliography::
+* Bibliography::
@end menu
-@node Preface
+@node Preface, The Library, Top, Top
@chapter Preface
This document tries to demonstrate and explain the @acronym{GnuTLS}
@@ -121,7 +122,7 @@ Updated versions of the @acronym{GnuTLS} software and this document
will be available from @url{http://www.gnutls.org/} and
@url{http://www.gnu.org/software/gnutls/}.
-@node The Library
+@node The Library, Introduction to TLS, Preface, Top
@chapter The Library
In brief @acronym{GnuTLS} can be described as a library which offers an API
@@ -187,7 +188,7 @@ small library, with the required features, can be generated.
* Callback functions::
@end menu
-@node General Idea
+@node General Idea, Error handling, The Library, The Library
@section General Idea
A brief description of how @acronym{GnuTLS} works internally is shown
@@ -234,7 +235,7 @@ and if the session ID sent by the client, matches a stored session,
the stored session will be retrieved, and the new session will be a
resumed one, and will share the same session ID with the previous one.
-@node Error handling
+@node Error handling, Memory handling, General Idea, The Library
@section Error handling
In @acronym{GnuTLS} most functions return an integer type as a result. In
@@ -257,7 +258,7 @@ If any non fatal errors, that require an action, are to be returned by
a function, these error codes will be documented in the function's
reference. @xref{Error Codes}, for all the error codes.
-@node Memory handling
+@node Memory handling, Callback functions, Error handling, The Library
@section Memory handling
@acronym{GnuTLS} internally handles heap allocated objects
@@ -275,7 +276,7 @@ cases where even the system's swap memory is not considered
secure. See the documentation of @acronym{Libgcrypt} for more
information.
-@node Callback functions
+@node Callback functions, , Memory handling, The Library
@section Callback functions
@cindex Callback functions
@@ -308,7 +309,7 @@ should allocate and free memory using the functions shown below.
@end itemize
-@node Introduction to TLS
+@node Introduction to TLS, Authentication methods, The Library, Top
@chapter Introduction to @acronym{TLS}
@acronym{TLS} stands for ``Transport Layer Security'' and is the
@@ -336,7 +337,7 @@ differences of these protocols are minor. Older protocols such as
* On SSL 2 and older protocols::
@end menu
-@node TLS layers
+@node TLS layers, The transport layer, Introduction to TLS, Introduction to TLS
@section TLS layers
@cindex TLS Layers
@@ -358,7 +359,7 @@ protocol. The protocol layering in TLS is shown in the figure below.
@image{layers,12cm,8cm}
-@node The transport layer
+@node The transport layer, The TLS record protocol, TLS layers, Introduction to TLS
@section The transport layer
@cindex Transport protocol
@@ -404,7 +405,7 @@ will use the Berkeley Sockets functions. In this case
work, thus making it easy to add @acronym{TLS} support to existing
TCP/IP servers.
-@node The TLS record protocol
+@node The TLS record protocol, The TLS Alert Protocol, The transport layer, Introduction to TLS
@section The TLS record protocol
@cindex Record protocol
@@ -439,7 +440,7 @@ just after the handshake protocol has finished.
* Weaknesses and countermeasures::
@end menu
-@node Encryption algorithms used in the record layer
+@node Encryption algorithms used in the record layer, Compression algorithms used in the record layer, The TLS record protocol, The TLS record protocol
@subsection Encryption algorithms used in the record layer
@cindex Symmetric encryption algorithms
@@ -489,7 +490,7 @@ bits of data.
@end table
-@node Compression algorithms used in the record layer
+@node Compression algorithms used in the record layer, Weaknesses and countermeasures, Encryption algorithms used in the record layer, The TLS record protocol
@subsection Compression algorithms used in the record layer
@cindex Compression algorithms
@@ -524,7 +525,7 @@ and the private extensions are enabled.
@end table
-@node Weaknesses and countermeasures
+@node Weaknesses and countermeasures, , Compression algorithms used in the record layer, The TLS record protocol
@subsection Weaknesses and countermeasures
Some weaknesses that may affect the security of the Record layer have
@@ -551,7 +552,7 @@ Those weaknesses were solved in @acronym{TLS} 1.1 @xcite{RFC4346} which is imple
in @acronym{GnuTLS}. For a detailed discussion see the archives of the
TLS Working Group mailing list and the paper @xcite{CBCATT}.
-@node The TLS Alert Protocol
+@node The TLS Alert Protocol, The TLS Handshake Protocol, The TLS record protocol, Introduction to TLS
@section The TLS Alert Protocol
@anchor{The Alert Protocol}
@cindex Alert protocol
@@ -586,7 +587,7 @@ Returns the name, in a character array, of the given alert.
@end table
-@node The TLS Handshake Protocol
+@node The TLS Handshake Protocol, TLS Extensions, The TLS Alert Protocol, Introduction to TLS
@section The TLS Handshake Protocol
@anchor{The Handshake Protocol}
@cindex Handshake protocol
@@ -744,7 +745,7 @@ It might also be useful to be able to check for expired sessions in
order to remove them, and save space. The function
@ref{gnutls_db_check_entry} is provided for that reason.
-@node TLS Extensions
+@node TLS Extensions, On SSL 2 and older protocols, The TLS Handshake Protocol, Introduction to TLS
@section TLS Extensions
@cindex TLS Extensions
@@ -786,7 +787,7 @@ begins within the first handshake packet. The functions
used to enable this extension, or to retrieve the name sent by a
client.
-@node On SSL 2 and older protocols
+@node On SSL 2 and older protocols, , TLS Extensions, Introduction to TLS
@section On SSL 2 and older protocols
@cindex SSL 2
@@ -833,7 +834,7 @@ Other protocols such as Microsoft's @acronym{PCT} 1 and @acronym{PCT}
2 were not implemented because they were also abandoned and deprecated
by @acronym{SSL} 3.0 and later @acronym{TLS} 1.0.
-@node Authentication methods
+@node Authentication methods, More on certificate authentication, Introduction to TLS, Top
@chapter Authentication methods
The @acronym{TLS} protocol provides confidentiality and encryption,
@@ -862,7 +863,7 @@ are:
* Parameters stored in credentials::
@end menu
-@node Certificate authentication
+@node Certificate authentication, Anonymous authentication, Authentication methods, Authentication methods
@section Certificate authentication
@subsection Authentication using @acronym{X.509} certificates
@@ -1011,7 +1012,7 @@ Signature Standard.
@end table
-@node Anonymous authentication
+@node Anonymous authentication, Authentication using SRP, Certificate authentication, Authentication methods
@section Anonymous authentication
@cindex Anonymous authentication
@@ -1036,7 +1037,7 @@ This algorithm exchanges Diffie Hellman parameters.
@end table
-@node Authentication using SRP
+@node Authentication using SRP, Authentication using PSK, Anonymous authentication, Authentication methods
@section Authentication using @acronym{SRP}
@cindex @acronym{SRP} authentication
@@ -1123,7 +1124,7 @@ manipulate the required parameters for @acronym{SRP} authentication is
also included. @xref{srptool}, for more information.
-@node Authentication using PSK
+@node Authentication using PSK, Authentication and credentials, Authentication using SRP, Authentication methods
@section Authentication using @acronym{PSK}
@cindex @acronym{PSK} authentication
@@ -1175,7 +1176,7 @@ are included in @acronym{GnuTLS}, and may be used to generate and
maintain @acronym{PSK} keys.
-@node Authentication and credentials
+@node Authentication and credentials, Parameters stored in credentials, Authentication using PSK, Authentication methods
@section Authentication and credentials
In @acronym{GnuTLS} every key exchange method is associated with a
@@ -1217,7 +1218,7 @@ Key exchange algorithms and the corresponding credential types:
@end multitable
-@node Parameters stored in credentials
+@node Parameters stored in credentials, , Authentication and credentials, Authentication methods
@section Parameters stored in credentials
Several parameters such as the ones used for Diffie-Hellman
@@ -1276,7 +1277,7 @@ int main()
@}
@end example
-@node More on certificate authentication
+@node More on certificate authentication, How to use TLS in application protocols, Authentication methods, Top
@chapter More on certificate authentication
@anchor{Certificate Authentication}
@cindex Certificate authentication
@@ -1287,7 +1288,7 @@ int main()
* Digital signatures::
@end menu
-@node The X.509 trust model
+@node The X.509 trust model, The OpenPGP trust model, More on certificate authentication, More on certificate authentication
@section The @acronym{X.509} trust model
@cindex @acronym{X.509} certificates
@@ -1312,7 +1313,7 @@ handling @acronym{X.509} certificates is described at section
* PKCS #12 structures::
@end menu
-@node X.509 certificates
+@node X.509 certificates, Verifying X.509 certificate paths, The X.509 trust model, The X.509 trust model
@subsection @acronym{X.509} certificates
An @acronym{X.509} certificate usually contains information about the
@@ -1402,7 +1403,7 @@ functions for @acronym{X.509} certificate handling have their prototypes in
@file{gnutls/x509.h}. An example program to demonstrate the @acronym{X.509}
parsing capabilities can be found at section @ref{ex:x509-info}.
-@node Verifying X.509 certificate paths
+@node Verifying X.509 certificate paths, PKCS #10 certificate requests, X.509 certificates, The X.509 trust model
@subsection Verifying @acronym{X.509} certificate paths
@cindex Verifying certificate paths
@@ -1485,7 +1486,7 @@ about the peer's identity. It is required to verify if the
certificate's owner is the one you expect. For more information consult @xcite{RFC2818}
and section @ref{ex:verify} for an example.
-@node PKCS #10 certificate requests
+@node PKCS #10 certificate requests, PKCS #12 structures, Verifying X.509 certificate paths, The X.509 trust model
@subsection @acronym{PKCS} #10 certificate requests
@cindex Certificate requests
@cindex @acronym{PKCS} #10
@@ -1501,7 +1502,7 @@ In @acronym{GnuTLS} the @acronym{PKCS} #10 structures are handled
using the @code{gnutls_x509_crq_t} type. An example of a certificate
request generation can be found at section @ref{ex:crq}.
-@node PKCS #12 structures
+@node PKCS #12 structures, , PKCS #10 certificate requests, The X.509 trust model
@subsection @acronym{PKCS} #12 structures
@cindex @acronym{PKCS} #12
@@ -1519,7 +1520,7 @@ in order for its data to be accessed.
An example of a @acronym{PKCS} #12 structure generation can be found
at section @ref{ex:pkcs12}.
-@node The OpenPGP trust model
+@node The OpenPGP trust model, Digital signatures, The X.509 trust model, More on certificate authentication
@section The @acronym{OpenPGP} trust model
@cindex @acronym{OpenPGP} Keys
@@ -1597,13 +1598,13 @@ These algorithms have been broken and should not be trusted.
@end table
-@node Digital signatures
+@node Digital signatures, , The OpenPGP trust model, More on certificate authentication
@section Digital signatures
@cindex Digital signatures
@include signatures.texi
-@node How to use TLS in application protocols
+@node How to use TLS in application protocols, How to use GnuTLS in applications, More on certificate authentication, Top
@chapter How to use @acronym{TLS} in application protocols
This chapter is intended to provide some hints on how to use the
@@ -1616,7 +1617,7 @@ but may be extended to other ones too.
* Upward negotiation::
@end menu
-@node Separate ports
+@node Separate ports, Upward negotiation, How to use TLS in application protocols, How to use TLS in application protocols
@section Separate ports
Traditionally @acronym{SSL} was used in application protocols by
@@ -1643,7 +1644,7 @@ service, which is unnecessary complication. Due to the fact that there
is a limitation on the available privileged ports, this approach was
soon obsoleted.
-@node Upward negotiation
+@node Upward negotiation, , Separate ports, How to use TLS in application protocols
@section Upward negotiation
Other application protocols@footnote{See LDAP, IMAP etc.} use a
@@ -1734,7 +1735,7 @@ starts, in order to send the correct certificate, use the correct
password file@footnote{in @acronym{SRP} authentication}, or anything
else!
-@node How to use GnuTLS in applications
+@node How to use GnuTLS in applications, Included programs, How to use TLS in application protocols, Top
@chapter How to use @acronym{GnuTLS} in applications
@anchor{examples}
@cindex Example programs
@@ -1748,7 +1749,7 @@ else!
* Compatibility with the OpenSSL library::
@end menu
-@node Preparation
+@node Preparation, Multi-threaded applications, How to use GnuTLS in applications, How to use GnuTLS in applications
@section Preparation
To use @acronym{GnuTLS}, you have to perform some changes to your
@@ -1761,7 +1762,7 @@ the following subsections.
* Building the source::
@end menu
-@node Headers
+@node Headers, Version check, Preparation, Preparation
@subsection Headers
All the data types and functions of the @acronym{GnuTLS} library are
@@ -1773,7 +1774,7 @@ The extra functionality of the @acronym{GnuTLS-extra} library is
available by including the header file @file{gnutls/extra.h} in your
programs.
-@node Version check
+@node Version check, Building the source, Headers, Preparation
@subsection Version check
It is often desirable to check that the version of `gnutls' used is
@@ -1783,7 +1784,7 @@ with the dynamic linker an old version is actually used. So you may
want to check that the version is okay right after program startup.
See the function @ref{gnutls_check_version}.
-@node Building the source
+@node Building the source, , Version check, Preparation
@subsection Building the source
If you want to compile a source file including the `gnutls/gnutls.h'
@@ -1829,7 +1830,7 @@ specifying both options to `libgnutls-config':
gcc -o foo foo.c `libgnutls-config --cflags --libs`
@end example
-@node Multi-threaded applications
+@node Multi-threaded applications, Client examples, Preparation, How to use GnuTLS in applications
@section Multi-threaded applications
Although the @acronym{GnuTLS} library is thread safe by design, some
@@ -1893,7 +1894,7 @@ int main()
@end example
@end itemize
-@node Client examples
+@node Client examples, Server examples, Multi-threaded applications, How to use GnuTLS in applications
@section Client examples
This section contains examples of @acronym{TLS} and @acronym{SSL}
@@ -1914,7 +1915,7 @@ implemented by another example.
* Helper function for TCP connections::
@end menu
-@node Simple client example with anonymous authentication
+@node Simple client example with anonymous authentication, Simple client example with X.509 certificate support, Client examples, Client examples
@subsection Simple client example with anonymous authentication
The simplest client using TLS is the one that doesn't do any
@@ -1925,7 +1926,7 @@ However, the data is integrity and privacy protected.
@verbatiminclude examples/ex-client1.c
-@node Simple client example with X.509 certificate support
+@node Simple client example with X.509 certificate support, Obtaining session information, Simple client example with anonymous authentication, Client examples
@subsection Simple client example with @acronym{X.509} certificate support
Let's assume now that we want to create a TCP client which
@@ -1938,7 +1939,7 @@ redefining them.
@verbatiminclude examples/ex-client2.c
-@node Obtaining session information
+@node Obtaining session information, Verifying peer's certificate, Simple client example with X.509 certificate support, Client examples
@subsection Obtaining session information
Most of the times it is desirable to know the security properties of
@@ -1949,7 +1950,7 @@ if called after a successful @ref{gnutls_handshake}.
@verbatiminclude examples/ex-session-info.c
-@node Verifying peer's certificate
+@node Verifying peer's certificate, Using a callback to select the certificate to use, Obtaining session information, Client examples
@subsection Verifying peer's certificate
@anchor{ex:verify}
@@ -1967,7 +1968,7 @@ verification output.
@verbatiminclude examples/ex-verify.c
-@node Using a callback to select the certificate to use
+@node Using a callback to select the certificate to use, Client with Resume capability example, Verifying peer's certificate, Client examples
@subsection Using a callback to select the certificate to use
There are cases where a client holds several certificate and key
@@ -1977,7 +1978,7 @@ certificate selection callback.
@verbatiminclude examples/ex-cert-select.c
-@node Client with Resume capability example
+@node Client with Resume capability example, Simple client example with SRP authentication, Using a callback to select the certificate to use, Client examples
@subsection Client with Resume capability example
@anchor{ex:resume-client}
@@ -1988,7 +1989,7 @@ establish a new connection using the previously negotiated data.
@verbatiminclude examples/ex-client-resume.c
-@node Simple client example with SRP authentication
+@node Simple client example with SRP authentication, Simple client example with TLS/IA support, Client with Resume capability example, Client examples
@subsection Simple client example with @acronym{SRP} authentication
The following client is a very simple @acronym{SRP} @acronym{TLS}
@@ -1998,7 +1999,7 @@ itself using a certificate, and in that case it has to be verified.
@verbatiminclude examples/ex-client-srp.c
-@node Simple client example with TLS/IA support
+@node Simple client example with TLS/IA support, Simple client example with authorization support, Simple client example with SRP authentication, Client examples
@subsection Simple client example with @acronym{TLS/IA} support
The following client is a simple client which uses the
@@ -2006,7 +2007,7 @@ The following client is a simple client which uses the
@verbatiminclude examples/ex-client-tlsia.c
-@node Simple client example with authorization support
+@node Simple client example with authorization support, Helper function for TCP connections, Simple client example with TLS/IA support, Client examples
@subsection Simple client example with authorization support
The following client require that the server sends authorization data,
@@ -2015,7 +2016,7 @@ For authentication, X.509 is used.
@verbatiminclude examples/ex-client-authz.c
-@node Helper function for TCP connections
+@node Helper function for TCP connections, , Simple client example with authorization support, Client examples
@subsection Helper function for TCP connections
This helper function abstracts away TCP connection handling from the
@@ -2023,7 +2024,7 @@ other examples. It is required to build some examples.
@verbatiminclude examples/tcp.c
-@node Server examples
+@node Server examples, Miscellaneous examples, Client examples, How to use GnuTLS in applications
@section Server examples
This section contains examples of @acronym{TLS} and @acronym{SSL}
@@ -2038,7 +2039,7 @@ servers, using @acronym{GnuTLS}.
* Echo Server with authorization support::
@end menu
-@node Echo Server with X.509 authentication
+@node Echo Server with X.509 authentication, Echo Server with X.509 authentication II, Server examples, Server examples
@subsection Echo Server with @acronym{X.509} authentication
This example is a very simple echo server which supports
@@ -2046,7 +2047,7 @@ This example is a very simple echo server which supports
@verbatiminclude examples/ex-serv1.c
-@node Echo Server with X.509 authentication II
+@node Echo Server with X.509 authentication II, Echo Server with OpenPGP authentication, Echo Server with X.509 authentication, Server examples
@subsection Echo Server with @acronym{X.509} authentication II
The following example is a server which supports @acronym{X.509}
@@ -2055,7 +2056,7 @@ the DHE ciphersuites and session resuming.
@verbatiminclude examples/ex-serv-export.c
-@node Echo Server with OpenPGP authentication
+@node Echo Server with OpenPGP authentication, Echo Server with SRP authentication, Echo Server with X.509 authentication II, Server examples
@subsection Echo Server with @acronym{OpenPGP} authentication
@cindex @acronym{OpenPGP} Server
@@ -2067,7 +2068,7 @@ them to keep these examples as simple as possible.
@verbatiminclude examples/ex-serv-pgp.c
-@node Echo Server with SRP authentication
+@node Echo Server with SRP authentication, Echo Server with anonymous authentication, Echo Server with OpenPGP authentication, Server examples
@subsection Echo Server with @acronym{SRP} authentication
This is a server which supports @acronym{SRP} authentication. It is
@@ -2076,7 +2077,7 @@ server. Here it is separate for simplicity.
@verbatiminclude examples/ex-serv-srp.c
-@node Echo Server with anonymous authentication
+@node Echo Server with anonymous authentication, Echo Server with authorization support, Echo Server with SRP authentication, Server examples
@subsection Echo Server with anonymous authentication
This example server support anonymous authentication, and could be
@@ -2084,7 +2085,7 @@ used to serve the example client for anonymous authentication.
@verbatiminclude examples/ex-serv-anon.c
-@node Echo Server with authorization support
+@node Echo Server with authorization support, , Echo Server with anonymous authentication, Server examples
@subsection Echo Server with authorization support
This example server support authorization data, and can be used to
@@ -2092,7 +2093,7 @@ serve the example client with authorization support.
@verbatiminclude examples/ex-serv-authz.c
-@node Miscellaneous examples
+@node Miscellaneous examples, Compatibility with the OpenSSL library, Server examples, How to use GnuTLS in applications
@section Miscellaneous examples
@menu
@@ -2102,7 +2103,7 @@ serve the example client with authorization support.
* PKCS #12 structure generation::
@end menu
-@node Checking for an alert
+@node Checking for an alert, X.509 certificate parsing example, Miscellaneous examples, Miscellaneous examples
@subsection Checking for an alert
This is a function that checks if an alert has been received in the
@@ -2110,7 +2111,7 @@ current session.
@verbatiminclude examples/ex-alert.c
-@node X.509 certificate parsing example
+@node X.509 certificate parsing example, Certificate request generation, Checking for an alert, Miscellaneous examples
@subsection @acronym{X.509} certificate parsing example
@anchor{ex:x509-info}
@@ -2120,7 +2121,7 @@ information about it.
@verbatiminclude examples/ex-x509-info.c
-@node Certificate request generation
+@node Certificate request generation, PKCS #12 structure generation, X.509 certificate parsing example, Miscellaneous examples
@subsection Certificate request generation
@anchor{ex:crq}
@@ -2130,7 +2131,7 @@ which should return a signed certificate.
@verbatiminclude examples/ex-crq.c
-@node PKCS #12 structure generation
+@node PKCS #12 structure generation, , Certificate request generation, Miscellaneous examples
@subsection @acronym{PKCS} #12 structure generation
@anchor{ex:pkcs12}
@@ -2139,7 +2140,7 @@ structure.
@verbatiminclude examples/ex-pkcs12.c
-@node Compatibility with the OpenSSL library
+@node Compatibility with the OpenSSL library, , Miscellaneous examples, How to use GnuTLS in applications
@section Compatibility with the OpenSSL library
@cindex OpenSSL
@@ -2162,7 +2163,7 @@ Current limitations imposed by the compatibility layer include:
@end itemize
-@node Included programs
+@node Included programs, Function reference, How to use GnuTLS in applications, Top
@chapter Included programs
Included with @acronym{GnuTLS} are also a few command line tools that
@@ -2177,7 +2178,7 @@ application. The applications are discussed in this chapter.
* Invoking certtool::
@end menu
-@node Invoking srptool
+@node Invoking srptool, Invoking gnutls-cli, Included programs, Included programs
@section Invoking srptool
@anchor{srptool}
@cindex srptool
@@ -2222,7 +2223,7 @@ $ srptool --passwd /etc/tpasswd \
@end itemize
-@node Invoking gnutls-cli
+@node Invoking gnutls-cli, Invoking gnutls-cli-debug, Invoking srptool, Included programs
@section Invoking gnutls-cli
@cindex gnutls-cli
@@ -2281,7 +2282,7 @@ Usage: gnutls-cli [options] hostname
--copyright prints the program's license
@end verbatim
-@node Invoking gnutls-cli-debug
+@node Invoking gnutls-cli-debug, Invoking gnutls-serv, Invoking gnutls-cli, Included programs
@section Invoking gnutls-cli-debug
@cindex gnutls-cli-debug
@@ -2329,7 +2330,7 @@ Checking for SRP authentication support (TLS extension)... yes
Checking for OpenPGP authentication support (TLS extension)... no
@end smallexample
-@node Invoking gnutls-serv
+@node Invoking gnutls-serv, Invoking certtool, Invoking gnutls-cli-debug, Included programs
@section Invoking gnutls-serv
@cindex gnutls-serv
@@ -2556,7 +2557,7 @@ gnutls-serv --http \
--pskpasswd psk-passwd.txt
@end example
-@node Invoking certtool
+@node Invoking certtool, , Invoking gnutls-serv, Included programs
@section Invoking certtool
@cindex certtool
@@ -2829,7 +2830,7 @@ signing_key
#time_stamping_key
@end example
-@node Function reference
+@node Function reference, Certificate to XML convertion functions, Included programs, Top
@chapter Function reference
@cindex Function reference
@@ -2842,7 +2843,7 @@ signing_key
* Error codes and descriptions::
@end menu
-@node Core functions
+@node Core functions, X.509 certificate functions, Function reference, Function reference
@section Core functions
The prototypes for the following functions lie in
@@ -2850,7 +2851,7 @@ The prototypes for the following functions lie in
@include gnutls-api.texi
-@node X.509 certificate functions
+@node X.509 certificate functions, GnuTLS-extra functions, Core functions, Function reference
@section @acronym{X.509} certificate functions
@anchor{sec:x509api}
@cindex @acronym{X.509} Functions
@@ -2860,7 +2861,7 @@ Their prototypes lie in @file{gnutls/x509.h}.
@include x509-api.texi
-@node GnuTLS-extra functions
+@node GnuTLS-extra functions, OpenPGP functions, X.509 certificate functions, Function reference
@section @acronym{GnuTLS-extra} functions
@cindex @acronym{GnuTLS-extra} functions
@@ -2870,7 +2871,7 @@ called @code{gnutls-extra}. The prototypes for this library lie in
@include gnutls-extra-api.texi
-@node OpenPGP functions
+@node OpenPGP functions, TLS Inner Application (TLS/IA) functions, GnuTLS-extra functions, Function reference
@section @acronym{OpenPGP} functions
@cindex @acronym{OpenPGP} functions
@anchor{sec:openpgpapi}
@@ -2882,7 +2883,7 @@ to be able to use these functions (@pxref{GnuTLS-extra functions}).
@include pgp-api.texi
-@node TLS Inner Application (TLS/IA) functions
+@node TLS Inner Application (TLS/IA) functions, Error codes and descriptions, OpenPGP functions, Function reference
@section @acronym{TLS} Inner Application (@acronym{TLS/IA}) functions
@cindex @acronym{TLS} Inner Application (@acronym{TLS/IA}) functions
@cindex Inner Application (@acronym{TLS/IA}) functions
@@ -2939,7 +2940,7 @@ client functions with the corresponding server functions.
@include ia-api.texi
-@node Error codes and descriptions
+@node Error codes and descriptions, , TLS Inner Application (TLS/IA) functions, Function reference
@section Error codes and descriptions
@anchor{Error Codes}
@cindex Error codes
@@ -2951,7 +2952,7 @@ expressions.
@include error_codes.texi
-@node Certificate to XML convertion functions
+@node Certificate to XML convertion functions, All the supported ciphersuites in GnuTLS, Function reference, Top
@chapter Certificate to @acronym{XML} convertion functions
@cindex Certificate to XML convertion
@@ -2971,7 +2972,7 @@ functions:
* An OpenPGP key::
@end menu
-@node An X.509 certificate
+@node An X.509 certificate, An OpenPGP key, Certificate to XML convertion functions, Certificate to XML convertion functions
@section An @acronym{X.509} certificate
@smallexample
@@ -3174,7 +3175,7 @@ functions:
</gnutls:x509:certificate>
@end smallexample
-@node An OpenPGP key
+@node An OpenPGP key, , An X.509 certificate, Certificate to XML convertion functions
@section An @acronym{OpenPGP} key
@smallexample
@@ -3255,7 +3256,7 @@ functions:
</gnutls:openpgp:key>
@end smallexample
-@node All the supported ciphersuites in GnuTLS
+@node All the supported ciphersuites in GnuTLS, Guile Bindings, Certificate to XML convertion functions, Top
@chapter All the supported ciphersuites in @acronym{GnuTLS}
@anchor{ciphersuites}
@cindex Ciphersuites
@@ -3388,13 +3389,21 @@ functions:
@end multitable
-@node Internal architecture of GnuTLS
+
+@c
+@c Guile Bindings
+@c
+
+@include guile.texi
+
+
+@node Internal architecture of GnuTLS, Copying Information, Guile Bindings, Top
@chapter Internal architecture of GnuTLS
@cindex Internal architecture
@include internals.texi
-@node Copying Information
+@node Copying Information, Concept Index, Internal architecture of GnuTLS, Top
@appendix Copying Information
@menu
@@ -3407,17 +3416,17 @@ functions:
@include lgpl.texi
@include gpl.texi
-@node Concept Index
+@node Concept Index, Function and Data Index, Copying Information, Top
@unnumbered Concept Index
@printindex cp
-@node Function and Data Index
+@node Function and Data Index, Bibliography, Concept Index, Top
@unnumbered Function and Data Index
@printindex fn
-@node Bibliography
+@node Bibliography, , Function and Data Index, Top
@unnumbered Bibliography
@table @asis