ArticleslgStudy

computer science

GnuTLS

GnuTLS is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand GnuTLS rather than just read about it. In short: GnuTLS (, the GNU Transport Layer Security Library) is a free software implementation of the TLS, SSL and DTLS protocols. It offers an application programming interface (API) for applications to enable secure communication over the network transport layer, as well as interfaces to access X.509, PKCS #12, OpenPGP and other structures.

GnuTLS — main illustration
GnuTLS — illustration

Key takeaways

  • GnuTLS belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect GnuTLS to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of GnuTLS from memory before moving on to harder problems.

Reference excerpt

GnuTLS (, the GNU Transport Layer Security Library) is a free software implementation of the TLS, SSL and DTLS protocols. It offers an application programming interface (API) for applications to enable secure communication over the network transport layer, as well as interfaces to access X.509, PKCS #12, OpenPGP and other structures.

Features GnuTLS consists of a library that allows client applications to start secure sessions using the available protocols. It also provides command-line tools, including an X.509 certificate manager, a test client and server, and random key and password generators. GnuTLS has the following features:

TLS 1.3, TLS 1.2, TLS 1.1, TLS 1.0, and SSL 3.0 protocols Datagram TLS (DTLS) 1.2, and DTLS 1.0, protocols TLS-SRP: Secure remote password protocol (SRP) for TLS authentication TLS-PSK: Pre-shared key (PSK) for TLS authentication X.509 and OpenPGP certificate handling CPU assisted cryptography and cryptographic accelerator support (/dev/crypto), VIA PadLock and AES-NI instruction sets Support for smart cards and for hardware security modules Storage of cryptographic keys in the system's Trusted Platform Module (TPM)

History

Origin GnuTLS was initially created around March to November 2000, by Nikos Mavrogiannopoulos to allow applications of the GNU Project to use secure protocols such as TLS. Although OpenSSL already existed, OpenSSL's license is not compatible with the GPL; thus software under the GPL, such as GNU software, could not use OpenSSL without making a GPL linking exception.

License The GnuTLS library was licensed originally under the GNU Lesser General Public License v2, while included applications to use the GNU General Public License. In August 2011 the library was updated to the LGPLv3. After it was noticed that there were new license compatibility problems introduced, especially with other free software with the license change, after discussions the license was downgraded again to LGPLv2.1 in March 2013.

Split from GNU GnuTLS was created for the GNU Project, but in December 2012 its maintainer, Nikos Mavrogiannopoulos, dissociated the project from GNU after policy disputes with the Free Software Foundation. Richard Stallman opposed this move and suggested forking the project instead. Soon afterward, developer Paolo Bonzini ended his maintainership of GNU Sed and Grep, expressing concerns similar to those of GnuTLS maintainer Mavrogiannopoulos.

Deployment

Software packages using GnuTLS include(d):

GNOME CenterIM Exim WeeChat Mutt Wireshark slrn Lynx CUPS gnoMint GNU Emacs Synology DiskStation Manager OpenConnect

See also

Comparison of TLS implementations wolfSSL (previously CyaSSL) mbed TLS (previously PolarSSL) List of free and open-source software packages Network Security Services

References

External links Official website GNU Friends - An Interview with GNU TLS developer Nikos Mavroyanopoulos – a 2003 interview Fellowship interview with Simon Josefsson – a 2009 interview

Illustrations

GnuTLS illustration

Worked examples

Example 1 — a first encounter with GnuTLS

Start with the simplest possible case. Write down what GnuTLS claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to GnuTLS before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about GnuTLS ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of GnuTLS

In research
GnuTLS appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses GnuTLS in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
GnuTLS is common in secondary-school and first-year university syllabi. It links to neighbouring topics Cryptographic software, Free security software, GNU Project software, so understanding it makes those chapters shorter.
In everyday life
Look for GnuTLS outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study GnuTLS in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what GnuTLS means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain GnuTLS out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is GnuTLS in simple terms?

GnuTLS (, the GNU Transport Layer Security Library) is a free software implementation of the TLS, SSL and DTLS protocols. It offers an application programming interface (API) for applications to enable secure communication over the network transport layer, as well as interfaces to access X.509, PKC…

Why does GnuTLS matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study GnuTLS?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on GnuTLS.

Tags

  • Cryptographic software
  • Free security software
  • GNU Project software
  • Transport Layer Security implementation

Keep exploring