GnuTLS (, the GNU Transport Layer Security Library) is a
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
implementation of the
TLS, SSL and
DTLS protocols. It offers an
application programming interface
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standard that des ...
(API) for applications to enable secure communication over the network
transport layer
In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end c ...
, 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 card
A smart card (SC), chip card, or integrated circuit card (ICC or IC card), is a card used to control access to a resource. It is typically a plastic credit card-sized card with an Embedded system, embedded integrated circuit (IC) chip. Many smart ...
s and for hardware security modules
* Storage of cryptographic keys in the system's
Trusted Platform Module
A Trusted Platform Module (TPM) is a secure cryptoprocessor that implements the ISO/IEC 11889 standard. Common uses are verifying that the boot process starts from a trusted combination of hardware and software and storing disk encryption keys.
...
(TPM)
History
Origin
GnuTLS was initially created around March to November 2000, by Nikos Mavrogiannopoulos to allow applications of the
GNU Project
The GNU Project ( ) is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing dev ...
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
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
.
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
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
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
The GNU Project ( ) is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing dev ...
,
but in December 2012 its maintainer, Nikos Mavrogiannopoulos, dissociated the project from GNU after policy disputes with the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
.
[GnuTLS, copyright assignment, and GNU project governance](_blank)
on lwn.net by Michael Kerrisk (December 20, 2012)[
] Richard Stallman
Richard Matthew Stallman ( ; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to ...
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
Wireshark is a Free and open-source software, free and open-source packet analyzer. It is used for computer network, network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, ...
*
slrn
slrn is a Console application, console-based news client for multiple operating systems, developed by John E. Davis and others. It was originally developed in 1994 for Unix-like operating systems and OpenVMS, VMS, and now also supports Microsoft ...
*
Lynx
A lynx ( ; : lynx or lynxes) is any of the four wikt:extant, extant species (the Canada lynx, Iberian lynx, Eurasian lynx and the bobcat) within the medium-sized wild Felidae, cat genus ''Lynx''. The name originated in Middle Engl ...
*
CUPS
*
gnoMint
*
GNU Emacs
GNU Emacs is a text editor and suite of free software tools. Its development began in 1984 by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU ...
*
Synology DiskStation Manager
*
OpenConnect
See also
*
Comparison of TLS implementations
*
wolfSSL (previously CyaSSL)
*
mbed TLS
Mbed TLS (previously PolarSSL) is an implementation of the Transport Layer Security, TLS and SSL protocols and the respective cryptographic algorithms and support code required. It is distributed under the Apache License version 2.0. Stated on t ...
(previously PolarSSL)
*
List of free and open-source software packages
This is a list of free and open-source software (FOSS) packages, computer software licensed under free software licenses and open-source licenses. Software that fits the Free Software Definition may be more appropriately called free software; ...
*
Network Security Services
References
External links
*
GNU Friends - An Interview with GNU TLS developer Nikos Mavroyanopoulos– a 2003 interview
Fellowship interview with Simon Josefsson– a 2009 interview
{{TLS/SSL
Cryptographic software
GNU Project software
Free security software
Transport Layer Security implementation