The cipher suite negotiated in the handshake protocol will affect
the Record Protocol, by enabling encryption and data authentication.
Note that you should not over rely on \tls{} to negotiate the strongest
-available cipher suite. Do not enable
-ciphers and algorithms that you consider weak.
+available cipher suite. Do not enable ciphers and algorithms that you consider weak.
+\par
+The priority functions, dicussed above, allow the application layer to enable
+and set priorities on the individual ciphers. It may imply that all combinations of ciphersuites
+are allowed, but this is not true. For several reasons, not discussed here, some combinations
+were not defined in the \tls{} protocol.
+\gnutls{} may even decide to remove some of the valid ones. This behaviour depends on the
+key parameters. For example keys marked as sign-only, will not be able to
+access the plain RSA ciphersuites, but only the DHE\_RSA ones.
\addvspace{1.5cm}
note = "Available from http://www.cs.auckland.ac.nz/\~\ pgut001/pubs/pkitutorial.pdf",
url = "http://www.cs.auckland.ac.nz/~pgut001/pubs/pkitutorial.pdf"
}
+
+@Misc{GPGH,
+ author = "Mike Ashley",
+ title = "The GNU Privacy Handbook",
+ year = {2002},
+ note = "Available from http://www.gnupg.org/gph/en/manual.pdf",
+ url = "http://www.gnupg.org/gph/en/manual.pdf"
+}
\begin{document}
-\pagenumbering{roman}
+\frontmatter
\input{cover}
\tableofcontents
-\newpage
-\pagenumbering{arabic}
+
\pagestyle{fancy}
\fancyhead[RE]{\slshape \rightmark}
\fancyhead[LO]{\slshape \leftmark}
\fancyhead[RO,LE]{\empty}
\fancyfoot[C]{\thepage}
+\mainmatter
+\input{preface}
+
\input{library}
\input{tlsintro}
\input{fdl}
+\backmatter
+
\printindex
\bibliography{gnutls}
program). Within this protocol the parameters for cipher suites, supported
authentication methods etc. are negotiated. Thus the application layer
has to set up the required parameters for the connection.
-See the following functions:
+
\begin{itemize}
\item \printfunc{gnutls_cipher_set_priority}{gnutls\_cipher\_set\_priority}:
to set the priority of bulk cipher algorithms.
\item \printfunc{gnutls_set_default_priority}{gnutls\_set\_default\_priority}:
to set some defaults in the current session. That way you don't have to call each
priority function, independently, but you have to live with the defaults.
-
\item \printfunc{gnutls_credentials_set}{gnutls\_credentials\_set}: to set the
appropriate credentials structures.
\item \printfunc{gnutls_certificate_server_set_request}
-\chapter{Preface}
-
-\section{Introduction}
-This document tries to demonstrate the \gnutls{} library API, the
-protocols and the technology involved. I believe that a basic
-understanding of the underlying protocols is important, before
-using \tls{}. This is because security and cryptographic
-protocols are involved, which require the application programmer
-to make correct use of these protocols, or no security is
-offered. Although this document tries to be self contained basic
-network programming and PKI knowlegde is assumed in most of this document.
-I suggest \cite{GUTPKI} for an introduction to PKI.
-
\chapter{The Library}
\section{Description}
\cite{TLSPGP} proposal.
See \ref{pgp:trust} on page \pageref{pgp:trust} for more information
-about the OpenPGP trust model.
+about the OpenPGP trust model. For a more detailed introduction to OpenPGP
+and GnuPG see \cite{GPGH}.
--- /dev/null
+\chapter{Preface}
+
+This document tries to demonstrate the \gnutls{} library API, the
+protocols and the technology involved. I believe that a basic
+understanding of the underlying protocols is important, before
+using \tls{}. This is because security and cryptographic
+protocols are involved, which require the application programmer
+to make correct use of these protocols, or no security is
+offered. Although this document tries to be self contained, basic
+network programming and PKI knowlegde is assumed in most of this document.
+I suggest \cite{GUTPKI} for an introduction to Public Key Infrastructure.