4 This document demonstrates and explains the @acronym{GnuTLS}
5 library API. A brief introduction to the protocols and the technology
6 involved is also included so that an application programmer can
7 better understand the @acronym{GnuTLS} purpose and actual offerings.
8 Even if @acronym{GnuTLS} is a typical library software, it operates
9 over several security and cryptographic protocols which require the
10 programmer to make careful and correct usage of them. Otherwise it
11 is likely to only obtain a false sense of security.
12 The term of security is very broad even if restricted to computer
13 software, and cannot be confined to a single cryptographic
14 library. For that reason, do not consider any program secure just
15 because it uses @acronym{GnuTLS}; there are several ways to compromise
16 a program or a communication line and @acronym{GnuTLS} only helps with
19 Although this document tries to be self contained, basic network
20 programming and public key infrastructure (PKI) knowledge is assumed
21 in most of it. A good introduction to networking can be found
22 in @xcite{STEVENS}, to public key infrastructure in @xcite{GUTPKI}
23 and to security engineering in @xcite{ANDERSON}.
25 Updated versions of the @acronym{GnuTLS} software and this document
26 will be available from @url{http://www.gnutls.org/} and
27 @url{http://www.gnu.org/software/gnutls/}.