GnuTLS 2.4.0
Simon Josefsson
simon at josefsson.org
Thu Jun 19 11:18:38 CEST 2008
We are proud to announce a new stable GnuTLS release: Version 2.4.0.
GnuTLS is a modern C library that implement the standard network
security protocol Transport Layer Security (TLS), for use by network
applications. GnuTLS is developed for GNU/Linux, but works on many
Unix-like systems and comes with a binary installer for Windows.
The core GnuTLS library is distribute under the terms of the GNU Lesser
General Public License version 2.1 (or later). The "extra" GnuTLS
libraries -- which contains TLS/IA support, LZO compression -- and the
OpenSSL compatibility library self tests and command line tools are
distributed under the GNU General Public License version 3.0 (or later).
The manual is distributed under the GNU Free Documentation License
version 1.2 (or later).
The project page of the library is available at:
http://www.gnutls.org/
http://www.gnu.org/software/gnutls/
http://josefsson.org/gnutls/
What's New
==========
Major end-user visible changes compared to the v2.2 branch:
* The OpenPGP sub-system has been improved and now supports subkeys.
* The PSK sub-system has been improved and now supports password
derivation and PSK identity hints.
The password derivation algorithms support is documented in
draft-ietf-netconf-tls-02.txt.
* The certtool --inder and --outder has been replaced by --inraw and --outraw.
This aligns terminology with OpenPGP, which doesn't use DER
encoding. The old parameters will continue to work for some time.
* Certtool now confirm passwords and changes permissions of private key files.
* The default handshake size limit has been increased to 48kb.
It appears as if some valid handshakes are large due to sending many
CA certificates. (The earlier limit was 16kb.)
* LZO compression is now disabled by default.
The main reason is that LZO compression in TLS is not standardized,
but license compatiblity issues with minilzo triggered us to make
this decision now.
* Improvements for cross-compilation to Windows and OpenWRT.
* The look of the GTK-DOC manual has been improved.
Major developer visible changes compared to the v2.2 branch:
* Full OpenPGP support is part of libgnutls, licensed under the LGPL.
* New APIs to access the raw X.509 Subject and Issuer DN's and
elements from the certificate credentials structure, thanks to Joe
Orton.
* New APIs to improve working with username/passwords and PSK.
* Names of constants to affect certificate printing changed.
The constants are used for OpenPGP too, which the names didn't
reflect, so the following name change has been made:
Old name New name
GNUTLS_X509_CRT_FULL GNUTLS_CRT_PRINT_FULL
GNUTLS_X509_CRT_ONELINE GNUTLS_CRT_PRINT_ONELINE
GNUTLS_X509_CRT_UNSIGNED_FULL GNUTLS_CRT_PRINT_UNSIGNED_FULL
The old names will be mapped to the new names for some time.
* The function gnutls_openpgp_privkey_get_id has been renamed to
gnutls_openpgp_privkey_get_key_id.
A compatibility mapping exists to avoid breaking API backwards
compatibility.
* Replaced all uses of alloca with malloc and free.
* We no longer build with -D_REENTRANT -D_THREAD_SAFE.
We have been unable to find a documented rationale for this
practice.
Of course, many smaller fixes have been made, see the ChangeLog file.
API/ABI changes in GnuTLS 2.4
=============================
All OpenPGP related functions have been moved from libgnutls-extra to
libgnutls, and several new functions have been added (see below).
Before making the release, we discussed whether moving functions from
libgnutls-extra to libgnutls would require us to increment the ABI
version, but the general opinion was that this would not be required.
All older functions continue to work the same. We are open to the
possibility that this decision will lead to problem on some platform,
and if it turns out that the Right Thing should have been to increment
the shared library version, we would need to release an update within
the 2.4.x branch that increments the shared library version.
This release adds the following functions:
gnutls_psk_client_get_hint
gnutls_psk_set_server_credentials_hint
gnutls_psk_netconf_derive_key
Used to get/set the PSK identity hint, and derive PSK keys from
passwords a'la netconf.
gnutls_x509_dn_deinit
gnutls_x509_dn_export
gnutls_x509_dn_import
gnutls_x509_dn_init
Used to handle X.509 Certificate DN's directly.
gnutls_hex2bin
Converts a data buffer to hex. Useful for handling PSK/SRP shared
secrets.
gnutls_certificate_get_x509_cas
gnutls_certificate_get_x509_crls
gnutls_certificate_get_openpgp_keyring
Functions for direct access to credential elements.
gnutls_openpgp_crt_get_auth_subkey
gnutls_openpgp_crt_get_key_id
gnutls_openpgp_crt_get_pk_dsa_raw
gnutls_openpgp_crt_get_pk_rsa_raw
gnutls_openpgp_crt_get_preferred_key_id
gnutls_openpgp_crt_get_revoked_status
gnutls_openpgp_crt_get_subkey_count
gnutls_openpgp_crt_get_subkey_creation_time
gnutls_openpgp_crt_get_subkey_expiration_time
gnutls_openpgp_crt_get_subkey_fingerprint
gnutls_openpgp_crt_get_subkey_id
gnutls_openpgp_crt_get_subkey_idx
gnutls_openpgp_crt_get_subkey_pk_algorithm
gnutls_openpgp_crt_get_subkey_pk_dsa_raw
gnutls_openpgp_crt_get_subkey_pk_rsa_raw
gnutls_openpgp_crt_get_subkey_revoked_status
gnutls_openpgp_crt_get_subkey_usage
gnutls_openpgp_crt_print
gnutls_openpgp_crt_set_preferred_key_id
gnutls_openpgp_keyring_get_crt
gnutls_openpgp_keyring_get_crt_count
gnutls_openpgp_privkey_export
gnutls_openpgp_privkey_export_dsa_raw
gnutls_openpgp_privkey_export_rsa_raw
gnutls_openpgp_privkey_export_subkey_dsa_raw
gnutls_openpgp_privkey_export_subkey_rsa_raw
gnutls_openpgp_privkey_get_fingerprint
gnutls_openpgp_privkey_get_key_id
gnutls_openpgp_privkey_get_pk_algorithm
gnutls_openpgp_privkey_get_preferred_key_id
gnutls_openpgp_privkey_get_revoked_status
gnutls_openpgp_privkey_get_subkey_count
gnutls_openpgp_privkey_get_subkey_creation_time
gnutls_openpgp_privkey_get_subkey_expiration_time
gnutls_openpgp_privkey_get_subkey_fingerprint
gnutls_openpgp_privkey_get_subkey_id
gnutls_openpgp_privkey_get_subkey_idx
gnutls_openpgp_privkey_get_subkey_pk_algorithm
gnutls_openpgp_privkey_get_subkey_revoked_status
gnutls_openpgp_privkey_set_preferred_key_id
New OpenPGP related functions.
The function gnutls_openpgp_crt_get_key_id is the same as the old
from gnutls_openpgp_crt_get_id, see above.
The release also adds a new header file 'gnutls/crypto.h', however it
is currently not used.
Getting the Software
====================
GnuTLS may be downloaded from one of the mirror sites or direct from
<ftp://ftp.gnutls.org/pub/gnutls/>. The list of mirrors can be found at
<http://www.gnu.org/software/gnutls/download.html>. Note, that GnuPG is
not available at ftp.gnu.org.
Here are the BZIP2 compressed sources (4.8MB):
ftp://ftp.gnutls.org/pub/gnutls/gnutls-2.4.0.tar.bz2
http://josefsson.org/gnutls/releases/gnutls-2.4.0.tar.bz2
Here are OpenPGP detached signatures signed using key 0xB565716F:
ftp://ftp.gnutls.org/pub/gnutls/gnutls-2.4.0.tar.bz2.sig
http://josefsson.org/gnutls/releases/gnutls-2.4.0.tar.bz2.sig
Note, that we don't distribute gzip compressed tarballs.
In order to check that the version of GnuTLS which you are going to
install is an original and unmodified one, you should verify the OpenPGP
signature. You can use the command
gpg --verify gnutls-2.4.0.tar.bz2.sig
This checks whether the signature file matches the source file. You
should see a message indicating that the signature is good and made by
that signing key. Make sure that you have the right key, either by
checking the fingerprint of that key with other sources or by checking
that the key has been signed by a trustworthy other key. The signing
key can be identified with the following information:
pub 1280R/B565716F 2002-05-05 [expires: 2008-06-30]
Key fingerprint = 0424 D4EE 81A0 E3D1 19C6 F835 EDA2 1E94 B565 716F
uid Simon Josefsson <simon at josefsson.org>
uid Simon Josefsson <jas at extundo.com>
sub 1280R/4D5D40AE 2002-05-05 [expires: 2008-06-30]
The key is available from:
http://josefsson.org/key.txt
dns:b565716f.josefsson.org?TYPE=CERT
Alternatively, after successfully verifying the OpenPGP signature of
this announcement, you could verify that the files match the following
checksum values. The values are for SHA-1 and SHA-224 respectively:
9bb3be9f2ad67037d3a571bec4fac65e0ffbadbb gnutls-2.4.0.tar.bz2
9dc4435b637a4841a88ec294b8a82841eb257cee4948bc957c1a96d7 gnutls-2.4.0.tar.bz2
Documentation
=============
The manual is available online at:
http://www.gnu.org/software/gnutls/documentation.html
In particular the following formats are available:
HTML: http://www.gnu.org/software/gnutls/manual/html_node/index.html
PDF: http://www.gnu.org/software/gnutls/manual/gnutls.pdf
For developers there is a GnuTLS API reference manual formatted using
the GTK-DOC tools:
http://www.gnu.org/software/gnutls/reference/gnutls-gnutls.html
Community
=========
If you need help to use GnuTLS, or want to help others, you are invited
to join our help-gnutls mailing list, see:
<http://lists.gnu.org/mailman/listinfo/help-gnutls>.
If you wish to participate in the development of GnuTLS, you are invited
to join our gnutls-dev mailing list, see:
<http://lists.gnupg.org/mailman/listinfo/gnutls-dev>.
Windows installer
=================
GnuTLS has been ported to the Windows operating system, and a binary
installer is available. The installer contains DLLs for application
development, manuals, examples, and source code. The installer consists
of libgpg-error 1.6, libgcrypt 1.4.1, libtasn1 1.4, and GnuTLS 2.4.0.
For more information about GnuTLS for Windows:
http://josefsson.org/gnutls4win/
The Windows binary installer and PGP signature:
http://josefsson.org/gnutls4win/gnutls-2.4.0.exe (14MB)
http://josefsson.org/gnutls4win/gnutls-2.4.0.exe.sig
The checksum values for SHA-1 and SHA-224 are:
e704df715ed6cad14c7a6e4350d7557d81de655b gnutls-2.4.0.exe
b548c3178f89669d1245b266c7caa834feeea63b142a8871f1185097 gnutls-2.4.0.exe
Thanks to Enrico Tassi, we also have mingw32 *.deb's available:
http://josefsson.org/gnutls4win/mingw32-gnutls_2.3.15-1_all.deb
The checksum values for SHA-1 and SHA-224 are:
3fc1e58fe58ac77c6dc433052685d59400a88559 mingw32-gnutls_2.4.0-1_all.deb
601549a449ce25dc4520c591bad42d833b23f05a8f67cf4fe732f7de mingw32-gnutls_2.4.0-1_all.deb
Internationalization
====================
GnuTLS messages have been translated into Dutch, German, Malay, Polish,
Swedish, and Vietnamese. We welcome the addition of more translations.
Support
=======
Improving GnuTLS is costly, but you can help! We are looking for
organizations that find GnuTLS useful and wish to contribute back. You
can contribute by reporting bugs, improve the software, or donate money
or equipment.
Commercial support contracts for GnuTLS are available, and they help
finance continued maintenance. Simon Josefsson Datakonsult, a Stockholm
based privately held company, is currently funding GnuTLS maintenance.
We are always looking for interesting development projects. See
http://josefsson.org/ for more details.
The GnuTLS service directory is available at:
http://www.gnu.org/software/gnutls/commercial.html
Happy Hacking,
Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 419 bytes
Desc: not available
URL: </pipermail/attachments/20080619/ce15cda6/attachment.pgp>
More information about the Gnutls-devel
mailing list