Introduction to Nettle

The Nettle package contains a low-level cryptographic library that is designed to fit easily in many contexts.



Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.

Package Information

Nettle Dependencies


Valgrind-3.19.0 (optional for the tests)

User Notes:

Installation of Nettle

Install Nettle by running the following commands:

./configure --prefix=/usr --disable-static &&

To test the results, issue: make check.

Now, as the root user:

make install &&
chmod   -v   755 /usr/lib/lib{hogweed,nettle}.so &&
install -v -m755 -d /usr/share/doc/nettle-3.8 &&
install -v -m644 nettle.html /usr/share/doc/nettle-3.8

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.


Installed Programs: nettle-hash, nettle-lfib-stream, nettle-pbkdf2, pkcs1-conv and sexp-conv
Installed Libraries: and
Installed Directory: /usr/include/nettle and /usr/share/doc/nettle-3.8

Short Descriptions


calculates a hash value using a specified algorithm


outputs a sequence of pseudorandom (non-cryptographic) bytes, using Knuth's lagged fibonacci generator. The stream is useful for testing, but should not be used to generate cryptographic keys or anything else that needs real randomness


is a password-based key derivation function that takes a password or a passphrase as input and returns a strengthened password, which is protected against pre-computation attacks by using salting and other expensive computations.


converts private and public RSA keys from PKCS #1 format to sexp format


converts an s-expression to a different encoding