updated news
[gnutls.git] / doc / announce.txt
blobbb229d1141f17737a6256a7af11bc56397607ab7
1 To: help-gnutls@gnu.org, gnutls-devel@gnu.org, info-gnu@gnu.org
2 Subject: GnuTLS 2.12.0 released
3 <#part sign=pgpmime>
4 We are proud to announce a new stable GnuTLS release: Version 2.12.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.1 (or later).  The "extra" GnuTLS
13 library (which contains TLS/IA support, LZO compression and Libgcrypt
14 FIPS-mode handler), the OpenSSL compatibility library, the self tests
15 and the command line tools are all distributed under the GNU General
16 Public License version 3.0 (or later).  The manual is distributed
17 under the GNU Free Documentation License version 1.3 (or later).
19 The project page of the library is available at:
20   http://www.gnu.org/software/gnutls/
22 What's New
23 ==========
25 Version 2.12.0 is the first stable release on the 2.12.x branch and is
26 the result of 12 months of work on the experimental 2.11.x branch.  The
27 GnuTLS 2.12.x branch replaces the GnuTLS 2.10.x branch as the supported
28 stable branch, although we will continue to support GnuTLS 2.10.x for
29 some time.
31 ** libgnutls: Nettle is the default crypto back end. Use --with-libgcrypt
32 to use the libgcrypt back end.
34 ** libgnutls: Added PKCS #11 support and an API to access objects in
35 gnutls/pkcs11.h. Certificates and public keys can be
36 imported from tokens, and operations can be performed on private keys.
38 ** p11tool: Introduced. It allows manipulating pkcs 11 tokens.
40 ** libgnutls: Added an abstract interface to access public keys
41 and private keys in gnutls/abstract.h. It allows easy handling
42 of private keys and public keys of all subsystems such as pkcs11, openpgp
43 and x509.
45 ** libgnutls: Added functions to ease selection of bit length in public
46 key algorithm key generation. Those are
47 gnutls_sec_param_to_pk_bits(), gnutls_pk_bits_to_sec_param(),
48 and gnutls_sec_param_get_name().
50 ** libgnutls: Add new API gnutls_session_channel_binding.
51 The function is used to get the channel binding data.  Currently only
52 the "tls-unique" (RFC 5929) channel binding type is supported, through
53 the GNUTLS_CB_TLS_UNIQUE type.  See new section "Channel Bindings" in
54 the manual.
56 ** libgnutls: Removed support for opaque PRF (it was disabled by
57 default in previous gnutls versions)
59 ** libgnutls: Added gnutls_global_set_mutex() to allow setting
60 alternative locking procedures. By default the system available
61 locking is used. In *NIX pthreads are used and in windows the
62 critical section API. This follows a different approach than the
63 previous versions that depended on libgcrypt initialization. The
64 locks are now set by default in systems that support it. Programs
65 that used gcry_control() to set thread locks should insert it into
66 a block of
67 #if GNUTLS_VERSION_NUMBER <= 0x020b00
68         gcry_control(...)
69 #endif
71 ** libgnutls: Added support for reading DN from EV-certificates.
72 New DN values:
73 jurisdictionOfIncorporationLocalityName,
74 jurisdictionOfIncorporationStateOrProvinceName,
75 jurisdictionOfIncorporationCountryName
77 ** gnutls-cli, gnutls-serv: Print 'tls-unique' Channel Bindings.
79 ** libgnutls: Added RSA_NULL_SHA1 and SHA256 ciphersuites.
81 ** libgnutls: Is now more liberal in the PEM decoding. That is spaces and 
82 tabs are being skipped.
84 ** libgnutls: The %COMPAT flag now allows larger records that violate the
85 TLS spec.
87 ** libgnutls: Corrected signature generation and verification
88 in the Certificate Verify message when in TLS 1.2. Reported
89 by Todd A. Ouska.
91 ** libgnutls: gnutls_x509_privkey_import() will fallback to
92 gnutls_x509_privkey_import_pkcs8() without a password, if it
93 is unable to decode the key.
95 ** libgnutls: HMAC-MD5 no longer used by default.
97 ** libgnutls: Corrected issue in DHE-PSK ciphersuites that ignored
98 the PSK callback.
100 ** libgnutls: SRP and PSK are no longer set on the default priorities. 
101 They have to be explicitly set.
103 ** libgnutls: During TLS 1.2 handshake message verification using DSS
104 use the hash algorithm required by it. In TLS 1.0, 1.1 and SSL 3.0
105 SHA-1 is used always.
107 ** libgnutls: gnutls_x509_privkey_sign_hash() is deprecated.
108 Use gnutls_privkey_sign_hash() instead.
110 ** libgnutls: gnutls_pubkey_verify_data, gnutls_pubkey_verify_hash,
111 gnutls_x509_privkey_verify_data, gnutls_x509_crt_verify_data, 
112 gnutls_x509_crt_verify_hash return the negative error code 
113 GNUTLS_E_PK_SIG_VERIFY_FAILED if verification fails to simplify error 
114 checking.
116 ** libgnutls: Added helper functions for signature verification:
117 gnutls_pubkey_verify_data() and gnutls_pubkey_import_privkey().
119 ** gnutls_x509_crl_privkey_sign2(), gnutls_x509_crq_sign2()
120 gnutls_x509_privkey_sign_hash(), gnutls_x509_privkey_sign_data(),
121 gnutls_x509_crt_verify_hash(), gnutls_x509_crt_verify_data(), were
122 deprecated for gnutls_x509_crl_privkey_sign(),
123 gnutls_x509_crq_privkey_sign(), gnutls_privkey_sign_hash(),
124 gnutls_privkey_sign_data(), gnutls_pubkey_verify_hash()
125 gnutls_pubkey_verify_data() respectively.
127 ** libgnutls: gnutls_*_export_raw() functions now add leading zero in
128 integers.
130 ** libgnutls: Added gnutls_transport_set_vec_push_function() that
131 can be used to specify a writev() like function. Using that gnutls
132 can provide more efficient writes to network layer in systems that 
133 support it.
135 ** libgnutls: Record version of Client Hellos is now set by default to
136 SSL 3.0. To restore the previous default behavior use %LATEST_RECORD_VERSION
137 priority string.
139 ** libgnutls: Use ASN1_NULL when writing parameters for RSA signatures. 
140 This makes us comply with RFC3279. Reported by Michael Rommel.
142 ** gnutls-serv: Corrected a buffer overflow. Reported and patch by Tomas Mraz.
144 ** libgnutls: Reverted default behavior for verification and
145 introduced GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT. Thus by default
146 V1 trusted CAs are allowed, unless the new flag is specified.
148 ** libgnutls: Correctly add leading zero to PKCS #8 encoded DSA key.
149 Reported by Jeffrey Walton.
151 ** libgnutls: Added SIGN-ALL, CTYPE-ALL, COMP-ALL, and VERS-TLS-ALL
152 as priority strings. Those allow to set all the supported algorithms
153 at once.
155 ** libgnutls: Added support for DSA signing/verifying with bit 
156 length over 1024.
158 ** libgnutls-extra: When in FIPS mode gnutls_global_init_extra()
159 has to be called to register any required md5 handlers.
164 API/ABI changes in GnuTLS 2.12
165 ==============================
167 No offically supported interfaces have been modified or removed.  The
168 library should be completely backwards compatible on both the source
169 and binary level.
171 The following symbols have been added to the library:
173 gnutls_transport_set_vec_push_function: ADDED
174 gnutls_x509_crl_get_raw_issuer_dn: ADDED
175 gnutls_session_channel_binding: New function.
176 gnutls_channel_binding_t: New enumeration.
177 gnutls_pkcs11_token_init: New function
178 gnutls_pkcs11_token_set_pin: New function
179 gnutls_x509_crt_get_subject_unique_id: ADDED.
180 gnutls_x509_crt_get_issuer_unique_id: ADDED.
181 gnutls_x509_crt_get_preferred_hash_algorithm: ADDED
182 gnutls_x509_privkey_export_rsa_raw2: ADDED
183 gnutls_openpgp_privkey_sec_param: ADDED
184 gnutls_x509_privkey_sec_param: ADDED
185 gnutls_global_set_mutex: ADDED
186 gnutls_rnd: ADDED
187 gnutls_sec_param_to_pk_bits: ADDED
188 gnutls_pk_bits_to_sec_param: ADDED
189 gnutls_sec_param_get_name: ADDED
190 gnutls_certificate_set_retrieve_function: ADDED
191 gnutls_pkcs11_type_get_name: ADDED
192 gnutls_pkcs11_init: ADDED
193 gnutls_pkcs11_deinit: ADDED
194 gnutls_pkcs11_set_pin_function: ADDED
195 gnutls_pkcs11_set_token_function: ADDED
196 gnutls_pkcs11_add_provider: ADDED
197 gnutls_pkcs11_obj_init: ADDED
198 gnutls_pkcs11_obj_import_url: ADDED
199 gnutls_pkcs11_obj_export_url: ADDED
200 gnutls_pkcs11_obj_deinit: ADDED
201 gnutls_pkcs11_obj_export: ADDED
202 gnutls_pkcs11_obj_list_import_url: ADDED
203 gnutls_pkcs11_obj_export: ADDED
204 gnutls_pkcs11_obj_get_type: ADDED
205 gnutls_pkcs11_obj_get_info: ADDED
206 gnutls_pkcs11_token_get_info: ADDED
207 gnutls_pkcs11_token_get_url: ADDED
208 gnutls_pkcs11_privkey_init: ADDED
209 gnutls_pkcs11_privkey_deinit: ADDED
210 gnutls_pkcs11_privkey_get_pk_algorithm: ADDED
211 gnutls_pkcs11_privkey_get_info: ADDED
212 gnutls_pkcs11_privkey_import_url: ADDED
213 gnutls_pkcs11_privkey_sign_data: ADDED
214 gnutls_pkcs11_privkey_sign_hash: ADDED
215 gnutls_pkcs11_privkey_decrypt_data: ADDED
216 gnutls_x509_crt_import_pkcs11: ADDED
217 gnutls_x509_crt_list_import_pkcs11: ADDED
218 gnutls_x509_crt_import_pkcs11_url: ADDED
219 gnutls_privkey_init: ADDED
220 gnutls_privkey_sign_hash: ADDED
221 gnutls_privkey_sign_data: ADDED
222 gnutls_privkey_deinit: ADDED
223 gnutls_privkey_get_pk_algorithm: ADDED
224 gnutls_privkey_get_type: ADDED
225 gnutls_privkey_import_pkcs11: ADDED
226 gnutls_privkey_import_x509: ADDED
227 gnutls_privkey_import_openpgp: ADDED
228 gnutls_privkey_sign_data: ADDED
229 gnutls_privkey_sign_hash: ADDED
230 gnutls_privkey_decrypt_data: ADDED
231 gnutls_pkcs11_privkey_export_url: ADDED
232 gnutls_x509_crq_privkey_sign: ADDED
233 gnutls_x509_crl_privkey_sign: ADDED
234 gnutls_x509_crt_privkey_sign: ADDED
235 gnutls_pubkey_init: ADDED
236 gnutls_pubkey_import_privkey: ADDED
237 gnutls_pubkey_verify_data: ADDED
238 gnutls_pubkey_get_preferred_hash_algorithm: ADDED
239 gnutls_pubkey_deinit: ADDED
240 gnutls_pubkey_get_pk_algorithm: ADDED
241 gnutls_pubkey_import_x509: ADDED
242 gnutls_pubkey_import_openpgp: ADDED
243 gnutls_pubkey_get_pk_rsa_raw: ADDED
244 gnutls_pubkey_get_pk_dsa_raw: ADDED
245 gnutls_pubkey_export: ADDED
246 gnutls_pubkey_get_key_id: ADDED
247 gnutls_pubkey_get_key_usage: ADDED
248 gnutls_pubkey_verify_hash: ADDED
249 gnutls_pubkey_get_verify_algorithm: ADDED
250 gnutls_pkcs11_type_get_name: ADDED
251 gnutls_pubkey_import_pkcs11_url: ADDED
252 gnutls_pubkey_import: ADDED
253 gnutls_pubkey_import_pkcs11: ADDED
254 gnutls_pubkey_import_dsa_raw: ADDED
255 gnutls_pubkey_import_rsa_raw: ADDED
256 gnutls_x509_crt_set_pubkey: ADDED
257 gnutls_x509_crq_set_pubkey: ADDED
258 gnutls_pkcs11_copy_x509_crt: ADDED
259 gnutls_pkcs11_copy_x509_privkey: ADDED
260 gnutls_pkcs11_delete_url: ADDED
262 The following symbols were deprecated because have been replaced
263 by newer functions:
264 gnutls_cipher_set_priority: DEPRECATED (use: gnutls_priority_set_direct)
265 gnutls_mac_set_priority: DEPRECATED (use: gnutls_priority_set_direct)
266 gnutls_compression_set_priority: DEPRECATED (use: gnutls_priority_set_direct)
267 gnutls_kx_set_priority: DEPRECATED (use: gnutls_priority_set_direct)
268 gnutls_protocol_set_priority: DEPRECATED (use: gnutls_priority_set_direct)
269 gnutls_certificate_type_set_priority: DEPRECATED (use: gnutls_priority_set_direct)
270 gnutls_certificate_client_retrieve_function: DEPRECATED (use: gnutls_certificate_set_retrieve_function)
271 gnutls_certificate_server_retrieve_function: DEPRECATED (use: gnutls_certificate_set_retrieve_function)
272 gnutls_certificate_verify_peers: DEPRECATED (use: gnutls_certificate_verify_peers2)
273 gnutls_x509_crl_sign: DEPRECATED (use: gnutls_x509_crl_privkey_sign)
274 gnutls_x509_crl_sign2: DEPRECATED (use: gnutls_x509_crl_privkey_sign)
275 gnutls_x509_privkey_sign_data: DEPRECATED (use: gnutls_privkey_sign_data)
276 gnutls_x509_privkey_verify_data: DEPRECATED (use: gnutls_pubkey_verify_data)
277 gnutls_x509_crt_verify_data: DEPRECATED (use: gnutls_pubkey_verify_data)
278 gnutls_x509_crt_verify_hash: DEPRECATED (use: gnutls_pubkey_verify_hash)
279 gnutls_x509_crt_get_verify_algorithm: DEPRECATED (use: gnutls_pubkey_get_verify_algorithm)
280 gnutls_x509_privkey_sign_hash: DEPRECATED (use: gnutls_privkey_sign_hash)
281 gnutls_x509_crq_sign2: DEPRECATED (use: gnutls_x509_crq_privkey_sign)
282 gnutls_x509_crq_sign: DEPRECATED (use: gnutls_x509_crq_privkey_sign)
283 gnutls_openpgp_privkey_sign_hash: DEPRECATED (use: gnutls_privkey_sign_hash)
285 Symbols deprecated because they exported internal structures, making
286 modification of gnutls' inner workings hard:
287 gnutls_session_get_server_random: DEPRECATED
288 gnutls_session_get_client_random: DEPRECATED
289 gnutls_session_get_master_secret: DEPRECATED
290 gnutls_session_set_finished_function: DEPRECATED
291 gnutls_certificate_get_x509_cas: DEPRECATED
292 gnutls_certificate_get_x509_crls: DEPRECATED
293 gnutls_certificate_get_openpgp_keyring: DEPRECATED
295 Deprecated symbols because functionality will not be supported in the
296 future:
297 gnutls_session_set_finished_function: DEPRECATED
298 gnutls_transport_set_lowat: DEPRECATED
299 gnutls_psk_netconf_derive_key: DEPRECATED
301 In addition to the functions above, the following non-function
302 definitions have been added to the header files:
304 GNUTLS_CB_TLS_UNIQUE: New gnutls_channel_binding_t enum member.
305 GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE: New error code.
306 GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR: New error code.
307 GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL: New error code.
308 GNUTLS_E_PKCS11_ERROR: New error code.
309 GNUTLS_E_PKCS11_LOAD_ERROR: New error code.
310 GNUTLS_E_PARSING_ERROR: New error code.
311 GNUTLS_E_PKCS11_PIN_ERROR: New error code.
312 GNUTLS_E_PKCS11_SLOT_ERROR: New error code.
313 GNUTLS_E_LOCKING_ERROR: New error code.
314 GNUTLS_E_PKCS11_ATTRIBUTE_ERROR: New error code.
315 GNUTLS_E_PKCS11_DEVICE_ERROR: New error code.
316 GNUTLS_E_PKCS11_DATA_ERROR: New error code.
317 GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR: New error code.
318 GNUTLS_E_PKCS11_KEY_ERROR: New error code.
319 GNUTLS_E_PKCS11_PIN_EXPIRED: New error code.
320 GNUTLS_E_PKCS11_PIN_LOCKED: New error code.
321 GNUTLS_E_PKCS11_SESSION_ERROR: New error code.
322 GNUTLS_E_PKCS11_SIGNATURE_ERROR: New error code.
323 GNUTLS_E_PKCS11_TOKEN_ERROR: New error code.
324 GNUTLS_E_PKCS11_USER_ERROR: New error code.
325 GNUTLS_E_CRYPTO_INIT_FAILED: New error code.
327 Getting the Software
328 ====================
330 GnuTLS may be downloaded from one of the mirror sites or direct from
331 <ftp://ftp.gnu.org/gnu/gnutls/>.  The list of mirrors can be found at
332 <http://www.gnu.org/software/gnutls/download.html>.
334 Here are the BZIP2 compressed sources (6.0MB):
336   ftp://ftp.gnu.org/gnu/gnutls/gnutls-2.12.0.tar.bz2
337   http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.0.tar.bz2
339 Here are OpenPGP detached signatures signed using key 0xB565716F:
341   ftp://ftp.gnu.org/gnu/gnutls/gnutls-2.12.0.tar.bz2.sig
342   http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.0.tar.bz2.sig
344 Note, that we don't distribute gzip compressed tarballs.
346 In order to check that the version of GnuTLS which you are going to
347 install is an original and unmodified one, you should verify the OpenPGP
348 signature.  You can use the command
350      gpg --verify gnutls-2.12.0.tar.bz2.sig
352 This checks whether the signature file matches the source file.  You
353 should see a message indicating that the signature is good and made by
354 that signing key.  Make sure that you have the right key, either by
355 checking the fingerprint of that key with other sources or by checking
356 that the key has been signed by a trustworthy other key.  The signing
357 key can be identified with the following information:
359 pub   1280R/B565716F 2002-05-05 [expires: 2011-03-30]
360       Key fingerprint = 0424 D4EE 81A0 E3D1 19C6  F835 EDA2 1E94 B565 716F
361 uid                  Simon Josefsson <jas@extundo.com>
362 uid                  Simon Josefsson <simon@josefsson.org>
363 sub   1280R/4D5D40AE 2002-05-05 [expires: 2011-03-30]
365 The key is available from:
366   http://josefsson.org/key.txt
367   dns:b565716f.josefsson.org?TYPE=CERT
369 Alternatively, after successfully verifying the OpenPGP signature of
370 this announcement, you could verify that the files match the following
371 checksum values.  The values are for SHA-1 and SHA-224 respectively:
373 7c102253bb4e817f393b9979a62c647010312eac  gnutls-2.12.0.tar.bz2
375 57ee306f261ed331b8386baf854f737fbf24da7b3bcc32331d34176b  gnutls-2.12.0.tar.bz2
377 Documentation
378 =============
380 The manual is available online at:
382   http://www.gnu.org/software/gnutls/documentation.html
384 In particular the following formats are available:
386  HTML: http://www.gnu.org/software/gnutls/manual/html_node/index.html
387  PDF: http://www.gnu.org/software/gnutls/manual/gnutls.pdf
389 For developers there is a GnuTLS API reference manual formatted using
390 the GTK-DOC tools:
392   http://www.gnu.org/software/gnutls/reference/gnutls-gnutls.html
394 Community
395 =========
397 If you need help to use GnuTLS, or want to help others, you are invited
398 to join our help-gnutls mailing list, see:
400   http://lists.gnu.org/mailman/listinfo/help-gnutls
402 If you wish to participate in the development of GnuTLS, you are invited
403 to join our gnutls-dev mailing list, see:
405   http://lists.gnu.org/mailman/listinfo/gnutls-devel
407 Windows installer
408 =================
410 GnuTLS has been ported to the Windows operating system, and a binary
411 installer is available.  The installer contains DLLs for application
412 development, manuals, examples, and source code.  The installer uses
413 libgpg-error v1.7, libgcrypt v1.4.5, libtasn1 v2.6, and GnuTLS
414 v2.12.0.
416 For more information about GnuTLS for Windows:
417   http://josefsson.org/gnutls4win/
419 The Windows binary installer and PGP signature:
420   http://josefsson.org/gnutls4win/gnutls-2.12.0.exe (15MB)
421   http://josefsson.org/gnutls4win/gnutls-2.12.0.exe.sig
423 The checksum values for SHA-1 and SHA-224 are:
425 8a7965168c542edec3259469b6c0e87a9a2b4626  gnutls-2.12.0.exe
427 5f76c907eac768b714dc7187a17f87c0393439cf1ef44ab145aab6e3  gnutls-2.12.0.exe
429 A ZIP archive containing the Windows binaries:
430   http://josefsson.org/gnutls4win/gnutls-2.12.0.zip (5.3MB)
431   http://josefsson.org/gnutls4win/gnutls-2.12.0.zip.sig
433 A Debian mingw32 package is also available:
434   http://josefsson.org/gnutls4win/mingw32-gnutls_2.7.10-1_all.deb (4.8MB)
436 The checksum values for SHA-1 and SHA-224 are:
438 aca9f9f1adba09b952e095039595d4c5d9e67d46  mingw32-gnutls_2.12.0-1_all.deb
440 269020738a9f36135e3f231a94cdb2cabc0edd3658092d76b87c27dc  mingw32-gnutls_2.12.0-1_all.deb
442 Internationalization
443 ====================
445 The GnuTLS library messages have been translated into Czech, Dutch,
446 French, German, Italian, Malay, Polish, Simplified Chinese, Swedish,
447 and Vietnamese.  We welcome the addition of more translations.
449 Support
450 =======
452 Improving GnuTLS is costly, but you can help!  We are looking for
453 organizations that find GnuTLS useful and wish to contribute back.  You
454 can contribute by reporting bugs, improve the software, or donate money
455 or equipment.
457 Commercial support contracts for GnuTLS are available, and they help
458 finance continued maintenance.  Simon Josefsson Datakonsult AB, a
459 Stockholm based privately held company, is currently funding GnuTLS
460 maintenance.  We are always looking for interesting development
461 projects.  See http://josefsson.org/ for more details.
463 The GnuTLS service directory is available at:
465   http://www.gnu.org/software/gnutls/commercial.html
467 Happy Hacking,
468 Simon