GnuTLS-3.6.9

#### Beyond Linux® From Scratch (systemd Edition) - Version 9.0

### Chapter 4. Security

- Prev

  GnuPG-2.2.17

- Next

  GPGME-1.13.1

- Up
- Home

# GnuTLS-3.6.9

## 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.3, 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-9.0 platform.

### Package Information

- Download (HTTP): https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/gnutls-3.6.9.tar.xz

- Download (FTP): ftp://ftp.gnupg.org/gcrypt/gnutls/v3.6/gnutls-3.6.9.tar.xz

- Download MD5 sum: a36cb11809d31268b6ddd17cb38b92bb

- Download size: 5.5 MB

- Estimated disk space required: 143 MB (add 102 MB for tests)

- Estimated build time: 0.6 SBU (using parallelism=4; add 7.8 SBU for tests)

### GnuTLS Dependencies

#### Required

Nettle-3.5.1

#### Recommended

make-ca-1.4, libunistring-0.9.10, libtasn1-4.14, and p11-kit-0.23.16.1

#### Optional

Doxygen-1.8.16, GTK-Doc-1.32, Guile-2.2.6, libidn-1.35 or libidn2-2.2.0 Net-tools-CVS_20101030 (used during the test suite), texlive-20190410 or install-tl-unx, Unbound-1.9.2 (to build the DANE library), Valgrind-3.15.0 (used during the test suite), autogen, cmocka and datefudge (used during the test suite if the DANE library is built), and Trousers (Trusted Platform Module support)

### Note

Note that if you do not install libtasn1-4.14, 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 \
                --docdir=/usr/share/doc/gnutls-3.6.9 \
                --disable-guile \
                --with-default-trust-store-pkcs11="pkcs11:" &&
    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 passed `--enable-gtk-doc` to the configure script, the API will automatically be installed. Otherwise, if desired, you can still 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-pkcs11="pkcs11:"`: This switch tells gnutls to use the PKCS #11 trust store as the default trust. Omit this switch if p11-kit-0.23.16.1 is not installed.

`--disable-guile`: This switch disables GUILE support, since GnuTLS does not support Guile-2.2.x yet.

`--with-default-trust-store-file=/etc/pki/tls/certs/ca-bundle.crt`: This switch tells configure where to find the legacy CA certificate bundle and to use it instead of PKCS #11 module by default. Use this if p11-kit-0.23.16.1 is not installed.

`--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.

`--with-included-unistring`: uses the bundled version of libunistring, instead of the system one. Use this switch if you have not installed libunistring-0.9.10.

## Contents

Installed Programs: certtool, danetool, gnutls-cli, gnutls-cli-debug, gnutls-serv, ocsptool, p11tool, psktool, and srptool
Installed Libraries: libgnutls.so, libgnutls-dane.so, libgnutlsxx.so, libgnutls-openssl.so (optional), and /usr/lib/guile/2.2/guile-gnutls-v-2.so
Installed Directories: /usr/{include,share/gtk-doc/html,share/guile/site/2.2}/gnutls

### Short Descriptions

certtool | is used to generate X.509 certificates, certificate requests, and private keys.
danetool | is a tool used to generate and check DNS resource records for the DANE protocol.
gnutls-cli | is a simple client program to set up a TLS connection to some other computer.
gnutls-cli-debug | is a simple client program to set up a TLS connection to some other computer and produces very verbose progress results.
gnutls-serv | is a simple server program that listens to incoming TLS connections.
ocsptool | is a program that can parse and print information about OCSP requests/responses, generate requests and verify responses.
p11tool | is a program that allows handling data from PKCS #11 smart cards and security modules.
psktool | is a simple program that generates random keys for use with TLS-PSK.
srptool | is a simple program that emulates the programs in the Stanford SRP (Secure Remote Password) libraries using GnuTLS.
`libgnutls.so` | contains the core API functions and X.509 certificate API functions.

Last updated on 2019-08-17 10:19:34 -0700

- Prev

  GnuPG-2.2.17

- Next

  GPGME-1.13.1

- Up
- Home