Improve GTK-DOC coverage.
[gnutls.git] / doc / announcement-template.txt
blob3b9c7c8be994056082ae4ebc75ee0f70ea7d5312
1 We are proud to announce a new stable GnuTLS release: Version 2.8.0.
3 GnuTLS is a modern C library that implements the standard network
4 security protocol Transport Layer Security (TLS), for use by network
5 applications.  GnuTLS is developed for GNU/Linux, but works on many
6 Unix-like systems and comes with a binary installer for Windows.
8 The GnuTLS library is distributed under the terms of the GNU Lesser
9 General Public License version 2.1 (or later).  The "extra" GnuTLS
10 library (which contains TLS/IA support, LZO compression and Libgcrypt
11 FIPS-mode handler), the OpenSSL compatibility library, the self tests
12 and the command line tools are all distributed under the GNU General
13 Public License version 3.0 (or later).  The manual is distributed
14 under the GNU Free Documentation License version 1.3 (or later).
16 The project page of the library is available at:
17   http://www.gnu.org/software/gnutls/
19 What's New
20 ==========
22 Version 2.8.0 is the first stable release on the 2.8.x branch and is
23 the result of 7 months of work on the experimental 2.7.x branch.
25 ** lib: Linker version scripts reduces number of exported symbols.
26 The linker version script now lists all exported ABIs explicitly, to
27 avoid accidentally exporting unintended functions.  Compared to
28 before, most symbols beginning with _gnutls* are no longer exported.
29 These functions have never been intended for use by applications, and
30 there were no prototypes for these function in the public header
31 files.  Thus we believe it is possible to do this without incrementing
32 the library ABI version which normally has to be done when removing an
33 interface.
35 ** lib: Limit exported symbols on systems without LD linker scripts.
36 Before all symbols were exported.  Now we limit the exported symbols
37 to (for libgnutls and libgnutls-extra) gnutls* and (for libgnutls)
38 _gnutls*.  This is a superset of the actual supported ABI, but still
39 an improvement compared to before.  This is implemented using Libtool
40 -export-symbols-regex.  It is more portable than linker version
41 scripts.
43 ** libgnutls: Fix namespace issue with version symbols.
44 The symbols LIBGNUTLS_VERSION, LIBGNUTLS_VERSION_MAJOR,
45 LIBGNUTLS_VERSION_MINOR, LIBGNUTLS_VERSION_PATCH, and
46 LIBGNUTLS_VERSION_NUMBER were renamed to GNUTLS_VERSION_NUMBER,
47 GNUTLS_VERSION_MAJOR, GNUTLS_VERSION_MINOR, GNUTLS_VERSION_PATCH, and
48 GNUTLS_VERSION_NUMBER respectively.  The old symbols will continue to
49 work but are deprecated.
51 ** libgnutls: Fix namespace issue with version symbol for libgnutls-extra.
52 The symbol LIBGNUTLS_EXTRA_VERSION were renamed to
53 GNUTLS_EXTRA_VERSION.  The old symbol will continue to work but is
54 deprecated.
56 ** libgnutls: Add functions to verify a hash against a certificate.
57 gnutls_x509_crt_verify_hash: ADDED
58 gnutls_x509_crt_get_verify_algorithm: ADDED
60 ** gnutls-serv: Listen on all interfaces, including both IPv4 and IPv6.
62 ** i18n: The GnuTLS gettext domain is now 'libgnutls' instead of 'gnutls'.
63 It is currently only used by the core library.  This will enable a new
64 domain 'gnutls' for translations of the command line tools.
66 ** certtool: Query for multiple dnsName subjectAltName in interactive mode.
67 This applies both to generating certificates and certificate requests.
69 ** gnutls-cli: No longer accepts V1 CAs by default during X.509 chain verify.
70 Use --priority NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT to permit V1 CAs to
71 be used for chain verification.
73 ** gnutls-serv: No longer disable MAC padding by default.
74 Use --priority NORMAL:%COMPAT to disable MAC padding again.
76 ** gnutls-cli: Certificate information output format changed.
77 The tool now uses libgnutls' functions to print certificate
78 information.  This avoids code duplication.
80 ** libgnutls: New priority strings %VERIFY_ALLOW_SIGN_RSA_MD5
81 ** and %VERIFY_ALLOW_X509_V1_CA_CRT.
82 They can be used to override the default certificate chain validation
83 behaviour.
85 ** libgnutls: gnutls_x509_crt_print prints signature algorithm in oneline mode.
87 ** libgnutls: gnutls_openpgp_crt_print supports oneline mode.
89 ** libgnutls: gnutls_handshake when sending client hello during a
90 rehandshake, will not offer a version number larger than the current.
92 ** libgnutls: New interface to get key id for certificate requests.
93 gnutls_x509_crq_get_key_id: ADDED.
95 ** libgnutls: gnutls_x509_crq_print will now also print public key id.
97 ** certtool: --verify-chain now prints results of using library verification.
98 Earlier, certtool --verify-chain used its own validation algorithm
99 which wasn't guaranteed to give the same result as the libgnutls
100 internal validation algorithm.  Now this command print a new final
101 line with header 'Chain verification output:' that contains the result
102 from using the internal verification algorithm on the same chain.
104 ** libgnutls: Libgcrypt initialization changed.
105 If libgcrypt has not already been initialized, GnuTLS will now
106 initialize libgcrypt with disabled secure memory.  Initialize
107 libgcrypt explicitly in your application if you want to enable secure
108 memory.  Before GnuTLS initialized libgcrypt to use GnuTLS's memory
109 allocation functions, which doesn't use secure memory, so there is no
110 real change in behaviour.
112 ** libgnutls: Small byte reads via gnutls_record_recv() optimized.
114 ** gnutls-cli: Return non-zero exit code on error conditions.
116 ** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
118 ** certtool: allow setting arbitrary key purpose object identifiers.
120 ** libgnutls: Change detection of when to use a linker version script.
121 Use --enable-ld-version-script or --disable-ld-version-script to
122 override auto-detection logic.
124 ** Fix warnings and build GnuTLS with more warnings enabled.
126 ** New API to set X.509 credentials from PKCS#12 memory structure.
127 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
129 ** Old libgnutls.m4 and libgnutls-config scripts removed.
130 Please use pkg-config instead.
132 ** libgnutls: Added functions to handle CRL extensions.
133 gnutls_x509_crl_get_authority_key_id: ADDED
134 gnutls_x509_crl_get_number: ADDED
135 gnutls_x509_crl_get_extension_oid: ADDED
136 gnutls_x509_crl_get_extension_info: ADDED
137 gnutls_x509_crl_get_extension_data: ADDED
138 gnutls_x509_crl_set_authority_key_id: ADDED
139 gnutls_x509_crl_set_number: ADDED
141 ** libgnutls: Added functions to handle X.509 extensions in Certificate
142 Requests.
143 gnutls_x509_crq_get_key_rsa_raw: ADDED
144 gnutls_x509_crq_get_attribute_info: ADDED
145 gnutls_x509_crq_get_attribute_data: ADDED
146 gnutls_x509_crq_get_extension_info: ADDED
147 gnutls_x509_crq_get_extension_data: ADDED
148 gnutls_x509_crq_get_key_usage: ADDED
149 gnutls_x509_crq_get_basic_constraints: ADDED
150 gnutls_x509_crq_get_subject_alt_name: ADDED
151 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
152 gnutls_x509_crq_get_extension_by_oid: ADDED
153 gnutls_x509_crq_set_subject_alt_name: ADDED
154 gnutls_x509_crq_set_basic_constraints: ADDED
155 gnutls_x509_crq_set_key_usage: ADDED
156 gnutls_x509_crq_get_key_purpose_oid: ADDED
157 gnutls_x509_crq_set_key_purpose_oid: ADDED
158 gnutls_x509_crq_print: ADDED
159 gnutls_x509_crt_set_crq_extensions: ADDED
161 ** certtool: Print and set CRL and CRQ extensions.
163 ** minitasn1: Internal copy updated to libtasn1 v2.1.
164 GnuTLS should work fine with libtasn1 v1.x and that is still
165 supported.
167 ** examples: Now released into the public domain.
168 This makes the license of the example code compatible with more
169 licenses, including the (L)GPL.
171 ** The Texinfo and GTK-DOC manuals were improved.
173 ** Several self-tests were added and others improved.
175 API/ABI changes in GnuTLS 2.8
176 =============================
178 No offically supported interfaces have been modified or removed.  The
179 library should be completely backwards compatible on both the source
180 and binary level.
182 The shared library no longer exports some symbols that have never been
183 officially supported, i.e., not mentioned in any of the header files.
184 The symbols are:
186   _gnutls*
187   gnutls_asn1_tab
188   
189 Normally when symbols are removed, the shared library version has to
190 be incremented.  This leads to a significant cost for everyone using
191 the library.  Because none of the above symbols have ever been
192 intended for use by well-behaved applications, we decided that the it
193 would be better for those applications to pay the price rather than
194 incurring problems on the majority of applications.
196 If it turns out that applications have been using unofficial
197 interfaces, we will need to release a follow-on release on the v2.8
198 branch to exports additional interfaces.  However, initial testing
199 suggests that few if any applications have been using any of the
200 internal symbols.
202 Although not a new change compared to 2.6.x, we'd like to remind you
203 interfaces have been modified so that X.509 chain verification now
204 also checks activation/expiration times on certificates.  The affected
205 functions are:
207 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
208 gnutls_certificate_verify_peers: Likewise.
209 gnutls_certificate_verify_peers2: Likewise.
210 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
211 GNUTLS_CERT_EXPIRED: ADDED.
212 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
214 This change in behaviour was made during the GnuTLS 2.6.x cycle, and
215 we gave our rationale for it in earlier release notes.
217 The following symbols have been added to the library:
219 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
220 gnutls_x509_crl_get_authority_key_id: ADDED
221 gnutls_x509_crl_get_extension_data: ADDED
222 gnutls_x509_crl_get_extension_info: ADDED
223 gnutls_x509_crl_get_extension_oid: ADDED
224 gnutls_x509_crl_get_number: ADDED
225 gnutls_x509_crl_set_authority_key_id: ADDED
226 gnutls_x509_crl_set_number: ADDED
227 gnutls_x509_crq_get_attribute_data: ADDED
228 gnutls_x509_crq_get_attribute_info: ADDED
229 gnutls_x509_crq_get_basic_constraints: ADDED
230 gnutls_x509_crq_get_extension_by_oid: ADDED
231 gnutls_x509_crq_get_extension_data: ADDED
232 gnutls_x509_crq_get_extension_info: ADDED
233 gnutls_x509_crq_get_key_id: ADDED.
234 gnutls_x509_crq_get_key_purpose_oid: ADDED
235 gnutls_x509_crq_get_key_rsa_raw: ADDED
236 gnutls_x509_crq_get_key_usage: ADDED
237 gnutls_x509_crq_get_subject_alt_name: ADDED
238 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
239 gnutls_x509_crq_print: ADDED
240 gnutls_x509_crq_set_basic_constraints: ADDED
241 gnutls_x509_crq_set_key_purpose_oid: ADDED
242 gnutls_x509_crq_set_key_usage: ADDED
243 gnutls_x509_crq_set_subject_alt_name: ADDED
244 gnutls_x509_crt_get_verify_algorithm: ADDED
245 gnutls_x509_crt_set_crq_extensions: ADDED
246 gnutls_x509_crt_verify_hash: ADDED
248 The following interfaces have been added to the header files:
250 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_VERSION.
251 GNUTLS_VERSION_MAJOR: ADDED, replaces LIBGNUTLS_VERSION_MAJOR.
252 GNUTLS_VERSION_MINOR: ADDED, replaces LIBGNUTLS_VERSION_MINOR.
253 GNUTLS_VERSION_PATCH: ADDED, replaces LIBGNUTLS_VERSION_PATCH.
254 GNUTLS_VERSION_NUMBER: ADDED, replaces LIBGNUTLS_VERSION_NUMBER.
255 GNUTLS_EXTRA_VERSION: ADDED, replaces LIBGNUTLS_EXTRA_VERSION.
257 The following interfaces have been deprecated:
259 LIBGNUTLS_VERSION: DEPRECATED.
260 LIBGNUTLS_VERSION_MAJOR: DEPRECATED.
261 LIBGNUTLS_VERSION_MINOR: DEPRECATED.
262 LIBGNUTLS_VERSION_PATCH: DEPRECATED.
263 LIBGNUTLS_VERSION_NUMBER: DEPRECATED.
264 LIBGNUTLS_EXTRA_VERSION: DEPRECATED.
266 Getting the Software
267 ====================
269 GnuTLS may be downloaded from one of the mirror sites or direct from
270 <ftp://ftp.gnu.org/gnu/gnutls/>.  The list of mirrors can be found at
271 <http://www.gnu.org/software/gnutls/download.html>.
273 Here are the BZIP2 compressed sources (6.0MB):
275   ftp://ftp.gnu.org/gnu/gnutls/gnutls-2.8.0.tar.bz2
276   http://ftp.gnu.org/gnu/gnutls/gnutls-2.8.0.tar.bz2
278 Here are OpenPGP detached signatures signed using key 0xB565716F:
280   ftp://ftp.gnu.org/gnu/gnutls/gnutls-2.8.0.tar.bz2.sig
281   http://ftp.gnu.org/gnu/gnutls/gnutls-2.8.0.tar.bz2.sig
283 Note, that we don't distribute gzip compressed tarballs.
285 In order to check that the version of GnuTLS which you are going to
286 install is an original and unmodified one, you should verify the OpenPGP
287 signature.  You can use the command
289      gpg --verify gnutls-2.8.0.tar.bz2.sig
291 This checks whether the signature file matches the source file.  You
292 should see a message indicating that the signature is good and made by
293 that signing key.  Make sure that you have the right key, either by
294 checking the fingerprint of that key with other sources or by checking
295 that the key has been signed by a trustworthy other key.  The signing
296 key can be identified with the following information:
298 pub   1280R/B565716F 2002-05-05 [expires: 2010-04-21]
299       Key fingerprint = 0424 D4EE 81A0 E3D1 19C6  F835 EDA2 1E94 B565 716F
300 uid                  Simon Josefsson <simon@josefsson.org>
301 uid                  Simon Josefsson <jas@extundo.com>
302 sub   1280R/4D5D40AE 2002-05-05 [expires: 2010-04-21]
304 The key is available from:
305   http://josefsson.org/key.txt
306   dns:b565716f.josefsson.org?TYPE=CERT
308 Alternatively, after successfully verifying the OpenPGP signature of
309 this announcement, you could verify that the files match the following
310 checksum values.  The values are for SHA-1 and SHA-224 respectively:
312 d1693e611aa7270f14bc500bd56ef529ffcb1703  gnutls-2.8.0.tar.bz2
314 5e5bc180293b0854b7e8c27a5eb55f172579b346fba61b2d4b0b0c61  gnutls-2.8.0.tar.bz2
316 Documentation
317 =============
319 The manual is available online at:
321   http://www.gnu.org/software/gnutls/documentation.html
323 In particular the following formats are available:
325  HTML: http://www.gnu.org/software/gnutls/manual/html_node/index.html
326  PDF: http://www.gnu.org/software/gnutls/manual/gnutls.pdf
328 For developers there is a GnuTLS API reference manual formatted using
329 the GTK-DOC tools:
331   http://www.gnu.org/software/gnutls/reference/gnutls-gnutls.html
333 Community
334 =========
336 If you need help to use GnuTLS, or want to help others, you are invited
337 to join our help-gnutls mailing list, see:
339   http://lists.gnu.org/mailman/listinfo/help-gnutls
341 If you wish to participate in the development of GnuTLS, you are invited
342 to join our gnutls-dev mailing list, see:
344   http://lists.gnu.org/mailman/listinfo/gnutls-devel
346 Windows installer
347 =================
349 GnuTLS has been ported to the Windows operating system, and a binary
350 installer is available.  The installer contains DLLs for application
351 development, manuals, examples, and source code.  The installer uses
352 libgpg-error v1.7, libgcrypt v1.4.4, libtasn1 v2.2, and GnuTLS v2.8.0.
354 For more information about GnuTLS for Windows:
355   http://josefsson.org/gnutls4win/
357 The Windows binary installer and PGP signature:
358   http://josefsson.org/gnutls4win/gnutls-2.8.0.exe (15MB)
359   http://josefsson.org/gnutls4win/gnutls-2.8.0.exe.sig
361 The checksum values for SHA-1 and SHA-224 are:
363 8a86a846cbdc16b6c21442c706854a5c02416336  gnutls-2.8.0.exe
365 555afa0c1524d8ad05a12384e1bd1b09da720b03058f0089dc812cfc  gnutls-2.8.0.exe
367 A ZIP archive containing the Windows binaries:
368   http://josefsson.org/gnutls4win/gnutls-2.8.0.zip (5.3MB)
369   http://josefsson.org/gnutls4win/gnutls-2.8.0.zip.sig
371 A Debian mingw32 package is also available:
372   http://josefsson.org/gnutls4win/mingw32-gnutls_2.7.10-1_all.deb (4.8MB)
374 The checksum values for SHA-1 and SHA-224 are:
376 b141f97c196d408bf12b8a58ede6bda8fb291be6  mingw32-gnutls_2.8.0-1_all.deb
378 541e2fca8248460b419e2224a138b292020de1724c86c77b9478da93  mingw32-gnutls_2.8.0-1_all.deb
380 Internationalization
381 ====================
383 The GnuTLS library messages have been translated into Czech, Dutch,
384 French, German, Malay, Polish, Swedish, and Vietnamese.  We welcome the
385 addition of more translations.
387 Support
388 =======
390 Improving GnuTLS is costly, but you can help!  We are looking for
391 organizations that find GnuTLS useful and wish to contribute back.  You
392 can contribute by reporting bugs, improve the software, or donate money
393 or equipment.
395 Commercial support contracts for GnuTLS are available, and they help
396 finance continued maintenance.  Simon Josefsson Datakonsult AB, a
397 Stockholm based privately held company, is currently funding GnuTLS
398 maintenance.  We are always looking for interesting development
399 projects.  See http://josefsson.org/ for more details.
401 The GnuTLS service directory is available at:
403   http://www.gnu.org/software/gnutls/commercial.html
405 Happy Hacking,
406 Simon