\par
The following authentication schemas are supported in \gnutls:
\begin{enumerate}
- \item X.509 Public Key Infrastructure
- \item OpenPGP Public Key Infrastructure
+ \item Certificate Authentication
\item Anonymous authentication
\item SRP authentication
\end{enumerate}
\subsection{Authentication using X.509 certificates}
+This authentication method is part of the certificate authentication
+method in \gnutls{}.
The X.509 protocols rely on a hierarchical trust model. In this trust model
Certification Authorities (CAs) are used to certify entities.
Usually more than one certification authorities exist, and certification
\end{figure}
\subsection{Authentication using OpenPGP keys}
+This authentication method is part of the certificate authentication
+method in \gnutls{}.
OpenPGP authentication relies on a distributed trust model, called the "web
of trust". The "web of trust" uses a decentralized system of trusted
introducers, which are the same as a CA. OpenPGP allows anyone to sign
\subsection{Anonymous authentication}
-The anonymous key exchanges perform encryption but there is no indication of the
+The anonymous key exchange perform encryption but there is no indication of the
identity of the peer. This kind of authentication is vulnerable to man in the middle attack,
but this protocol can be used even if there is no prior communication or common trusted
parties with the peer. Unless really required, do not use anonymous authentication.
\newpage
\section{TLS Cipher suites}
\par
-The Handshake Protocol of \tlsI{} negotiates ciphersuites
-like the {\bf TLS\_DHE\_RSA\_WITH\_3DES\_CBC\_SHA}.
-These ciphersuites contain three parameters:
+The Handshake Protocol of \tlsI{} negotiates cipher suites
+that of the form \\
+{\bf TLS\_DHE\_RSA\_WITH\_3DES\_CBC\_SHA}.
+The cipher suites contain three parameters:
\begin{itemize}
\item The key exchange algorithm (DHE\_RSA in the example)
\item The Symmetric encryption algorithm and mode (3DES\_CBC in this
\tlsI{} is a layered protocol, and consists of the Record Protocol,
the Handshake Protocol and the Alert Protocol. The Record Protocol
is to serve all other protocols and is above the transport layer.
-The Record protocol offers symmetric encryption, and data authenticity.
+The Record protocol offers symmetric encryption, data authenticity, and
+optionally compression.
In \gnutls{} the record protocol is accessed using the
\hyperref{gnutls\_record\_recv()}{gnutls\_record\_recv() (see Section }{)}{gnutls_record_recv} and
\hyperref{gnutls\_record\_send()}{gnutls\_record\_send() (see Section }{)}{gnutls_record_send}
\par
The Alert protocol offers some signaling to the other protocols. It can
help informing the peer for the cause of failures and other error
-conditions.
-\hyperref{gnutls\_alert\_send()}{gnutls\_alert\_send() (see Section }{)}{gnutls_alert_send} and
-\hyperref{gnutls\_alert\_send\_appropriate()}{gnutls\_alert\_send\_appropriate() (see Section }{)}{gnutls_alert_send_appropriate}
-functions.
+conditions. See
+\hyperref{gnutls\_alert\_send()}{gnutls\_alert\_send() (see Section }{)}{gnutls_alert_send},
+\hyperref{gnutls\_alert\_send\_appropriate()}{gnutls\_alert\_send\_appropriate() (see Section }{)}{gnutls_alert_send_appropriate}
+and
+\hyperref{gnutls\_alert\_get\_last()}{gnutls\_alert\_get\_last() (see Section }{)}{gnutls_alert_get_last}.
\par
-The Handshake protocol is responsible for the initial key exchange,
-and authentication. See \hyperref{figure}{figure }{}{fig:cert} for the
-protocol layering in TLS. The handshake protocol in \gnutls{} is accessed
-with the
+The Handshake protocol is responsible for the security parameters'
+negotiation, the initial key exchange and
+authentication. See \hyperref{figure}{figure }{}{fig:cert} for the
+protocol layering in TLS. See the
\hyperref{gnutls\_handshake()}{gnutls\_handshake() (see Section }{)}{gnutls_handshake} function.
\begin{figure}[hbtp]