doc updates
[gnutls.git] / doc / announce.txt
blobe27f8f1b0814992361716588b749ba7df89586cd
1 To: help-gnutls@gnu.org, gnutls-devel@gnu.org, info-gnu@gnu.org
2 Subject: GnuTLS 3.0.0 released
3 <#part sign=pgpmime>
4 We are proud to announce a new stable GnuTLS release: Version 3.0.0.
6 GnuTLS is a modern C library that implements the standard network
7 security protocol Transport Layer Security (TLS), for use by network
8 applications.  GnuTLS is developed for GNU/Linux, but works on many
9 Unix-like systems and comes with a binary installer for Windows.
11 The GnuTLS library is distributed under the terms of the GNU Lesser
12 General Public License version 2 (or later).  The "extra" GnuTLS
13 library (which contains), the OpenSSL compatibility library, the self tests
14 and the command line tools are all distributed under the GNU General
15 Public License version 3.0 (or later).  The manual is distributed
16 under the GNU Free Documentation License version 1.3 (or later).
18 The project page of the library is available at:
19   http://www.gnu.org/software/gnutls/
21 What's New
22 ==========
24 Version 3.0.0 is the first stable release on the 3.0.x branch and is
25 the result of 11 months of work on the experimental 2.99.x branch.  The
26 GnuTLS 3.0.x branch replaces the GnuTLS 2.12.x branch as the supported
27 stable branch, although we will continue to support GnuTLS 2.12.x for
28 some time.
30 ** libgnutls: license upgraded to LGPLv3
32 ** libgnutls: depends on nettle 2.2.
34 ** libgnutls: Added Datagram TLS 1.0 support.
36 ** libgnutls: Added Elliptic curve support. Requires priority strings:
37 +CURVE-ALL: to add all supported curves
38 +ECDHE-RSA: to add ephemeral ECDHE with an RSA-signed certificate
39 +ECDHE-ECDSA: to add ephemeral ECDHE with an ECDSA-signed certificate
40 +ANON-ECDHE: to add anonymous ECDH
42 ** libgnutls: Added ECDHE-PSK ciphersuites for TLS (RFC 5489).
44 ** libgnutls: Added AES in GCM mode
46 ** libgnutls: Added SUITEB128 and SUITEB192 priority
47 strings to enable the NSA SuiteB cryptography ciphersuites.
49 ** libgnutls: Added AES-GCM optimizations using the PCLMULQDQ
50 instruction. Uses Andy Polyakov's assembly code.
52 ** libgnutls: Added gnutls_global_set_audit_log_function() that allows
53 to get important auditing information including the corresponding session.
54 That might be useful to block DoS or other attacker from specific IPs.
56 ** libgnutls: gnutls_transport_set_lowat() is no more.
58 ** libgnutls: Added gnutls_certificate_set_retrieve_function2()
59 to set a callback to retrieve a certificate. The certificate is
60 received in a format that requires no processing from gnutls thus
61 it is suitable when performance is required.
63 ** libgnutls: Simplified the handling of handshake messages to 
64 be hashed. Instead of hashing during the handshake process we now 
65 keep the data until handshake is over and hash them on request. 
66 This uses more memory but eliminates issues with TLS 1.2 and 
67 simplifies code.
69 ** libgnutls: LZO support was removed.
71 ** libgnutls: gnutls_srp_verifier() returns data allocated with 
72 gnutls_malloc() for consistency.
74 ** libgnutls-openssl: modified to use modern gnutls' functions.
75 This introduces an ABI incompatibility with previous versions.
77 ** libgnutls: gnutls_rsa_params_t is now identical to gnutls_x509_privkey_t
78 to avoid thread-safety issues. Reported by Sam Varshavchik.
80 ** libgnutls: Added new PKCS #11 flags to force an object being private or
81 not. (GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE and GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE)
83 ** libgnutls: Added gnutls_x509_crq_verify() to allow
84 verification of the self signature in a certificate request.
85 This allows verifying whether the owner of the private key
86 is the generator of the request.
88 ** libgnutls: gnutls_x509_crt_set_crq() implicitly verifies
89 the self signature of the request.
91 ** libgnutls: Added gnutls_pubkey_verify_data2() that will
92 verify data provided the signature algorithm.
94 ** libgnutls: Added gnutls_x509_trust_list_add_named_crt() and
95 gnutls_x509_trust_list_verify_named_crt() that allow having a
96 list of certificates in the trusted list that will be associated
97 with a name (e.g. server name) and will not be used as CAs.
99 ** libgnutls: PKCS #11 back-end rewritten to use p11-kit
100 http://p11-glue.freedesktop.org/p11-kit.html. Rewrite by
101 Stef Walter.
103 ** libgnutls: Uses a single configure file and a single
104 gnulib library to save space.
106 ** libgnutlsxx: The C++ interface returns exception on
107 every error and not only on fatal ones. This allows easier
108 handling of errors.
110 ** libgnutls: Corrected issue in DHE-PSK ciphersuites that ignored    
111 the PSK callback.
113 ** libgnutls: SRP and PSK are no longer set on the default priorities. 
114 They have to be explicitly set.
116 ** libgnutls: During handshake message verification using DSS
117 use the hash algorithm required by it.
119 ** libgnutls: gnutls_recv() return GNUTLS_E_PREMATURE_TERMINATION
120 on unexpected EOF, instead of GNUTLS_E_UNEXPECTED_PACKET_LENGTH.
122 ** libgnutls-extra: Inner application extension was removed.
123 It was never standardized nor published as an RFC.
125 ** libgnutls: Added new certificate verification functions, that
126 can provide more details and are more efficient. Check 
127 gnutls_x509_trust_list_*.
129 ** certtool: Uses the new certificate verification functions for
130 --verify-chain.
132 ** certtool: Added new certificate verification functionality
133 using the --verify option. Combined with --load-ca-certificate
134 it can verify a certificate chain against a list of certificates.
137 ** API and ABI modifications:
138 gnutls_pubkey_verify_data2: ADDED
139 gnutls_ecc_curve_get: ADDED
140 gnutls_x509_trust_list_add_named_crt: ADDED
141 gnutls_x509_trust_list_verify_named_crt: ADDED
142 gnutls_x509_privkey_verify_data: REMOVED
143 gnutls_crypto_bigint_register: REMOVED
144 gnutls_crypto_cipher_register: REMOVED
145 gnutls_crypto_digest_register: REMOVED
146 gnutls_crypto_mac_register: REMOVED
147 gnutls_crypto_pk_register: REMOVED
148 gnutls_crypto_rnd_register: REMOVED
149 gnutls_crypto_single_cipher_register: REMOVED
150 gnutls_crypto_single_digest_register: REMOVED
151 gnutls_crypto_single_mac_register: REMOVED
152 gnutls_certificate_get_issuer: ADDED
153 gnutls_x509_trust_list_get_issuer: ADDED
154 gnutls_x509_crq_verify: ADDED
155 gnutls_global_set_audit_log_function: ADDED
156 gnutls_ecc_curve_get_name: ADDED
157 gnutls_ecc_curve_get_size: ADDED
158 gnutls_x509_privkey_import_ecc_raw: ADDED
159 gnutls_x509_privkey_export_ecc_raw: ADDED
160 gnutls_global_set_time_function: ADDED
161 gnutls_dtls_set_timeouts: ADDED
162 gnutls_dtls_get_mtu: ADDED
163 gnutls_dtls_get_data_mtu: ADDED
164 gnutls_dtls_set_mtu: ADDED
165 gnutls_dtls_cookie_send: ADDED
166 gnutls_dtls_cookie_verify: ADDED
167 gnutls_dtls_prestate_set: ADDED
168 gnutls_x509_trust_list_verify_crt: ADDED
169 gnutls_x509_trust_list_add_crls: ADDED
170 gnutls_x509_trust_list_add_cas: ADDED
171 gnutls_x509_trust_list_init: ADDED
172 gnutls_x509_trust_list_deinit: ADDED
173 gnutls_cipher_add_auth: ADDED
174 gnutls_cipher_tag: ADDED
175 gnutls_psk_netconf_derive_key: REMOVED
176 gnutls_certificate_verify_peers: REMOVED
177 gnutls_session_set_finished_function: REMOVED
178 gnutls_ext_register: REMOVED
179 gnutls_certificate_get_x509_crls: REMOVED
180 gnutls_certificate_get_x509_cas: REMOVED
181 gnutls_certificate_get_openpgp_keyring: REMOVED
182 gnutls_session_get_server_random: REMOVED
183 gnutls_session_get_client_random: REMOVED
184 gnutls_session_get_master_secret: REMOVED
185 gnutls_ia_allocate_client_credentials: REMOVED
186 gnutls_ia_allocate_server_credentials: REMOVED
187 gnutls_ia_enable: REMOVED
188 gnutls_ia_endphase_send: REMOVED
189 gnutls_ia_extract_inner_secret: REMOVED
190 gnutls_ia_free_client_credentials: REMOVED
191 gnutls_ia_free_server_credentials: REMOVED
192 gnutls_ia_generate_challenge: REMOVED
193 gnutls_ia_get_client_avp_ptr: REMOVED
194 gnutls_ia_get_server_avp_ptr: REMOVED
195 gnutls_ia_handshake: REMOVED
196 gnutls_ia_handshake_p: REMOVED
197 gnutls_ia_permute_inner_secret: REMOVED
198 gnutls_ia_recv: REMOVED
199 gnutls_ia_send: REMOVED
200 gnutls_ia_set_client_avp_function: REMOVED
201 gnutls_ia_set_client_avp_ptr: REMOVED
202 gnutls_ia_set_server_avp_function: REMOVED
203 gnutls_ia_set_server_avp_ptr: REMOVED
204 gnutls_ia_verify_endphase: REMOVED
205 GNUTLS_E_ECC_NO_SUPPORTED_CURVES: New error code
206 GNUTLS_E_ECC_UNSUPPORTED_CURVE: New error code
207 GNUTLS_KX_ECDHE_RSA: New key exchange method
208 GNUTLS_KX_ECDHE_ECDSA: New key exchange method
209 GNUTLS_KX_ANON_ECDH: New key exchange method
210 GNUTLS_KX_ECDHE_PSK: New key exchange method
211 GNUTLS_PK_ECC: New public key algorithm
212 GNUTLS_SIGN_ECDSA_SHA1: New signature algorithm
213 GNUTLS_SIGN_ECDSA_SHA256: New signature algorithm
214 GNUTLS_SIGN_ECDSA_SHA384: New signature algorithm
215 GNUTLS_SIGN_ECDSA_SHA512: New signature algorithm 
216 GNUTLS_SIGN_ECDSA_SHA224: New signature algorithm
217 GNUTLS_ECC_CURVE_INVALID: New curve definition
218 GNUTLS_ECC_CURVE_SECP224R1: New curve definition
219 GNUTLS_ECC_CURVE_SECP256R1: New curve definition
220 GNUTLS_ECC_CURVE_SECP384R1: New curve definition
221 GNUTLS_ECC_CURVE_SECP521R1: New curve definition
222 GNUTLS_VERIFY_DISABLE_CRL_CHECKS: New certificate verification flag.
223 GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE: New PKCS#11 object flag.
224 GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE: New PKCS#11 object flag.
227 Community
228 =========
230 If you need help to use GnuTLS, or want to help others, you are invited
231 to join our help-gnutls mailing list, see:
233   http://lists.gnu.org/mailman/listinfo/help-gnutls
235 If you wish to participate in the development of GnuTLS, you are invited
236 to join our gnutls-dev mailing list, see:
238   http://lists.gnu.org/mailman/listinfo/gnutls-devel
240 Internationalization
241 ====================
243 The GnuTLS library messages have been translated into Czech, Dutch,
244 French, German, Italian, Malay, Polish, Simplified Chinese, Swedish,
245 and Vietnamese.  We welcome the addition of more translations.