Introduction to GnuTLS
        
        
          The GnuTLS package contains
          libraries and userspace tools which provide a secure layer over a
          reliable transport layer. Currently the GnuTLS library implements the proposed
          standards by the IETF's TLS working group. Quoting from the TLS
          protocol specification:
        
        
          “The TLS protocol provides communications
          privacy over the Internet. The protocol allows client/server
          applications to communicate in a way that is designed to prevent
          eavesdropping, tampering, or message forgery.”
        
        
          GnuTLS provides support for TLS
          1.2, TLS 1.1, TLS 1.0, and SSL 3.0 protocols, TLS extensions,
          including server name and max record size. Additionally, the
          library supports authentication using the SRP protocol, X.509
          certificates and OpenPGP keys, along with support for the TLS
          Pre-Shared-Keys (PSK) extension, the Inner Application (TLS/IA)
          extension and X.509 and OpenPGP certificate handling.
        
        
          This package is known to build and work properly using an LFS-7.10
          platform.
        
        
          Package Information
        
        
        
          GnuTLS Dependencies
        
        
          Required
        
        
          Nettle-3.2
        
        
          Recommended
        
        
          Certificate Authority
          Certificates, libtasn1-4.9 and p11-kit-0.23.2
        
        
          Optional
        
        
          Doxygen-1.8.11, GTK-Doc-1.25,
          Guile-2.0.12, libidn-1.33,
          Net-tools-CVS_20101030 (used during
          the test suite), texlive-20160523b or install-tl-unx, Unbound-1.5.9
          (to build the DANE library), Valgrind-3.11.0 (used during the test suite),
          autogen, datefudge
          (used during the test suite), and Trousers
          (Trusted Platform Module support)
        
        
          ![[Note]](../images/note.png) 
          
            Note
          
          
            Note that if you do not install libtasn1-4.9,
            an older version shipped in the GnuTLS tarball will be used instead.
          
         
        
          User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gnutls
        
       
      
        
          Installation of GnuTLS
        
        
          Install GnuTLS by running the
          following commands:
        
        
./configure --prefix=/usr \
            --with-default-trust-store-file=/etc/ssl/ca-bundle.crt &&
make
        
          To test the results, issue: make
          check. If a prior version of GnuTLS (or the same version but without all of
          the recommended dependencies) has been installed, some tests may
          fail. If /usr/lib/libgnutls.so and
          the target of that symlink are moved or renamed so that they cannot
          be found, all tests should pass and the install procedure will
          restore libgnutls.so and the
          versioned library it points to.
        
        
          Now, as the root user:
        
        
make install
        
          If you did not pass the --enable-gtk-doc parameter to the configure script, you can install
          the API documentation to the /usr/share/gtk-doc/html/gnutls directory using
          the following command as the root
          user:
        
        
make -C doc/reference install-data-local
       
      
        
          Command Explanations
        
        
          --with-default-trust-store-file=/etc/ssl/ca-bundle.crt:
          This switch tells configure where to find the CA
          Certificates.
        
        
          --enable-gtk-doc: Use this parameter if
          GTK-Doc is installed and you wish
          to rebuild and install the API documentation.
        
        
          --enable-openssl-compatibility: Use
          this switch if you wish to build the OpenSSL compatibility library.
        
        
          --without-p11-kit: use this switch if
          you have not installed p11-kit.