Exported gnutls_cpuid() and gnutls_have_cpuid().
[gnutls:gnutls.git] / NEWS
1 GnuTLS NEWS -- History of user-visible changes.                -*- outline -*-
2 Copyright (C) 2000-2011 Free Software Foundation, Inc.
3 See the end for copying conditions.
4
5 * Version 3.0.9 (unreleased)
6
7 ** doc: man pages for API functions generation was fixed and are
8 now added again in the distribution.
9
10 ** API and ABI modifications:
11 No changes since last version.
12
13
14 * Version 3.0.8 (released 2011-11-12)
15
16 ** certtool: Certtool -e returns error code on verification
17 failure.
18
19 ** certtool: Verifies parameters of generated keys.
20
21 ** libgnutls: Corrected ECC key generation (introduced in 3.0.6)
22
23 ** libgnutls: Provide less timing information when decoding
24 TLS/DTLS record packets.
25
26 ** doc: man pages for API functions were removed.
27 The reason was that the code that auto-generated the man pages missed
28 many APIs and we couldn't fix it (volunteers welcome).  See the info
29 manual or the GTK-DOC manual instead.
30
31 ** API and ABI modifications:
32 gnutls_x509_privkey_verify_params: Added
33
34
35 * Version 3.0.7 (released 2011-11-08)
36
37 ** libgnutls: Corrected fix in gnutls_session_get_data()
38 to report the actual session size when the provided buffer
39 is not enough.
40
41 ** libgnutls: Fixed ciphersuite GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256,
42 which was using a wrong MAC algorithm. Reported by Fabrice Gautier.
43
44 ** API and ABI modifications:
45 No changes since last version.
46
47
48 * Version 3.0.6 (released 2011-11-07)
49
50 ** gnutls-guile: Compilation fixes.
51
52 ** libgnutls: Fixed possible buffer overflow in 
53 gnutls_session_get_data(). Reported and fix by Alban Crequy.
54
55 ** libgnutls: Bug fixes in the ciphersuites with NULL cipher.
56 Reported by Fabrice Gautier.
57
58 ** libgnutls: Bug fixes in ECC code for 64-bit MIPS systems. 
59 Thanks to Joseph Graham for providing access to such a system.
60
61 ** libgnutls: Correctly report ECC private key parsing errors.
62 Reported by Fabrice Gautier.
63
64 ** libgnutls: In ECDHE verify that the received point lies on
65 the selected curve. The ECDHE ciphersuites now take precendence
66 to plain DHE.
67
68 ** API and ABI modifications:
69 No changes since last version.
70
71
72 * Version 3.0.5 (released 2011-10-27)
73
74 ** libgnutls-extra: is no more
75
76 ** libgnutls: Corrections in order to compile with mingw32.
77
78 ** libgnutls: Corrections in VIA padlock code for VIA C5 processor
79 and new detection of PHE with support for partial hashing.
80
81 ** libgnutls: Corrected bug in gnutls_x509_data2hex. Report and fix 
82 by Vincent Untz.
83
84 ** minitasn1: Upgraded to libtasn1 version 2.10.
85
86 ** API and ABI modifications:
87 No changes since last version.
88
89
90 * Version 3.0.4 (released 2011-10-15)
91
92 ** libgnutls-extra: gnutls_register_md5_handler() was
93 removed.
94
95 ** gnutls-cli-debug: Added more tests including AES-GCM,
96 SHA256 and elliptic curves.
97
98 ** gnutls-cli: Added --benchmark-soft-ciphers to benchmark
99 the software version of the ciphers instead of hw accelerated 
100 (where available)
101
102 ** libgnutls: Public key ID calculation is consistent among
103 all structures. It uses a SHA-1 hash of the subjectPublicKeyInfo.
104
105 ** libgnutls: gnutls_privkey_t allows setting external callback
106 to perform signing or decryption. Can be set using
107 gnutls_privkey_import_ext()
108
109 ** libgnutls: A certificate credentials structure can be
110 used with a gnutls_privkey_t and a gnutls_pcert_st
111 structure using gnutls_certificate_set_key().
112
113 ** libgnutls: Fixes to enable external signing callback to
114 operate with TLS 1.2. 
115
116 ** libgnutls: Fixed crash when printing ECDSA certificate key 
117 ID. Reported by Erik Jensen.
118
119 ** libgnutls: Corrected VIA padlock code for C3. In C3 benchmarks 
120 show a 50x increase in AES speed and a 14x increase in VIA nano. Added 
121 support for hashes and HMACs.
122
123 ** libgnutls: Compilation fixed when p11-kit is not detected.
124
125 ** libgnutls: Fixed the deflate compression code.
126
127 ** libgnutls: Added gnutls_x509_crt_get_authority_info_access.
128 Used to get the PKIX Authority Information Access (AIA) field.
129
130 ** libgnutls: gnutls_x509_crt_print supports printing AIA fields.
131
132 ** libgnutls: Added ability to gnutls_privkey_t to operate with
133 signing callback function.
134
135 ** API and ABI modifications:
136 gnutls_x509_crt_get_authority_info_access (x509.h): Added function.
137 gnutls_privkey_import_ext: Added function.
138 gnutls_certificate_set_key: Added function.
139 gnutls_info_access_what_t (x509.h): Added enum.
140 GNUTLS_OID_AIA (x509.h): Added symbol.
141 GNUTLS_OID_AD_OCSP (x509.h): Added symbol.
142 GNUTLS_OID_AD_CAISSUERS (x509.h): Added symbol.
143
144 * Version 3.0.3 (released 2011-09-18)
145
146 ** libgnutls: Added gnutls_record_get_discarded() to return the
147 number of discarded records in a DTLS session.
148
149 ** libgnutls: All functions related to RSA-EXPORT were deprecated.
150 Support for RSA-EXPORT ciphersuites will be ceased in future versions.
151
152 ** libgnutls: Memory leak fixes in credentials private key 
153 deinitialization. Reported by Dan Winship.
154
155 ** libgnutls: Memory leak fixes in ECC ciphersuites.
156
157 ** libgnutls: Do not send an empty extension structure in server 
158 hello. This affected old implementations that do not support extensions. 
159 Reported by J. Cameijo Cerdeira.
160
161 ** libgnutls: Allow CA importing of 0 certificates to succeed.
162 Reported by Jonathan Nieder <jrnieder@gmail.com> in
163 <http://bugs.debian.org/640639>.
164
165 ** libgnutls: Added support for VIA padlock AES optimizations.
166 (disabled by default)
167
168 ** libgnutls: Added support for elliptic curves in
169 PKCS #11.
170
171 ** libgnutls: Added gnutls_pkcs11_privkey_generate()
172 to allow generating a key in a token.
173
174 ** p11tool: Added generate-rsa, generate-dsa and 
175 generate-ecc options to allow generating private
176 keys in the token.
177
178 ** libgnutls: gnutls_transport_set_lowat dummy macro was 
179 removed.
180
181 ** API and ABI modifications:
182 gnutls_pkcs11_privkey_generate: Added
183 gnutls_pubkey_import_ecc_raw: Added
184 gnutls_pubkey_import_ecc_x962: Added
185 gnutls_pubkey_get_pk_ecc_x962: Added
186 gnutls_record_get_discarded: Added
187
188
189 * Version 3.0.2 (released 2011-09-01)
190
191 ** libgnutls: OpenPGP certificate type is not enabled
192 by default.
193
194 ** libgnutls: Added %NO_EXTENSIONS priority string.
195
196 ** libgnutls: Corrected issue in gnutls_record_recv()
197 triggered on encryption or compression error.
198
199 ** libgnutls: Compatibility fixes in CPU ID detection 
200 for i386 and old GCC.
201
202 ** gnutls-cli: Benchmark applications were incorporated
203 with it.
204
205 ** libgnutls: Corrected parsing of XMPP subject
206 alternative names.
207
208 ** libgnutls: Allow for out-of-order ChangeCipherSpec
209 message in DTLS.
210
211 ** libgnutls: gnutls_certificate_set_x509_key() and
212 gnutls_certificate_set_openpgp_key() operate as in 2.10.x
213 and allow the release of the private key during the
214 lifetime of the certificate structure.
215
216 ** API and ABI modifications:
217 GNUTLS_PRIVKEY_IMPORT_COPY: new gnutls_privkey_import() flag
218
219
220 * Version 3.0.1 (released 2011-08-20)
221
222 ** libgnutls: gnutls_certificate_set_x509_key_file() and 
223 friends support server name indication. If multiple 
224 certificates are set using these functions the proper one 
225 will be selected during a handshake. 
226
227 ** libgnutls: Added AES-256-GCM which was left out from
228 the previous release. Reported by Benjamin Hof.
229
230 ** libgnutls: When asking for a PKCS# 11 PIN multiple 
231 times, the flags in the callback were not being updated 
232 to reflect for PIN low count or final try.
233
234 ** libgnutls: Do not allow second instances of PKCS #11
235 modules.
236
237 ** libgnutls: fixed alignment issue in AES-NI code.
238
239 ** libgnutls: The config file at gnutls_pkcs11_init()
240 is being read if provided.
241
242 ** libgnutls: Ensure that a certificate list specified
243 using gnutls_certificate_set_x509_key() and friends, is 
244 sorted according to TLS specification (from subject to issuer).
245
246 ** libgnutls: Added GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED flag for
247 gnutls_x509_crt_list_import. It checks whether the list to be 
248 imported is properly sorted.
249
250 ** crywrap: Added to the distribution. It is an application
251 that proxies TLS session to a port using a plaintext service.
252
253 ** doc: Many GTK-DOC improvements.
254
255 ** i18n: Translations were updated.
256
257 ** API and ABI modifications:
258 GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED: New element in gnutls_certificate_import_flags
259 GNUTLS_PKCS11_PIN_WRONG: New flag for PIN callback
260
261
262 * Version 3.0.0 (released 2011-07-29)
263
264 ** libgnutls: writev_emu: stop on the first incomplete write. Patch by
265 Sjoerd Simons.
266
267 ** libgnutls: Fix zlib handling in gnutls.pc. Patch by Andreas
268 Metzler.
269
270 ** certtool: bug fixes in certificate request generation. Patch
271 by Petr Písař.
272
273 ** API and ABI modifications:
274 gnutls_pcert_list_import_x509_raw: ADDED
275
276
277 * Version 2.99.4 (released 2011-07-23)
278
279 ** doc: documentation updates.
280
281 ** libgnutls: gnutls_rsa_params_t is now identical to gnutls_x509_privkey_t
282 to avoid thread-safety issues. Reported by Sam Varshavchik.
283
284 ** libgnutls: Added compatibility mode with /etc/gnutls/pkcs11.conf
285
286 ** libgnutls: license upgraded to LGPLv3
287
288 ** libgnutls: gnutls_srp_verifier() returns data allocated with gnutls_malloc()
289 for consistency.
290
291 ** API and ABI modifications:
292 No changes since last version.
293
294
295 * Version 2.99.3 (released 2011-06-18)
296
297 ** libgnutls: Added new PKCS #11 flags to force an object being private or
298 not. (GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE and GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE)
299
300 ** libgnutls: Added SUITEB128 and SUITEB192 priority
301 strings to enable the NSA SuiteB cryptography ciphersuites.
302
303 ** libgnutls: Added gnutls_pubkey_verify_data2() that will
304 verify data provided the signature algorithm.
305
306 ** libgnutls: Simplified the handling of handshake messages to 
307 be hashed. Instead of hashing during the handshake process we now 
308 keep the data until handshake is over and hash them on request. 
309 This uses more memory but eliminates issues with TLS 1.2 and 
310 simplifies code.
311
312 ** libgnutls: Added AES-GCM optimizations using the PCLMULQDQ
313 instruction. Uses Andy Polyakov's assembly code.
314
315 ** libgnutls: Added gnutls_x509_trust_list_add_named_crt() and
316 gnutls_x509_trust_list_verify_named_crt() that allow having a
317 list of certificates in the trusted list that will be associated
318 with a name (e.g. server name) and will not be used as CAs.
319
320 ** libgnutls: PKCS #11 back-end rewritten to use p11-kit
321 http://p11-glue.freedesktop.org/p11-kit.html. Rewrite by
322 Stef Walter.
323
324 ** libgnutls: Added ECDHE-PSK ciphersuites for TLS (RFC 5489).
325
326 ** API and ABI modifications:
327 gnutls_pubkey_verify_data2: ADDED
328 gnutls_ecc_curve_get: ADDED
329 gnutls_x509_trust_list_add_named_crt: ADDED
330 gnutls_x509_trust_list_verify_named_crt: ADDED
331 gnutls_x509_privkey_verify_data: REMOVED
332 gnutls_crypto_bigint_register: REMOVED
333 gnutls_crypto_cipher_register: REMOVED
334 gnutls_crypto_digest_register: REMOVED
335 gnutls_crypto_mac_register: REMOVED
336 gnutls_crypto_pk_register: REMOVED
337 gnutls_crypto_rnd_register: REMOVED
338 gnutls_crypto_single_cipher_register: REMOVED
339 gnutls_crypto_single_digest_register: REMOVED
340 gnutls_crypto_single_mac_register: REMOVED
341 GNUTLS_KX_ECDHE_PSK: New key exchange method
342 GNUTLS_VERIFY_DISABLE_CRL_CHECKS: New certificate verification flag.
343 GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE: New PKCS#11 object flag.
344 GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE: New PKCS#11 object flag.
345
346
347 * Version 2.99.2 (released 2011-05-26)
348
349 ** libgnutls: Added Elliptic curve support. This is not
350 enabled by default. Requires priority strings:
351 +CURVE-ALL: to add all supported curves
352 +ECDHE-RSA: to add ephemeral ECDHE with an RSA-signed certificate
353 +ECDHE-ECDSA: to add ephemeral ECDHE with an ECDSA-signed certificate
354 +ANON-ECDHE: to add anonymous ECDH
355
356 ** libgnutls: PKCS #11 URLs conform to the latest draft
357 being http://tools.ietf.org/html/draft-pechanec-pkcs11uri-04.
358
359 ** certtool: Can now load private keys and public keys from PKCS #11 tokens
360 via URLs.
361
362 ** libgnutls: Added gnutls_global_set_audit_log_function() that allows
363 to get important auditing information including the corresponding session.
364 That might be useful to block DoS or other attacker from specific IPs.
365
366 ** libgnutls: gnutls_pkcs11_privkey_import_url() will now correctly read
367 the public key algorithm of the key.
368
369 ** libgnutls: Added gnutls_certificate_get_issuer() and
370 gnutls_x509_trust_list_get_issuer() to compensate for the
371 missing gnutls_certificate_get_x509_cas().
372
373 ** libgnutls: Added gnutls_x509_crq_verify() to allow
374 verification of the self signature in a certificate request.
375 This allows verifying whether the owner of the private key
376 is the generator of the request.
377
378 ** libgnutls: gnutls_x509_crt_set_crq() implicitly verifies
379 the self signature of the request.
380
381 ** API and ABI modifications:
382 gnutls_certificate_get_issuer: ADDED
383 gnutls_x509_trust_list_get_issuer: ADDED
384 gnutls_x509_crq_verify: ADDED
385 gnutls_global_set_audit_log_function: ADDED
386 gnutls_ecc_curve_get_name: ADDED
387 gnutls_ecc_curve_get_size: ADDED
388 gnutls_x509_privkey_import_ecc_raw: ADDED
389 gnutls_x509_privkey_export_ecc_raw: ADDED
390 gnutls_global_set_time_function: ADDED
391
392 GNUTLS_E_ECC_NO_SUPPORTED_CURVES: New error code
393 GNUTLS_E_ECC_UNSUPPORTED_CURVE: New error code
394 GNUTLS_KX_ECDHE_RSA: New key exchange method
395 GNUTLS_KX_ECDHE_ECDSA: New key exchange method
396 GNUTLS_KX_ANON_ECDH: New key exchange method
397 GNUTLS_PK_ECC: New public key algorithm
398 GNUTLS_SIGN_ECDSA_SHA1: New signature algorithm
399 GNUTLS_SIGN_ECDSA_SHA256: New signature algorithm
400 GNUTLS_SIGN_ECDSA_SHA384: New signature algorithm
401 GNUTLS_SIGN_ECDSA_SHA512: New signature algorithm 
402 GNUTLS_SIGN_ECDSA_SHA224: New signature algorithm
403 GNUTLS_ECC_CURVE_INVALID: New curve definition
404 GNUTLS_ECC_CURVE_SECP224R1: New curve definition
405 GNUTLS_ECC_CURVE_SECP256R1: New curve definition
406 GNUTLS_ECC_CURVE_SECP384R1: New curve definition
407 GNUTLS_ECC_CURVE_SECP521R1: New curve definition
408
409
410 * Version 2.99.1 (released 2011-04-23)
411
412 ** libgnutls: LZO support was removed.
413
414 ** libgnutls: Corrections in SSLv2 client hello parsing.
415
416 ** libgnutls: Added support for AES-NI if detected. Uses
417 Andy Polyakov's AES-NI code.
418
419 ** libgnutls: Restored HMAC-MD5 for compatibility. Although considered 
420 weak, several sites require it for connection. It is enabled for
421 "NORMAL" and "PERFORMANCE" priority strings.
422
423 ** libgnutls: depend on libdl.
424
425 ** libgnutls-extra: Dropped support of LZO compression via liblzo.
426
427 ** libgnutls: gnutls_transport_set_global_errno() was removed. This
428 function required GnuTLS to access system specific data, for no reason.
429 Use gnutls_transport_set_errno(), or your system's errno fascility
430 instead.
431
432 ** libgnutls: Added gnutls_certificate_set_retrieve_function2()
433 to set a callback to retrieve a certificate. The certificate is
434 received in a format that requires no processing from gnutls thus
435 it is suitable when performance is required.
436
437 ** API and ABI modifications:
438 gnutls_transport_set_global_errno: REMOVED
439 gnutls_certificate_set_retrieve_function2: ADDED
440
441 * Version 2.99.0 (released 2011-04-09)
442
443 ** libgnutls: Added Datagram TLS support.
444
445 ** libgnutls: Uses a single configure file and a single
446 gnulib library to save space.
447
448 ** libgnutls: Several bug fixes.
449
450 ** libgnutls: gnutls_transport_set_lowat() is no more.
451
452 ** libgnutls-openssl: modified to use modern gnutls' functions.
453 This introduces an ABI incompatibility with previous versions.
454
455 ** libgnutls: Corrected signature generation and verification
456 in the Certificate Verify message when in TLS 1.2. Reported
457 by Todd A. Ouska.
458
459 ** libgnutlsxx: The C++ interface returns exception on
460 every error and not only on fatal ones. This allows easier
461 handling of errors.
462
463 ** libgnutls: Corrected issue in DHE-PSK ciphersuites that ignored    
464 the PSK callback.
465
466 ** libgnutls: SRP and PSK are no longer set on the default priorities. 
467 They have to be explicitly set.
468
469 ** libgnutls: During handshake message verification using DSS
470 use the hash algorithm required by it.
471
472 ** libgnutls: gnutls_recv() return GNUTLS_E_PREMATURE_TERMINATION
473 on unexpected EOF, instead of GNUTLS_E_UNEXPECTED_PACKET_LENGTH.
474
475 ** libgnutls: Added GCM mode (interoperates with tls.secg.org)
476
477 ** libgnutls-extra: Inner application extension was removed.
478 It was never standardized nor published as an RFC.
479
480 ** libgnutls: Added new certificate verification functions, that
481 can provide more details and are more efficient. Check 
482 gnutls_x509_trust_list_*.
483
484 ** certtool: Uses the new certificate verification functions for
485 --verify-chain.
486
487 ** certtool: Added new certificate verification functionality
488 using the --verify option. Combined with --load-ca-certificate
489 it can verify a certificate chain against a list of certificates.
490
491 ** Several files unnecessarily included <gcrypt.h>; this has been fixed.
492
493 ** API and ABI modifications:
494 gnutls_dtls_set_timeouts: ADDED
495 gnutls_dtls_get_mtu: ADDED
496 gnutls_dtls_get_data_mtu: ADDED
497 gnutls_dtls_set_mtu: ADDED
498 gnutls_dtls_cookie_send: ADDED
499 gnutls_dtls_cookie_verify: ADDED
500 gnutls_dtls_prestate_set: ADDED
501 gnutls_x509_trust_list_verify_crt: ADDED
502 gnutls_x509_trust_list_add_crls: ADDED
503 gnutls_x509_trust_list_add_cas: ADDED
504 gnutls_x509_trust_list_init: ADDED
505 gnutls_x509_trust_list_deinit: ADDED
506 gnutls_cipher_add_auth: ADDED
507 gnutls_cipher_tag: ADDED
508 gnutls_psk_netconf_derive_key: REMOVED
509 gnutls_certificate_verify_peers: REMOVED
510 gnutls_session_set_finished_function: REMOVED
511 gnutls_ext_register: REMOVED
512 gnutls_certificate_get_x509_crls: REMOVED
513 gnutls_certificate_get_x509_cas: REMOVED
514 gnutls_certificate_get_openpgp_keyring: REMOVED
515 gnutls_session_get_server_random: REMOVED
516 gnutls_session_get_client_random: REMOVED
517 gnutls_session_get_master_secret: REMOVED
518 gnutls_ia_allocate_client_credentials: REMOVED
519 gnutls_ia_allocate_server_credentials: REMOVED
520 gnutls_ia_enable: REMOVED
521 gnutls_ia_endphase_send: REMOVED
522 gnutls_ia_extract_inner_secret: REMOVED
523 gnutls_ia_free_client_credentials: REMOVED
524 gnutls_ia_free_server_credentials: REMOVED
525 gnutls_ia_generate_challenge: REMOVED
526 gnutls_ia_get_client_avp_ptr: REMOVED
527 gnutls_ia_get_server_avp_ptr: REMOVED
528 gnutls_ia_handshake: REMOVED
529 gnutls_ia_handshake_p: REMOVED
530 gnutls_ia_permute_inner_secret: REMOVED
531 gnutls_ia_recv: REMOVED
532 gnutls_ia_send: REMOVED
533 gnutls_ia_set_client_avp_function: REMOVED
534 gnutls_ia_set_client_avp_ptr: REMOVED
535 gnutls_ia_set_server_avp_function: REMOVED
536 gnutls_ia_set_server_avp_ptr: REMOVED
537 gnutls_ia_verify_endphase: REMOVED
538
539
540 * Version 2.12.2 (released 2011-04-08)
541
542 ** libgnutls: Several updates and fixes for win32. Patches by LRN.
543
544 ** libgnutls: Several bug and memory leak fixes.
545
546 ** srptool: Accepts the -d option to enable debugging.
547
548 ** libgnutls: Corrected bug in gnutls_srp_verifier() that prevented
549 the allocation of a verifier. Reported by Andrew Wiseman.
550
551 ** API and ABI modifications:
552 No changes since last version.
553
554
555 * Version 2.12.1 (released 2011-04-02)
556
557 ** certtool: Generated certificate request with stricter permissions.
558 Reported by Luca Capello.
559
560 ** libgnutls: Bug fixes in opencdk code. Reported by Vitaly Kruglikov.
561
562 ** libgnutls: Corrected windows system_errno() function prototype.
563
564 ** libgnutls: C++ compatibility fix for compat.h. Reported by Mark Brand.
565
566 ** libgnutls: Fix size of gnutls_openpgp_keyid_t by using the
567 GNUTLS_OPENPGP_KEYID_SIZE definition. Reported by Andreas Metzler.
568
569 ** API and ABI modifications:
570 No changes since last version.
571
572
573
574
575 * Version 2.12.0 (released 2011-03-24)
576
577 ** certtool: Warns on generation of DSA keys of over 1024 bits, about
578 the incompatibility with TLS other than 1.2.
579
580 ** libgnutls: Modified signature algorithm selection in client
581 certificate request, to avoid failures in DSA certificates.
582
583 ** libgnutls: Instead of failing with internal error, return 
584 GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL if an incompatible DSA
585 key with the negotiated protocol is encountered.
586
587 ** libgnutls: Bug fixes in the RSA ciphersuite behavior with openpgp keys.
588
589 ** libgnutls: Force state update when fork is detected in the nettle
590 rng.
591
592 ** libgnutls: modified gnutls_pubkey_import_openpgp() to use the preferred
593 subkey instead of setting explicitly one.
594
595 ** libgnutls: Corrected default behavior in record version of Client Hellos.
596
597 ** libgnutls-openssl: modified to use modern gnutls' functions.
598 This introduces an ABI incompatibility with previous versions.
599
600 ** API and ABI modifications:
601 gnutls_pubkey_import_openpgp: MODIFIED
602
603
604 * Version 2.11.7
605
606 ** libgnutls: The deprecated  gnutls_x509_privkey_sign_hash() was
607 replaced by gnutls_privkey_sign_hash2().
608
609 ** libgnutls: gnutls_pubkey_verify_data, gnutls_pubkey_verify_hash,
610 gnutls_x509_privkey_verify_data, gnutls_x509_crt_verify_data, 
611 gnutls_x509_crt_verify_hash return the negative error code 
612 GNUTLS_E_PK_SIG_VERIFY_FAILED if verification fails to simplify error 
613 checking.
614
615 ** libgnutls: Added helper functions for signature verification:
616 gnutls_pubkey_verify_data() and gnutls_pubkey_import_privkey().
617
618 ** libgnutls: Modified gnutls_privkey_sign_data().
619
620 ** gnutls_x509_crl_privkey_sign2(), gnutls_x509_crq_sign2()
621 gnutls_x509_privkey_sign_hash(), gnutls_x509_privkey_sign_data(),
622 gnutls_x509_crt_verify_hash(), gnutls_x509_crt_verify_data(), were
623 deprecated for gnutls_x509_crl_privkey_sign(),
624 gnutls_x509_crq_privkey_sign(), gnutls_privkey_sign_hash(),
625 gnutls_privkey_sign_data(), gnutls_pubkey_verify_hash()
626 gnutls_pubkey_verify_data() respectively.
627
628 ** libgnutls: gnutls_*_export_raw() functions now add leading zero in
629 integers.
630
631 ** libgnutls: Added convenience functions gnutls_x509_crl_list_import2()
632 and gnutls_x509_crt_list_import2().
633
634 ** crypto.h: Fix use with C++.
635 Reported by "Brendan Doherty" <brendand@gentrack.com>.
636
637 ** API and ABI modifications:
638 gnutls_x509_crl_list_import: ADDED
639 gnutls_x509_crl_list_import2: ADDED
640 gnutls_x509_crt_list_import2: ADDED
641 gnutls_x509_crl_get_raw_issuer_dn: ADDED
642 gnutls_pubkey_import_privkey: ADDED
643 gnutls_pubkey_verify_data: ADDED
644 gnutls_privkey_sign_hash: MODIFIED (was added in 2.11.0)
645 gnutls_privkey_sign_data: MODIFIED (was added in 2.11.0)
646 gnutls_x509_crq_sign2: DEPRECATED (use: gnutls_x509_crq_privkey_sign)
647 gnutls_x509_crq_sign: DEPRECATED (use: gnutls_x509_crq_privkey_sign)
648 gnutls_x509_crq_get_preferred_hash_algorithm: REMOVED (was added in 2.11.0)
649 gnutls_x509_crl_sign: DEPRECATED (use: gnutls_x509_crl_privkey_sign)
650 gnutls_x509_crl_sign2: DEPRECATED (use: gnutls_x509_crl_privkey_sign)
651 gnutls_x509_privkey_sign_data: DEPRECATED (use: gnutls_privkey_sign_data2)
652 gnutls_x509_privkey_sign_hash: DEPRECATED (use: gnutls_privkey_sign_hash2)
653 gnutls_x509_privkey_verify_data: DEPRECATED (use: gnutls_pubkey_verify_data)
654 gnutls_session_set_finished_function: DEPRECATED
655 gnutls_x509_crt_verify_hash: DEPRECATED (use: gnutls_pubkey_verify_hash)
656 gnutls_x509_crt_verify_data: DEPRECATED (use: gnutls_pubkey_verify_data)
657 gnutls_x509_crt_get_verify_algorithm: DEPRECATED (use: gnutls_pubkey_get_verify_algorithm)
658 gnutls_x509_crt_get_preferred_hash_algorithm: DEPRECATED (use: gnutls_pubkey_get_preferred_hash_algorithm)
659 gnutls_openpgp_privkey_sign_hash: DEPRECATED (use: gnutls_privkey_sign_hash2)
660 gnutls_pkcs11_privkey_sign_hash: REMOVED (was added in 2.11.0)
661 gnutls_pkcs11_privkey_decrypt_data: REMOVED (was added in 2.11.0)
662 gnutls_privkey_sign_hash: REMOVED (was added in 2.11.0)
663
664 * Version 2.11.6 (released 2010-12-06)
665
666 ** libgnutls: Record version of Client Hellos is now set by default to
667 SSL 3.0. To restore the previous default behavior use %LATEST_RECORD_VERSION
668 priority string.
669
670 ** libgnutls: Use ASN1_NULL when writing parameters for RSA signatures. 
671 This makes us comply with RFC3279. Reported by Michael Rommel.
672
673 ** gnutls-serv: Corrected a buffer overflow. Reported and patch by Tomas Mraz.
674
675 ** API and ABI modifications:
676 No changes since last version.
677
678 * Version 2.11.5 (released 2010-12-01)
679
680 ** libgnutls: Reverted default behavior for verification and
681 introduced GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT. Thus by default
682 V1 trusted CAs are allowed, unless the new flag is specified.
683
684 ** libgnutls: Correctly add leading zero to PKCS #8 encoded DSA key.
685 Reported by Jeffrey Walton.
686
687 ** libgnutls: Added SIGN-ALL, CTYPE-ALL, COMP-ALL, and VERS-TLS-ALL
688 as priority strings. Those allow to set all the supported algorithms
689 at once.
690
691 ** p11tool: Introduced. It allows manipulating pkcs 11 tokens.
692
693 ** gnutls-cli: Print channel binding only in verbose mode.
694 Before it printed it after the 'Compression:' output, thus breaking
695 Emacs starttls.el string searches.
696
697 ** API and ABI modifications:
698 gnutls_pkcs11_token_init: New function
699 gnutls_pkcs11_token_set_pin: New function
700
701 * Version 2.11.4 (released 2010-10-15)
702
703 ** libgnutls: Add new API gnutls_session_channel_binding.
704 The function is used to get the channel binding data.  Currently only
705 the "tls-unique" (RFC 5929) channel binding type is supported, through
706 the GNUTLS_CB_TLS_UNIQUE type.  See new section "Channel Bindings" in
707 the manual.
708
709 ** gnutls-cli, gnutls-serv: Print 'tls-unique' Channel Bindings.
710
711 ** doc: Added pkcs11.h header file to GTK-DOC manual.
712
713 ** build: Update gnulib files.
714
715 ** i18n: Update translations.
716
717 ** tests: Add self tests gendh.c.  Speed up Guile self checks.
718
719 ** API and ABI modifications:
720 gnutls_session_channel_binding: New function.
721 gnutls_channel_binding_t: New enumeration.
722 GNUTLS_CB_TLS_UNIQUE: New gnutls_channel_binding_t enum member.
723 GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE: New error code.
724
725 * Version 2.11.3 (released 2010-10-14)
726
727 ** Indent code to follow the GNU Coding Standard.
728 You should be able to unpack the 2.11.2 release and run 'make indent'
729 twice to get exactly the same content as 2.11.3 except for generated
730 files.  Using GNU Indent 2.2.11.
731
732 ** API and ABI modifications:
733 No changes since last version.
734
735 * Version 2.11.2 (released 2010-10-08)
736
737 ** libgnutls: Several bug fixes on session resumption
738 and session tickets support.
739
740 ** libgnutls: Add new extended key usage ipsecIKE.
741
742 ** certtool: Renamed PKCS #11 options to: --p11-provider,
743 --p11-export-url, --p11-list-certs, --p11-list-certs,
744 --p11-list-privkeys, --p11-list-trusted, --p11-list-all-certs,
745 --p11-list-all, --p11-list-tokens, --p11-login, --p11-write,
746 --p11-write-label, --p11-write-trusted, --p11-detailed-url,
747 --p11-delete-url
748
749 ** libgnutls: Corrected bug that caused importing DSA keys as RSA,
750 introduced with the new nettle code.
751
752 ** libgnutls: Corrected advertizing issue for session tickets.
753
754 ** API and ABI modifications:
755 gnutls_x509_crt_get_subject_unique_id: ADDED.
756 gnutls_x509_crt_get_issuer_unique_id: ADDED.
757
758 * Version 2.11.1 (released 2010-09-14)
759
760 ** libgnutls: Nettle is the default crypto back end. Use --with-libgcrypt
761 to use the libgcrypt back end.
762
763 ** libgnutls: Depend on nettle 2.1. This makes nettle a fully working
764 backend crypto library.
765
766 ** libgnutls: Added RSA_NULL_SHA1 and SHA256 ciphersuites.
767
768 ** libgnutls: Several updates in the buffering internal interface.
769
770 ** libgnutls: Is now more liberal in the PEM decoding. That is spaces and 
771 tabs are being skipped.
772
773 ** libgnutls: Added support for draft-pechanec-pkcs11uri-02.
774
775 ** libgnutls: The %COMPAT flag now allows larger records that violate the
776 TLS spec.
777
778 ** libgnutls: by default lowat level has been set to zero to avoid unnecessary
779 system calls. Applications that depended on it being 1 should explicitly call
780 gnutls_transport_set_lowat().
781
782 ** libgnutls: Updated documentation and gnutls_pk_params_t mappings
783 to ECRYPT II recommendations. Mappings were moved to a single location
784 and DSA keys are handled differently (since DSA2 allows for 1024,2048
785 and 3072 keys only).
786
787 ** libgnutls: gnutls_x509_privkey_import() will fallback to
788 gnutls_x509_privkey_import_pkcs8() without a password, if it
789 is unable to decode the key.
790
791 ** libgnutls: HMAC-MD5 no longer used by default.
792
793 ** API and ABI modifications:
794 gnutls_openpgp_privkey_sec_param: ADDED
795 gnutls_x509_privkey_sec_param: ADDED
796
797 * Version 2.11.0 (released 2010-07-22)
798
799 ** libgnutls: support scattered write using writev(). This takes
800 advantage of the new buffering layer and allows queuing of packets
801 and flushing them. This is currently used for handshake messages
802 only.
803
804 ** libgnutls: Added gnutls_global_set_mutex() to allow setting
805 alternative locking procedures. By default the system available
806 locking is used. In *NIX pthreads are used and in windows the
807 critical section API. This follows a different approach than the
808 previous versions that depended on libgcrypt initialization. The
809 locks are now set by default in systems that support it. Programs
810 that used gcry_control() to set thread locks should insert it into
811 a block of
812 #if GNUTLS_VERSION_NUMBER <= 0x020b00
813         gcry_control(...)
814 #endif
815
816 ** libgnutls: Added support for reading DN from EV-certificates.
817 New DN values:
818 jurisdictionOfIncorporationLocalityName,
819 jurisdictionOfIncorporationStateOrProvinceName,
820 jurisdictionOfIncorporationCountryName
821
822 ** libgnutls: Added support for DSA signing/verifying with bit 
823 length over 1024.
824
825 ** libgnutls-extra: When in FIPS mode gnutls_global_init_extra()
826 has to be called to register any required md5 handlers.
827
828 ** libgnutls: Internal buffering code was replaced by simpler
829 code contributed by Jonathan Bastien-Filiatrault.
830
831 ** libgnutls: Internal API for extensions augmented to allow
832 safe storing and loading of data on resumption. This allows writing
833 self-contained extensions (when possible). As a side effect
834 the OPRFI extension was removed.
835
836 ** libgnutls: Added support for DSA-SHA256 and DSA-SHA224
837
838 ** libgnutls: Added PKCS #11 support and an API to access objects in
839 gnutls/pkcs11.h. Currently certificates and public keys can be
840 imported from tokens, and operations can be performed on private keys.
841
842 ** libgnutls: Added abstract gnutls_privkey_t and gnutls_pubkey_t
843
844 ** libgnutls: Added initial support for the nettle library. It uses
845 the system's random generator for seeding. That is /dev/urandom in Linux, 
846 system calls in Win32 and EGD on other systems.
847
848 ** libgnutls: Corrected issue on the %SSL3_RECORD_VERSION priority string. It now
849     works even when resuming a session.
850
851 ** libgnutls: Added gnutls_certificate_set_retrieve_function() to replace the
852 similar gnutls_certificate_set_server_retrieve_function() and
853 gnutls_certificate_set_client_retrieve_function(). In addition it support
854 PKCS #11 private keys.
855
856 ** libgnutls: Added  gnutls_pkcs11_copy_x509_crt(), gnutls_pkcs11_copy_x509_privkey(),
857 and gnutls_pkcs11_delete_url() to allow copying and deleting data in tokens.
858
859 ** libgnutls: Added gnutls_sec_param_to_pk_bits() et al. to allow select bit
860 sizes for private keys using a human understandable scale.
861
862 ** certtool: Added new options: --pkcs11-list-tokens, --pkcs11-list-all
863 --pkcs11-list-all-certs, --pkcs11-list-trusted, --pkcs11-list-certs,
864 --pkcs11-delete-url, --pkcs11-write
865
866 certtool: The --pkcs-cipher is taken into account when generating a
867 private key. The default cipher used now is aes-128. The old behavior can
868 be simulated by specifying "--pkcs-cipher 3des-pkcs12".
869
870 certtool: Added --certificate-pubkey to print the public key of the
871 certificate.
872
873 ** gnutls-cli/gnutls-serv: --x509cafile, --x509certfile and --x509keyfile
874 can now accept a PKCS #11 URL in addition to a file. This will allow for
875 example to use the Gnome-keyring trusted certificate list to verify
876 connections using a url such as:
877 pkcs11:token=Root%20CA%20Certificates;serial=1%3AROOTS%3ADEFAULT;model=1%2E0;manufacturer=Gnome%20Keyring
878
879 ** API and ABI modifications:
880 gnutls_certificate_set_server_retrieve_function: DEPRECATED
881 gnutls_certificate_set_client_retrieve_function: DEPRECATED
882 gnutls_sign_callback_set: DEPRECATED
883 gnutls_global_set_mutex: ADDED
884 gnutls_pubkey_get_preferred_hash_algorithm: ADDED
885 gnutls_x509_crt_get_preferred_hash_algorithm: ADDED
886 gnutls_x509_privkey_export_rsa_raw2: ADDED
887 gnutls_rnd: ADDED
888 gnutls_sec_param_to_pk_bits: ADDED
889 gnutls_pk_bits_to_sec_param: ADDED
890 gnutls_sec_param_get_name: ADDED
891 gnutls_pkcs11_type_get_name: ADDED
892 gnutls_certificate_set_retrieve_function: ADDED
893 gnutls_pkcs11_init: ADDED
894 gnutls_pkcs11_deinit: ADDED
895 gnutls_pkcs11_set_pin_function: ADDED
896 gnutls_pkcs11_set_token_function: ADDED
897 gnutls_pkcs11_add_provider: ADDED
898 gnutls_pkcs11_obj_init: ADDED
899 gnutls_pkcs11_obj_import_url: ADDED
900 gnutls_pkcs11_obj_export_url: ADDED
901 gnutls_pkcs11_obj_deinit: ADDED
902 gnutls_pkcs11_obj_export: ADDED
903 gnutls_pkcs11_obj_list_import_url: ADDED
904 gnutls_pkcs11_obj_export: ADDED
905 gnutls_x509_crt_import_pkcs11: ADDED
906 gnutls_pkcs11_obj_get_type: ADDED
907 gnutls_x509_crt_list_import_pkcs11: ADDED
908 gnutls_x509_crt_import_pkcs11_url: ADDED
909 gnutls_pkcs11_obj_get_info: ADDED
910 gnutls_pkcs11_token_get_info: ADDED
911 gnutls_pkcs11_token_get_url: ADDED
912 gnutls_pkcs11_privkey_init: ADDED
913 gnutls_pkcs11_privkey_deinit: ADDED
914 gnutls_pkcs11_privkey_get_pk_algorithm: ADDED
915 gnutls_pkcs11_privkey_get_info: ADDED
916 gnutls_pkcs11_privkey_import_url: ADDED
917 gnutls_pkcs11_privkey_sign_data: ADDED
918 gnutls_pkcs11_privkey_sign_hash: ADDED
919 gnutls_pkcs11_privkey_decrypt_data: ADDED
920 gnutls_privkey_init: ADDED
921 gnutls_privkey_deinit: ADDED
922 gnutls_privkey_get_pk_algorithm: ADDED
923 gnutls_privkey_get_type: ADDED
924 gnutls_privkey_import_pkcs11: ADDED
925 gnutls_privkey_import_x509: ADDED
926 gnutls_privkey_import_openpgp: ADDED
927 gnutls_privkey_sign_data: ADDED
928 gnutls_privkey_sign_hash: ADDED
929 gnutls_privkey_decrypt_data: ADDED
930 gnutls_pkcs11_privkey_export_url: ADDED
931 gnutls_x509_crq_privkey_sign: ADDED
932 gnutls_x509_crl_privkey_sign: ADDED
933 gnutls_x509_crt_privkey_sign: ADDED
934 gnutls_pubkey_init: ADDED
935 gnutls_pubkey_deinit: ADDED
936 gnutls_pubkey_get_pk_algorithm: ADDED
937 gnutls_pubkey_import_x509: ADDED
938 gnutls_pubkey_import_openpgp: ADDED
939 gnutls_pubkey_get_pk_rsa_raw: ADDED
940 gnutls_pubkey_get_pk_dsa_raw: ADDED
941 gnutls_pubkey_export: ADDED
942 gnutls_pubkey_get_key_id: ADDED
943 gnutls_pubkey_get_key_usage: ADDED
944 gnutls_pubkey_verify_hash: ADDED
945 gnutls_pubkey_get_verify_algorithm: ADDED
946 gnutls_pkcs11_type_get_name: ADDED
947 gnutls_pubkey_import_pkcs11_url: ADDED
948 gnutls_pubkey_import: ADDED
949 gnutls_pubkey_import_pkcs11: ADDED
950 gnutls_pubkey_import_dsa_raw: ADDED
951 gnutls_pubkey_import_rsa_raw: ADDED
952 gnutls_x509_crt_set_pubkey: ADDED
953 gnutls_x509_crq_set_pubkey: ADDED
954 gnutls_pkcs11_copy_x509_crt: ADDED
955 gnutls_pkcs11_copy_x509_privkey: ADDED
956 gnutls_pkcs11_delete_url: ADDED
957
958 * Version 2.10.1 (released 2010-07-25)
959
960 ** libgnutls: Added support for broken certificates that indicate RSA
961 with strange OIDs.
962
963 ** gnutls-cli: Allow verification using V1 CAs.
964
965 ** libgnutls: gnutls_x509_privkey_import() will fallback to
966 gnutls_x509_privkey_import_pkcs8() without a password, if it
967 is unable to decode the key.
968
969 ** libgnutls: Correctly deinitialize crypto API functions to prevent
970 a memory leak.  Reported by Mads Kiilerich.
971
972 ** certtool: If asked to generate DSA keys of size more than 1024 bits,
973 issue a warning, that the output key might not be working everywhere.
974
975 ** certtool: The --pkcs-cipher is taken into account when generating a
976 private key. The default cipher used now is aes-128. The old behavior
977 can be simulated by specifying "--pkcs-cipher 3des-pkcs12".
978
979 ** API and ABI modifications:
980 No changes since last version.
981
982 * Version 2.10.0 (released 2010-06-25)
983
984 ** API and ABI modifications:
985 No changes since last version.
986
987 * Version 2.9.12 (released 2010-06-17)
988
989 ** gnutls-cli: Make --starttls work again.
990 Problem introduced in patch to use read() instead of fgets() committed
991 on 2010-01-27.
992
993 ** API and ABI modifications:
994 No changes since last version.
995
996 * Version 2.9.11 (released 2010-06-07)
997
998 ** libgnutls: Removed two APIs related to safe renegotiation.
999 Use priority strings instead.  The APIs were
1000 gnutls_safe_negotiation_set_initial and gnutls_safe_renegotiation_set.
1001 (Remember that we don't promise ABI stability during development
1002 series, so this doesn't cause an shared library ABI increment.)
1003
1004 ** tests: More self testing of safe renegotiation extension.
1005 See tests/safe-renegotiation/README for more information.
1006
1007 ** doc: a PDF version of the API reference manual (GTK-DOC) is now built.
1008
1009 ** doc: Terms 'GNUTLS' and 'GNU TLS' were changed to 'GnuTLS' for consistency.
1010
1011 ** API and ABI modifications:
1012 gnutls_safe_negotiation_set_initial: REMOVED.
1013 gnutls_safe_renegotiation_set: REMOVED.
1014
1015 * Version 2.9.10 (released 2010-04-22)
1016
1017 ** libgnutls: Time verification extended to trusted certificate list.
1018 Unless new constant GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS flag is
1019 specified.
1020
1021 ** certtool: Display postalCode and Name X.509 DN attributes correctly.
1022 Based on patch by Pavan Konjarla.  Adds new constant
1023 GNUTLS_OID_X520_POSTALCODE and GNUTLS_OID_X520_NAME.
1024
1025 ** libgnutls: Added Steve Dispensa's patch for safe renegotiation (RFC 5746)
1026 Solves the issue discussed in:
1027 <http://www.ietf.org/mail-archive/web/tls/current/msg03928.html> and
1028 <http://www.ietf.org/mail-archive/web/tls/current/msg03948.html>.
1029 Note that to allow connecting to unpatched servers the full protection
1030 is only enabled if the priority string %SAFE_RENEGOTIATION is
1031 specified. You can check whether protection is in place by querying
1032 gnutls_safe_renegotiation_status().  New error codes
1033 GNUTLS_E_SAFE_RENEGOTIATION_FAILED and
1034 GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED added.
1035
1036 ** libgnutls: When checking openpgp self signature also check the signatures
1037 ** of all subkeys.
1038 Ilari Liusvaara noticed and reported the issue and provided test
1039 vectors as well.
1040
1041 ** libgnutls: Added cryptodev support (/dev/crypto).
1042 Tested with http://www.logix.cz/michal/devel/cryptodev/.  Added
1043 benchmark utility for AES.  Adds new error codes
1044 GNUTLS_E_CRYPTODEV_IOCTL_ERROR and GNUTLS_E_CRYPTODEV_DEVICE_ERROR.
1045
1046 ** libgnutls: Exported API to access encryption and hash algorithms.
1047 The new API functions are gnutls_cipher_decrypt, gnutls_cipher_deinit,
1048 gnutls_cipher_encrypt, gnutls_cipher_get_block_size,
1049 gnutls_cipher_init, gnutls_hash, gnutls_hash_deinit, gnutls_hash_fast,
1050 gnutls_hash_get_len, gnutls_hash_init, gnutls_hash_output,
1051 gnutls_hmac, gnutls_hmac_deinit, gnutls_hmac_fast,
1052 gnutls_hmac_get_len, gnutls_hmac_init, gnutls_hmac_output.  New API
1053 constants are GNUTLS_MAC_SHA224 and GNUTLS_DIG_SHA224.
1054
1055 ** libgnutls: Added gnutls_certificate_set_verify_function() to allow
1056 verification of certificate upon receipt rather than waiting until the
1057 end of the handshake.
1058
1059 ** libgnutls: Don't send alerts during handshake.
1060 Instead new error code GNUTLS_E_UNKNOWN_SRP_USERNAME is added.
1061
1062 ** certtool: Corrected two issues that affected certificate request generation.
1063 (1) Null padding is added on integers (found thanks to Wilankar Trupti),
1064 (2) In optional SignatureAlgorithm parameters field for DSA keys the DSA
1065 parameters were added. Those were rejected by Verisign. Gnutls no longer adds 
1066 those parameters there since other implementations don't do either and having 
1067 them does not seem to offer anything (anyway you need the signer's certificate
1068 to verify thus public key will be available). Found thanks to Boyan Kasarov.
1069 This however has the side-effect that public key IDs shown by certtool are
1070 now different than previous gnutls releases.
1071 (3) the option --pgp-certificate-info will verify self signatures
1072
1073 ** certtool: Allow exporting of Certificate requests on DER format.
1074
1075 ** certtool: New option --no-crq-extensions to avoid extensions in CSRs.
1076
1077 ** gnutls-cli: Handle reading binary data from server.
1078 Reported by and tiny patch from Vitaly Mayatskikh
1079 <v.mayatskih@gmail.com> in
1080 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4096>.
1081
1082 ** minitasn1: Upgraded to libtasn1 version 2.6.
1083
1084 ** i18n: Updated Czech, Dutch, French, Polish, Swedish translation.
1085 ** Added Italian and Simplified Chinese translation.
1086 Thanks to Petr Pisar, Erwin Poeze, Nicolas Provost, Jakub Bogusz,
1087 Daniel Nylander, Sergio Zanchetta, Tao Wei, and Aron Xu.
1088
1089 ** doc: The GTK-DOC manual is significantly improved.
1090
1091 ** API and ABI modifications:
1092 %DISABLE_SAFE_RENEGOTIATION: Added to priority strings (do not use).
1093 %INITIAL_SAFE_RENEGOTIATION: Added to priority strings.
1094 %UNSAFE_RENEGOTIATION: Added to priority strings.
1095 GNUTLS_DIG_SHA224: ADDED.
1096 GNUTLS_E_CRYPTODEV_DEVICE_ERROR: ADDED.
1097 GNUTLS_E_CRYPTODEV_IOCTL_ERROR: ADDED.
1098 GNUTLS_E_SAFE_RENEGOTIATION_FAILED: ADDED.
1099 GNUTLS_E_UNKNOWN_SRP_USERNAME: ADDED.
1100 GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED: ADDED.
1101 GNUTLS_MAC_SHA224: ADDED.
1102 GNUTLS_OID_X520_NAME: ADDED.
1103 GNUTLS_OID_X520_POSTALCODE: ADDED.
1104 GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS: ADDED.
1105 GNUTLS_VERSION_MAX: ADDED.
1106 gnutls_certificate_set_verify_function: ADDED.
1107 gnutls_cipher_decrypt: ADDED.
1108 gnutls_cipher_deinit: ADDED.
1109 gnutls_cipher_encrypt: ADDED.
1110 gnutls_cipher_get_block_size: ADDED.
1111 gnutls_cipher_init: ADDED.
1112 gnutls_hash: ADDED.
1113 gnutls_hash_deinit: ADDED.
1114 gnutls_hash_fast: ADDED.
1115 gnutls_hash_get_len: ADDED.
1116 gnutls_hash_init: ADDED.
1117 gnutls_hash_output: ADDED.
1118 gnutls_hmac: ADDED.
1119 gnutls_hmac_deinit: ADDED.
1120 gnutls_hmac_fast: ADDED.
1121 gnutls_hmac_get_len: ADDED.
1122 gnutls_hmac_init: ADDED.
1123 gnutls_hmac_output: ADDED.
1124 gnutls_safe_negotiation_set_initial: ADDED.
1125 gnutls_safe_renegotiation_set: ADDED.
1126 gnutls_safe_renegotiation_status: ADDED.
1127
1128 * Version 2.9.9 (released 2009-11-09)
1129
1130 ** libgnutls: Cleanups and several bug fixes.
1131 Found by Steve Grubb and Tomas Mraz.
1132
1133 ** Link libgcrypt explicitly to certtool, gnutls-cli, gnutls-serv.
1134
1135 ** Fix --disable-valgrind-tests.
1136 Reported by Ingmar Vanhassel in
1137 <https://savannah.gnu.org/support/?107029>.
1138
1139 ** API and ABI modifications:
1140 No changes since last version.
1141
1142 * Version 2.9.8 (released 2009-11-05)
1143
1144 ** libgnutls: Fix for memory leaks on interrupted handshake.
1145 Reported by Tang Tong.
1146
1147 ** libgnutls: Addition of support for TLS 1.2 signature algorithms
1148 ** extension and certificate verify field.
1149 This requires changes for TLS 1.2 servers and clients that use
1150 callbacks for certificate retrieval.  They are now required to check
1151 with gnutls_sign_algorithm_get_requested() whether the certificate
1152 they send complies with the peer's preferences in signature
1153 algorithms.
1154
1155 ** libgnutls: In server side when resuming a session do not overwrite the 
1156 ** initial session data with the resumed session data.
1157
1158 ** libgnutls: Added support for AES-128, AES-192 and AES-256 in PKCS #8
1159 ** encryption.
1160 This affects also PKCS #12 encoded files.  This adds the following new
1161 enums: GNUTLS_CIPHER_AES_192_CBC, GNUTLS_PKCS_USE_PBES2_AES_128,
1162 GNUTLS_PKCS_USE_PBES2_AES_192, GNUTLS_PKCS_USE_PBES2_AES_256.
1163
1164 ** libgnutls: Fix PKCS#12 encoding.
1165 The error you would get was "The OID is not supported.".  Problem
1166 introduced for the v2.8.x branch in 2.7.6.
1167
1168 ** certtool: Added the --pkcs-cipher option.
1169 To explicitely specify the encryption algorithm to use.
1170
1171 ** tests: Added "pkcs12_encode" self-test to check PKCS#12 functions.
1172
1173 ** tests: Fix time bomb in chainverify self-test.
1174 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1175 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3925>.
1176
1177 ** tests: Fix expired cert in chainverify self-test.
1178
1179 ** i18n: Vietnamese translation updated.
1180 Thanks to Clytie Siddall.
1181
1182 ** API and ABI modifications:
1183 GNUTLS_CIPHER_AES_192_CBC: ADDED to gnutls/gnutls.h.
1184 GNUTLS_PKCS_USE_PBES2_AES_128: ADDED to gnutls/x509.h.
1185 GNUTLS_PKCS_USE_PBES2_AES_192: ADDED to gnutls/x509.h.
1186 GNUTLS_PKCS_USE_PBES2_AES_256: ADDED to gnutls/x509.h.
1187 GNUTLS_BAG_SECRET: ADDED to gnutls/pkcs12.h.
1188 GNUTLS_DIG_UNKNOWN: ADDED to gnutls/gnutls.h.
1189 gnutls_sign_algorithm_get_requested: ADDED.
1190
1191 * Version 2.9.7 (released 2009-10-06)
1192
1193 ** libgnutls: TLS 1.2 server mode fixes.
1194 Now interoperates against Opera.  Contributed by Daiki Ueno.
1195
1196 ** libgnutlsxx: Fix link problems.
1197 Tiny patch from Boyan Kasarov <bkasarov@gmail.com>.
1198
1199 ** guile: Compatibility with guile 2.x.
1200 By Ludovic Courtes <ludovic.courtes@laas.fr>.
1201
1202 ** API and ABI modifications:
1203 No changes since last version.
1204
1205 * Version 2.9.6 (released 2009-09-22)
1206
1207 ** libgnutls: Enable Camellia ciphers by default.
1208
1209 ** API and ABI modifications:
1210 No changes since last version.
1211
1212 * Version 2.9.5 (released 2009-09-10)
1213
1214 ** libgnutls: Add new functions to extract X.509 Issuer Alternative Names.
1215 The new functions are gnutls_x509_crt_get_issuer_alt_name2,
1216 gnutls_x509_crt_get_issuer_alt_name, and
1217 gnutls_x509_crt_get_issuer_alt_othername_oid.  Contributed by Brad
1218 Hards <bradh@frogmouth.net>.
1219
1220 ** API and ABI modifications:
1221 gnutls_x509_crt_get_issuer_alt_name2: ADDED.
1222 gnutls_x509_crt_get_issuer_alt_name: ADDED.
1223 gnutls_x509_crt_get_issuer_alt_othername_oid: ADDED.
1224
1225 * Version 2.9.4 (released 2009-09-03)
1226
1227 ** libgnutls: Client-side TLS 1.2 and SHA-256 ciphersuites now works.
1228 The new supported ciphersuites are AES-128/256 in CBC mode with
1229 ANON-DH/RSA/DHE-DSS/DHE-RSA.  Contributed by Daiki Ueno.  Further,
1230 SHA-256 is now the preferred default MAC (however it is only used with
1231 TLS 1.2).
1232
1233 ** libgnutls: Make OpenPGP hostname checking work again.
1234 The patch to resolve the X.509 CN/SAN issue accidentally broken
1235 OpenPGP hostname comparison.
1236
1237 ** libgnutls: When printing X.509 certificates, handle XMPP SANs better.
1238 Reported by Howard Chu <hyc@symas.com> in
1239 <https://savannah.gnu.org/support/?106975>.
1240
1241 ** Fix use of deprecated types internally.
1242 Use of deprecated types in GnuTLS from now on will lead to a compile
1243 error, to prevent this from happening again.
1244
1245 ** API and ABI modifications:
1246 No changes since last version.
1247
1248 * Version 2.9.3 (released 2009-08-19)
1249
1250 ** libgnutls: Support for TLS tickets was contributed by Daiki Ueno.
1251 The new APIs are gnutls_session_ticket_enable_client,
1252 gnutls_session_ticket_enable_server, and
1253 gnutls_session_ticket_key_generate.
1254
1255 ** gnutls-cli, gnutls-serv: New parameter --noticket to disable TLS tickets.
1256
1257 ** API and ABI modifications:
1258 gnutls_session_ticket_key_generate: ADDED.
1259 gnutls_session_ticket_enable_client: ADDED.
1260 gnutls_session_ticket_enable_server: ADDED.
1261
1262 * Version 2.9.2 (released 2009-08-14)
1263
1264 ** libgnutls: Fix problem with NUL bytes in X.509 CN and SAN fields.
1265 By using a NUL byte in CN/SAN fields, it was possible to fool GnuTLS
1266 into 1) not printing the entire CN/SAN field value when printing a
1267 certificate and 2) cause incorrect positive matches when matching a
1268 hostname against a certificate.  Some CAs apparently have poor
1269 checking of CN/SAN values and issue these (arguable invalid)
1270 certificates.  Combined, this can be used by attackers to become a
1271 MITM on server-authenticated TLS sessions.  The problem is mitigated
1272 since attackers needs to get one certificate per site they want to
1273 attack, and the attacker reveals his tracks by applying for a
1274 certificate at the CA.  It does not apply to client authenticated TLS
1275 sessions.  Research presented independently by Dan Kaminsky and Moxie
1276 Marlinspike at BlackHat09.  Thanks to Tomas Hoger <thoger@redhat.com>
1277 for providing one part of the patch.  [GNUTLS-SA-2009-4] [CVE-2009-2730].
1278
1279 ** libgnutls: Fix rare failure in gnutls_x509_crt_import.
1280 The function may fail incorrectly when an earlier certificate was
1281 imported to the same gnutls_x509_crt_t structure.
1282
1283 ** minitasn1: Internal copy updated to libtasn1 v2.3.
1284
1285 ** libgnutls: Fix return value of gnutls_certificate_client_get_request_status.
1286 Before it always returned false.  Reported by Peter Hendrickson
1287 <pdh@wiredyne.com> in
1288 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3668>.
1289
1290 ** libgnutls: Fix off-by-one size computation error in unknown DN printing.
1291 The error resulted in truncated strings when printing unknown OIDs in
1292 X.509 certificate DNs.  Reported by Tim Kosse
1293 <tim.kosse@filezilla-project.org> in
1294 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3651>.
1295
1296 ** libgnutls: Fix PKCS#12 decryption from password.
1297 The encryption key derived from the password was incorrect for (on
1298 average) 1 in every 128 input for random inputs.  Reported by "Kukosa,
1299 Tomas" <tomas.kukosa@siemens-enterprise.com> in
1300 <http://permalink.gmane.org/gmane.network.gnutls.general/1663>.
1301
1302 ** libgnutls: Return correct bit lengths of some MPIs.
1303 gnutls_dh_get_prime_bits, gnutls_rsa_export_get_modulus_bits, and
1304 gnutls_dh_get_peers_public_bits.  Before the reported value was
1305 overestimated.  Reported by Peter Hendrickson <pdh@wiredyne.com> in
1306 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3607>.
1307
1308 ** libgnutls: Avoid internal error when invoked after GNUTLS_E_AGAIN.
1309 Report and patch by Tim Kosse <tim.kosse@filezilla-project.org> in
1310 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3671>
1311 and
1312 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3670>.
1313
1314 ** libgnutls: Relax checking of required libtasn1/libgcrypt versions.
1315 Before we required that the runtime library used the same (or more
1316 recent) libgcrypt/libtasn1 as it was compiled with.  Now we just check
1317 that the runtime usage is above the minimum required.  Reported by
1318 Marco d'Itri <md@linux.it> via Andreas Metzler
1319 <ametzler@downhill.at.eu.org> in <http://bugs.debian.org/540449>.
1320
1321 ** tests: Added new self-test pkcs12_s2k_pem to detect MPI bit length error.
1322
1323 ** tests: Improved test vectors in self-test pkcs12_s2k.
1324
1325 ** tests: Added new self-test dn2 to detect off-by-one size error.
1326
1327 ** tests: Fix failure in "chainverify" because a certificate have expired.
1328
1329 ** API and ABI modifications:
1330 No changes since last version.
1331
1332 * Version 2.9.1 (released 2009-06-08)
1333
1334 ** libgnutls: Fix crash in gnutls_global_init after earlier init/deinit cycle.
1335 Forwarded by Martin von Gagern <Martin.vGagern@gmx.net> from
1336 <http://bugs.gentoo.org/272388>.
1337
1338 ** tests: Added new self-tests init_roundtrip.c to detect previous problem.
1339
1340 ** Reduce stack usage for some CRQ functions.
1341
1342 ** Doc fixes for CRQ functions.
1343
1344 ** API and ABI modifications:
1345 No changes since last version.
1346
1347 * Version 2.9.0 (released 2009-05-28)
1348
1349 ** Doc fixes.
1350
1351 ** API and ABI modifications:
1352 No changes since last version.
1353
1354 * Version 2.8.6 (released 2010-03-15)
1355
1356 ** libgnutls: For CSRs, don't null pad integers for RSA/DSA value.
1357 VeriSign rejected CSRs with this padding.  Reported by Wilankar Trupti
1358 <trupti.wilankar@hp.com> and Boyan Kasarov <bkasarov@gmail.com>.
1359
1360 Note: As a side effect of this change, the "public key identifier"
1361 value computed for a certificate using this version of GnuTLS will be
1362 different from values computed using earlier versions of GnuTLS.
1363
1364 ** libgnutls: For CSRs on DSA keys, don't add DSA parameters to the
1365 ** optional SignatureAlgorithm parameter field.
1366 VeriSign rejected these CSRs.  They are stricly speaking not needed
1367 since you need the signer's certificate to verify the certificate
1368 signature anyway.  Reported by Wilankar Trupti
1369 <trupti.wilankar@hp.com> and Boyan Kasarov <bkasarov@gmail.com>.
1370
1371 ** libgnutls: When checking openpgp self signature also check the signatures
1372 ** of all subkeys.
1373 Ilari Liusvaara noticed and reported the issue and provided test
1374 vectors as well.
1375
1376 ** libgnutls: Cleanups and several bug fixes.
1377 Found by Steve Grubb and Tomas Mraz.
1378
1379 ** Link libgcrypt explicitly to certtool, gnutls-cli, gnutls-serv.
1380
1381 ** Fix --disable-valgrind-tests.
1382 Reported by Ingmar Vanhassel in
1383 <https://savannah.gnu.org/support/?107029>.
1384
1385 ** examples: Use the new APIs for printing X.509 certificate information.
1386
1387 ** Fix build failures on Solaris.
1388 Thanks to Dagobert Michelsen <dam@opencsw.org>.
1389
1390 ** i18n: Updated Czech, Dutch, French, Polish, Swedish and Vietnamese
1391 ** translations.  Added Simplified Chinese translation.
1392
1393 ** API and ABI modifications:
1394 No changes since last version.
1395
1396 * Version 2.8.5 (released 2009-11-02)
1397
1398 ** libgnutls: In server side when resuming a session do not overwrite the 
1399 ** initial session data with the resumed session data.
1400
1401 ** libgnutls: Fix PKCS#12 encoding.
1402 The error you would get was "The OID is not supported.".  Problem
1403 introduced for the v2.8.x branch in 2.7.6.
1404
1405 ** guile: Compatibility with guile 2.x.
1406 By Ludovic Courtes <ludovic.courtes@laas.fr>.
1407
1408 ** tests: Fix expired cert in chainverify self-test.
1409
1410 ** tests: Fix time bomb in chainverify self-test.
1411 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1412 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3925>.
1413
1414 ** API and ABI modifications:
1415 No changes since last version.
1416
1417 * Version 2.8.4 (released 2009-09-18)
1418
1419 ** libgnutls: Enable Camellia ciphers by default.
1420
1421 ** libgnutls: Make OpenPGP hostname checking work again.
1422 The patch to resolve the X.509 CN/SAN issue accidentally broken
1423 OpenPGP hostname comparison.
1424
1425 ** libgnutls: When printing X.509 certificates, handle XMPP SANs better.
1426 Reported by Howard Chu <hyc@symas.com> in
1427 <https://savannah.gnu.org/support/?106975>.
1428
1429 ** API and ABI modifications:
1430 No changes since last version.
1431
1432 * Version 2.8.3 (released 2009-08-13)
1433
1434 ** libgnutls: Fix patch for NUL in CN/SAN in last release.
1435 Code intended to be removed would lead to an read-out-bound error in
1436 some situations.  Reported by Tomas Hoger <thoger@redhat.com>.  A CVE
1437 code have been allocated for the vulnerability: [CVE-2009-2730].
1438
1439 ** libgnutls: Fix rare failure in gnutls_x509_crt_import.
1440 The function may fail incorrectly when an earlier certificate was
1441 imported to the same gnutls_x509_crt_t structure.
1442
1443 ** libgnutls-extra, libgnutls-openssl: Fix MinGW cross-compiling build error.
1444
1445 ** tests: Made self-test mini-eagain take less time.
1446
1447 ** doc: Typo fixes.
1448
1449 ** API and ABI modifications:
1450 No changes since last version.
1451
1452 * Version 2.8.2 (released 2009-08-10)
1453
1454 ** libgnutls: Fix problem with NUL bytes in X.509 CN and SAN fields.
1455 By using a NUL byte in CN/SAN fields, it was possible to fool GnuTLS
1456 into 1) not printing the entire CN/SAN field value when printing a
1457 certificate and 2) cause incorrect positive matches when matching a
1458 hostname against a certificate.  Some CAs apparently have poor
1459 checking of CN/SAN values and issue these (arguable invalid)
1460 certificates.  Combined, this can be used by attackers to become a
1461 MITM on server-authenticated TLS sessions.  The problem is mitigated
1462 since attackers needs to get one certificate per site they want to
1463 attack, and the attacker reveals his tracks by applying for a
1464 certificate at the CA.  It does not apply to client authenticated TLS
1465 sessions.  Research presented independently by Dan Kaminsky and Moxie
1466 Marlinspike at BlackHat09.  Thanks to Tomas Hoger <thoger@redhat.com>
1467 for providing one part of the patch.  [GNUTLS-SA-2009-4].
1468
1469 ** libgnutls: Fix return value of gnutls_certificate_client_get_request_status.
1470 Before it always returned false.  Reported by Peter Hendrickson
1471 <pdh@wiredyne.com> in
1472 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3668>.
1473
1474 ** libgnutls: Fix off-by-one size computation error in unknown DN printing.
1475 The error resulted in truncated strings when printing unknown OIDs in
1476 X.509 certificate DNs.  Reported by Tim Kosse
1477 <tim.kosse@filezilla-project.org> in
1478 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3651>.
1479
1480 ** libgnutls: Return correct bit lengths of some MPIs.
1481 gnutls_dh_get_prime_bits, gnutls_rsa_export_get_modulus_bits, and
1482 gnutls_dh_get_peers_public_bits.  Before the reported value was
1483 overestimated.  Reported by Peter Hendrickson <pdh@wiredyne.com> in
1484 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3607>.
1485
1486 ** libgnutls: Avoid internal error when invoked after GNUTLS_E_AGAIN.
1487 Report and patch by Tim Kosse <tim.kosse@filezilla-project.org> in
1488 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3671>
1489 and
1490 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3670>.
1491
1492 ** libgnutls: Relax checking of required libtasn1/libgcrypt versions.
1493 Before we required that the runtime library used the same (or more
1494 recent) libgcrypt/libtasn1 as it was compiled with.  Now we just check
1495 that the runtime usage is above the minimum required.  Reported by
1496 Marco d'Itri <md@linux.it> via Andreas Metzler
1497 <ametzler@downhill.at.eu.org> in <http://bugs.debian.org/540449>.
1498
1499 ** minitasn1: Internal copy updated to libtasn1 v2.3.
1500
1501 ** tests: Fix failure in "chainverify" because a certificate have expired.
1502
1503 ** API and ABI modifications:
1504 No changes since last version.
1505
1506 * Version 2.8.1 (released 2009-06-10)
1507
1508 ** libgnutls: Fix crash in gnutls_global_init after earlier init/deinit cycle.
1509 Forwarded by Martin von Gagern <Martin.vGagern@gmx.net> from
1510 <http://bugs.gentoo.org/272388>.
1511
1512 ** libgnutls: Fix PKCS#12 decryption from password.
1513 The encryption key derived from the password was incorrect for (on
1514 average) 1 in every 128 input for random inputs.  Reported by "Kukosa,
1515 Tomas" <tomas.kukosa@siemens-enterprise.com> in
1516 <http://permalink.gmane.org/gmane.network.gnutls.general/1663>.
1517
1518 ** API and ABI modifications:
1519 No changes since last version.
1520
1521 * Version 2.8.0 (released 2009-05-27)
1522
1523 ** doc: Fix gnutls_dh_get_prime_bits.  Fix error codes and algorithm lists.
1524
1525 ** Major changes compared to the v2.4 branch:
1526
1527 *** lib: Linker version scripts reduces number of exported symbols.
1528
1529 *** lib: Limit exported symbols on systems without LD linker scripts.
1530
1531 *** libgnutls: Fix namespace issue with version symbols.
1532
1533 *** libgnutls: Add functions to verify a hash against a certificate.
1534 gnutls_x509_crt_verify_hash: ADDED
1535 gnutls_x509_crt_get_verify_algorithm: ADDED
1536
1537 *** gnutls-serv: Listen on all interfaces, including both IPv4 and IPv6.
1538
1539 *** i18n: The GnuTLS gettext domain is now 'libgnutls' instead of 'gnutls'.
1540
1541 *** certtool: Query for multiple dnsName subjectAltName in interactive mode.
1542
1543 *** gnutls-cli: No longer accepts V1 CAs by default during X.509 chain verify.
1544
1545 *** gnutls-serv: No longer disable MAC padding by default.
1546
1547 *** gnutls-cli: Certificate information output format changed.
1548
1549 *** libgnutls: New priority strings %VERIFY_ALLOW_SIGN_RSA_MD5
1550 *** and %VERIFY_ALLOW_X509_V1_CA_CRT.
1551
1552 *** libgnutls: gnutls_x509_crt_print prints signature algorithm in oneline mode.
1553
1554 *** libgnutls: gnutls_openpgp_crt_print supports oneline mode.
1555
1556 *** libgnutls: gnutls_handshake when sending client hello during a
1557 rehandshake, will not offer a version number larger than the current.
1558
1559 *** libgnutls: New interface to get key id for certificate requests.
1560 gnutls_x509_crq_get_key_id: ADDED.
1561
1562 *** libgnutls: gnutls_x509_crq_print will now also print public key id.
1563
1564 *** certtool: --verify-chain now prints results of using library verification.
1565
1566 *** libgnutls: Libgcrypt initialization changed.
1567
1568 *** libgnutls: Small byte reads via gnutls_record_recv() optimized.
1569
1570 *** gnutls-cli: Return non-zero exit code on error conditions.
1571
1572 *** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
1573
1574 *** certtool: allow setting arbitrary key purpose object identifiers.
1575
1576 *** libgnutls: Change detection of when to use a linker version script.
1577 Use --enable-ld-version-script or --disable-ld-version-script to
1578 override auto-detection logic.
1579
1580 *** Fix warnings and build GnuTLS with more warnings enabled.
1581
1582 *** New API to set X.509 credentials from PKCS#12 memory structure.
1583 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
1584
1585 *** Old libgnutls.m4 and libgnutls-config scripts removed.
1586 Please use pkg-config instead.
1587
1588 *** libgnutls: Added functions to handle CRL extensions.
1589 gnutls_x509_crl_get_authority_key_id: ADDED
1590 gnutls_x509_crl_get_number: ADDED
1591 gnutls_x509_crl_get_extension_oid: ADDED
1592 gnutls_x509_crl_get_extension_info: ADDED
1593 gnutls_x509_crl_get_extension_data: ADDED
1594 gnutls_x509_crl_set_authority_key_id: ADDED
1595 gnutls_x509_crl_set_number: ADDED
1596
1597 *** libgnutls: Added functions to handle X.509 extensions in Certificate
1598 Requests.
1599 gnutls_x509_crq_get_key_rsa_raw: ADDED
1600 gnutls_x509_crq_get_attribute_info: ADDED
1601 gnutls_x509_crq_get_attribute_data: ADDED
1602 gnutls_x509_crq_get_extension_info: ADDED
1603 gnutls_x509_crq_get_extension_data: ADDED
1604 gnutls_x509_crq_get_key_usage: ADDED
1605 gnutls_x509_crq_get_basic_constraints: ADDED
1606 gnutls_x509_crq_get_subject_alt_name: ADDED
1607 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
1608 gnutls_x509_crq_get_extension_by_oid: ADDED
1609 gnutls_x509_crq_set_subject_alt_name: ADDED
1610 gnutls_x509_crq_set_basic_constraints: ADDED
1611 gnutls_x509_crq_set_key_usage: ADDED
1612 gnutls_x509_crq_get_key_purpose_oid: ADDED
1613 gnutls_x509_crq_set_key_purpose_oid: ADDED
1614 gnutls_x509_crq_print: ADDED
1615 gnutls_x509_crt_set_crq_extensions: ADDED
1616
1617 *** certtool: Print and set CRL and CRQ extensions.
1618
1619 *** minitasn1: Internal copy updated to libtasn1 v2.1.
1620
1621 *** examples: Now released into the public domain.
1622
1623 *** The Texinfo and GTK-DOC manuals were improved.
1624
1625 *** Several self-tests were added and others improved.
1626
1627 *** API/ABI changes in GnuTLS 2.8 compared to GnuTLS 2.6.x
1628 No offically supported interfaces have been modified or removed.  The
1629 library should be completely backwards compatible on both the source
1630 and binary level.
1631
1632 The shared library no longer exports some symbols that have never been
1633 officially supported, i.e., not mentioned in any of the header files.
1634 The symbols are:
1635
1636   _gnutls*
1637   gnutls_asn1_tab
1638   
1639 Normally when symbols are removed, the shared library version has to
1640 be incremented.  This leads to a significant cost for everyone using
1641 the library.  Because none of the above symbols have ever been
1642 intended for use by well-behaved applications, we decided that the it
1643 would be better for those applications to pay the price rather than
1644 incurring problems on the majority of applications.
1645
1646 If it turns out that applications have been using unofficial
1647 interfaces, we will need to release a follow-on release on the v2.8
1648 branch to exports additional interfaces.  However, initial testing
1649 suggests that few if any applications have been using any of the
1650 internal symbols.
1651
1652 Although not a new change compared to 2.6.x, we'd like to remind you
1653 interfaces have been modified so that X.509 chain verification now
1654 also checks activation/expiration times on certificates.  The affected
1655 functions are:
1656
1657 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
1658 gnutls_certificate_verify_peers: Likewise.
1659 gnutls_certificate_verify_peers2: Likewise.
1660 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
1661 GNUTLS_CERT_EXPIRED: ADDED.
1662 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
1663
1664 This change in behaviour was made during the GnuTLS 2.6.x cycle, and
1665 we gave our rationale for it in earlier release notes.
1666
1667 The following symbols have been added to the library:
1668
1669 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
1670 gnutls_x509_crl_get_authority_key_id: ADDED
1671 gnutls_x509_crl_get_extension_data: ADDED
1672 gnutls_x509_crl_get_extension_info: ADDED
1673 gnutls_x509_crl_get_extension_oid: ADDED
1674 gnutls_x509_crl_get_number: ADDED
1675 gnutls_x509_crl_set_authority_key_id: ADDED
1676 gnutls_x509_crl_set_number: ADDED
1677 gnutls_x509_crq_get_attribute_data: ADDED
1678 gnutls_x509_crq_get_attribute_info: ADDED
1679 gnutls_x509_crq_get_basic_constraints: ADDED
1680 gnutls_x509_crq_get_extension_by_oid: ADDED
1681 gnutls_x509_crq_get_extension_data: ADDED
1682 gnutls_x509_crq_get_extension_info: ADDED
1683 gnutls_x509_crq_get_key_id: ADDED.
1684 gnutls_x509_crq_get_key_purpose_oid: ADDED
1685 gnutls_x509_crq_get_key_rsa_raw: ADDED
1686 gnutls_x509_crq_get_key_usage: ADDED
1687 gnutls_x509_crq_get_subject_alt_name: ADDED
1688 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
1689 gnutls_x509_crq_print: ADDED
1690 gnutls_x509_crq_set_basic_constraints: ADDED
1691 gnutls_x509_crq_set_key_purpose_oid: ADDED
1692 gnutls_x509_crq_set_key_usage: ADDED
1693 gnutls_x509_crq_set_subject_alt_name: ADDED
1694 gnutls_x509_crt_get_verify_algorithm: ADDED
1695 gnutls_x509_crt_set_crq_extensions: ADDED
1696 gnutls_x509_crt_verify_hash: ADDED
1697
1698 The following interfaces have been added to the header files:
1699
1700 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_VERSION.
1701 GNUTLS_VERSION_MAJOR: ADDED, replaces LIBGNUTLS_VERSION_MAJOR.
1702 GNUTLS_VERSION_MINOR: ADDED, replaces LIBGNUTLS_VERSION_MINOR.
1703 GNUTLS_VERSION_PATCH: ADDED, replaces LIBGNUTLS_VERSION_PATCH.
1704 GNUTLS_VERSION_NUMBER: ADDED, replaces LIBGNUTLS_VERSION_NUMBER.
1705 GNUTLS_EXTRA_VERSION: ADDED, replaces LIBGNUTLS_EXTRA_VERSION.
1706
1707 The following interfaces have been deprecated:
1708
1709 LIBGNUTLS_VERSION: DEPRECATED.
1710 LIBGNUTLS_VERSION_MAJOR: DEPRECATED.
1711 LIBGNUTLS_VERSION_MINOR: DEPRECATED.
1712 LIBGNUTLS_VERSION_PATCH: DEPRECATED.
1713 LIBGNUTLS_VERSION_NUMBER: DEPRECATED.
1714 LIBGNUTLS_EXTRA_VERSION: DEPRECATED.
1715
1716 * Version 2.7.14 (released 2009-05-26)
1717
1718 ** libgnutls: Fix namespace issue with version symbol for libgnutls-extra.
1719 The symbol LIBGNUTLS_EXTRA_VERSION were renamed to
1720 GNUTLS_EXTRA_VERSION.  The old symbol will continue to work but is
1721 deprecated.
1722
1723 ** Doc: Several typo fixes in documentation.
1724 Reported by Peter Hendrickson <pdh@wiredyne.com>.
1725
1726 ** API and ABI modifications:
1727 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_EXTRA_VERSION.
1728 LIBGNUTLS_EXTRA_VERSION: DEPRECATED.
1729
1730 * Version 2.7.13 (released 2009-05-25)
1731
1732 ** libgnutls: Fix version of some exported symbols in the shared library.
1733 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1734 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3576>.
1735
1736 ** tests: Handle recently expired certificates in chainverify self-test.
1737 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1738 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3580>.
1739
1740 ** API and ABI modifications:
1741 No changes since last version.
1742
1743 * Version 2.7.12 (released 2009-05-20)
1744
1745 ** gnutls-serv, gnutls-cli-debug: Make them work on Windows.
1746
1747 ** tests/crq_key_id: Don't read entropy from /dev/random in self-test.
1748 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1749 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3570>.
1750
1751 ** Fix build failures.
1752 Missing sa_family_t and vsnprintf on IRIX.  Reported by "Tom
1753 G. Christensen" <tgc@jupiterrise.com> in
1754 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3571>.
1755
1756 ** minitasn1: Internal copy updated to libtasn1 v2.2.
1757 GnuTLS should work fine with libtasn1 v1.x and that is still
1758 supported.
1759
1760 ** API and ABI modifications:
1761 No changes since last version.
1762
1763 * Version 2.7.11 (released 2009-05-18)
1764
1765 ** minitasn1: Fix build failure when using internal libtasn1.
1766 Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
1767 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3548>.
1768
1769 ** libgnutls: Fix build failure with --disable-cxx.
1770 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1771 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3557>.
1772
1773 ** gnutls-serv: Fix build failure for unportable NI_MAXHOST/NI_MAXSERV.
1774 Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
1775 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3560>
1776
1777 ** Building with many warning flags now requires --enable-gcc-warnings.
1778 This avoids crying wolf for normal compiles.
1779
1780 ** API and ABI modifications:
1781 No changes since last version.
1782
1783 * Version 2.7.10 (released 2009-05-13)
1784
1785 ** examples: Now released into the public domain.
1786 This makes the license of the example code compatible with more
1787 licenses, including the (L)GPL.
1788
1789 ** minitasn1: Internal copy updated to libtasn1 v2.1.
1790 GnuTLS should work fine with libtasn1 v1.x and that is still
1791 supported.
1792
1793 ** libgnutls: Fix crash in signature verification
1794 The fix for the CVE-2009-1415 problem wasn't merged completely.
1795
1796 ** doc: Fixes for GTK-DOC output.
1797
1798 ** API and ABI modifications:
1799 No changes since last version.
1800
1801 * Version 2.7.9 (released 2009-05-11)
1802
1803 ** doc: Fix strings in man page of gnutls_priority_init.
1804
1805 ** doc: Fix tables of error codes and supported algorithms.
1806
1807 ** Fix build failure when cross-compiled using MinGW.
1808
1809 ** Fix build failure when LZO is enabled.
1810 Reported by Arfrever Frehtes Taifersar Arahesis
1811 <arfrever.fta@gmail.com> in
1812 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3522>.
1813
1814 ** Fix build failure on systems without AF_INET6, e.g., Solaris 2.6.
1815 Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
1816 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3524>.
1817
1818 ** Fix warnings in self-tests.
1819
1820 ** API and ABI modifications:
1821 No changes since last version.
1822
1823 * Version 2.7.8 (released 2009-05-03)
1824
1825 ** libgnutls: Fix DSA key generation.
1826 Merged from stable branch.  [GNUTLS-SA-2009-2] [CVE-2009-1416]
1827
1828 ** libgnutls: Check expiration/activation time on untrusted certificates.
1829 Merged from stable branch.  Reported by Romain Francoise
1830 <romain@orebokech.com>.  This changes the semantics of
1831 gnutls_x509_crt_list_verify, which in turn is used by
1832 gnutls_certificate_verify_peers and gnutls_certificate_verify_peers2.
1833 We add two new gnutls_certificate_status_t codes for reporting the new
1834 error condition, GNUTLS_CERT_NOT_ACTIVATED and GNUTLS_CERT_EXPIRED.
1835 We also add a new gnutls_certificate_verify_flags flag,
1836 GNUTLS_VERIFY_DISABLE_TIME_CHECKS, that can be used to disable the new
1837 behaviour.  [GNUTLS-SA-2009-3] [CVE-2009-1417]
1838
1839 ** lib: Linker version scripts reduces number of exported symbols.
1840 The linker version script now lists all exported ABIs explicitly, to
1841 avoid accidentally exporting unintended functions.  Compared to
1842 before, most symbols beginning with _gnutls* are no longer exported.
1843 These functions have never been intended for use by applications, and
1844 there were no prototypes for these function in the public header
1845 files.  Thus we believe it is possible to do this without incrementing
1846 the library ABI version which normally has to be done when removing an
1847 interface.
1848
1849 ** lib: Limit exported symbols on systems without LD linker scripts.
1850 Before all symbols were exported.  Now we limit the exported symbols
1851 to (for libgnutls and libgnutls-extra) gnutls* and (for libgnutls)
1852 _gnutls*.  This is a superset of the actual supported ABI, but still
1853 an improvement compared to before.  This is implemented using Libtool
1854 -export-symbols-regex.  It is more portable than linker version
1855 scripts.
1856
1857 ** libgnutls: Incremented CURRENT/AGE libtool version to reflect new symbols.
1858 This should have been done in the last release.
1859
1860 ** gnutls-serv: Listen on all interfaces, including both IPv4 and IPv6.
1861 Reported by Peter Hendrickson <pdh@wiredyne.com> in
1862 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3476>.
1863
1864 ** doc: Improved sections for the info manual.
1865 We now follow the advice given by the texinfo manual on which
1866 directory categories to use.  In particular, libgnutls moved from the
1867 'GNU Libraries' section to the 'Software libraries' and the command
1868 line tools moved from 'Network Applications' to 'System
1869 Administration'.
1870
1871 ** API and ABI modifications:
1872 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
1873 gnutls_certificate_verify_peers: Likewise.
1874 gnutls_certificate_verify_peers2: Likewise.
1875 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
1876 GNUTLS_CERT_EXPIRED: ADDED.
1877 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
1878
1879 * Version 2.7.7 (released 2009-04-20)
1880
1881 ** libgnutls: Applied patch by Cedric Bail to add functions
1882 gnutls_x509_crt_verify_hash() and gnutls_x509_crt_get_verify_algorithm().
1883
1884 ** gnutls.pc: Add -ltasn1 to 'pkg-config --libs --static gnutls' output.
1885 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
1886 <http://article.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3467>.
1887
1888 ** minitasn1: Internal copy updated to libtasn1 v1.8.
1889 GnuTLS is also internally ready to be used with libtasn1 v2.0.
1890
1891 ** doc: Fix build failure of errcodes/printlist.
1892 Reported by Roman Bogorodskiy <novel@FreeBSD.org> in
1893 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3435>.
1894
1895 ** i18n: The GnuTLS gettext domain is now 'libgnutls' instead of 'gnutls'.
1896 It is currently only used by the core library.  This will enable a new
1897 domain 'gnutls' for translations of the command line tools.
1898
1899 ** Corrected possible memory corruption on signature verification failure. 
1900 Reported by Miroslav Kratochvil <exa.exa@gmail.com>
1901
1902 ** API and ABI modifications:
1903 gnutls_x509_crt_verify_hash: ADDED
1904 gnutls_x509_crt_get_verify_algorithm: ADDED
1905
1906 * Version 2.7.6 (released 2009-02-27)
1907
1908 ** certtool: Query for multiple dnsName subjectAltName in interactive mode.
1909 This applies both to generating certificates and certificate requests.
1910
1911 ** pkix.asn: Removed unneeded definitions to reduce memory usage.
1912
1913 ** gnutls-cli: No longer accepts V1 CAs by default during X.509 chain verify.
1914 Use --priority NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT to permit V1 CAs to
1915 be used for chain verification.
1916
1917 ** gnutls-serv: No longer disable MAC padding by default.
1918 Use --priority NORMAL:%COMPAT to disable MAC padding again.
1919
1920 ** gnutls-cli: Certificate information output format changed.
1921 The tool now uses libgnutls' functions to print certificate
1922 information.  This avoids code duplication.
1923
1924 ** libgnutls: New priority strings %VERIFY_ALLOW_SIGN_RSA_MD5
1925 ** and %VERIFY_ALLOW_X509_V1_CA_CRT.
1926 They can be used to override the default certificate chain validation
1927 behaviour.
1928
1929 ** libgnutls: Added %SSL3_RECORD_VERSION priority string that allows to 
1930 specify the client hello message record version. Used to overcome buggy 
1931 TLS servers. Report by Martin von Gagern.
1932
1933 ** libgnutls: gnutls_x509_crt_print prints signature algorithm in oneline mode.
1934
1935 ** libgnutls: gnutls_openpgp_crt_print supports oneline mode.
1936
1937 ** doc: Update gnutls-cli and gnutls-serv --help output descriptions.
1938
1939 ** API and ABI modifications:
1940 No changes since last version.
1941
1942 * Version 2.7.5 (released 2009-02-06)
1943
1944 ** libgnutls: Accept chains where intermediary certs are trusted.
1945 Before GnuTLS needed to validate the entire chain back to a
1946 self-signed certificate.  GnuTLS will now stop looking when it has
1947 found an intermediary trusted certificate.  The new behaviour is
1948 useful when chains, for example, contains a top-level CA, an
1949 intermediary CA signed using RSA-MD5, and an end-entity certificate.
1950 To avoid chain validation errors due to the RSA-MD5 cert, you can
1951 explicitly add the intermediary RSA-MD5 cert to your trusted certs.
1952 The signature on trusted certificates are not checked, so the chain
1953 has a chance to validate correctly.  Reported by "Douglas E. Engert"
1954 <deengert@anl.gov> in
1955 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
1956
1957 ** libgnutls: result_size in gnutls_hex_encode now holds
1958 the size of the result. Report by John Brooks <special@dereferenced.net>.
1959
1960 ** libgnutls: gnutls_handshake when sending client hello during a
1961 rehandshake, will not offer a version number larger than the current.
1962 Reported by Tristan Hill <stan@saticed.me.uk>.
1963
1964 ** libgnutls: Permit V1 Certificate Authorities properly.
1965 Before they were mistakenly rejected even though
1966 GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT and/or
1967 GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT were supplied.  Reported by
1968 "Douglas E. Engert" <deengert@anl.gov> in
1969 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
1970
1971 ** API and ABI modifications:
1972 No changes since last version.
1973
1974 * Version 2.7.4 (released 2009-01-07)
1975
1976 ** libgnutls: deprecate X.509 validation chains using MD5 and MD2 signatures.
1977 This is a bugfix -- the previous attempt to do this from internal x509
1978 certificate verification procedures did not return the correct value
1979 for certificates using a weak hash.  Reported by Daniel Kahn Gillmor
1980 <dkg@fifthhorseman.net> in
1981 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3332>,
1982 debugged and patch by Tomas Mraz <tmraz@redhat.com> and Daniel Kahn
1983 Gillmor <dkg@fifthhorseman.net>.
1984
1985 ** libgnutls: New interface to get key id for certificate requests.
1986 Patch from David Marín Carreño <davefx@gmail.com> in
1987 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3321>.
1988
1989 ** libgnutls: gnutls_x509_crq_print will now also print public key id.
1990
1991 ** certtool: --verify-chain now prints results of using library verification.
1992 Earlier, certtool --verify-chain used its own validation algorithm
1993 which wasn't guaranteed to give the same result as the libgnutls
1994 internal validation algorithm.  Now this command print a new final
1995 line with header 'Chain verification output:' that contains the result
1996 from using the internal verification algorithm on the same chain.
1997
1998 ** tests: Add crq_key_id self-test of gnutls_x509_crq_get_key_id.
1999
2000 ** API and ABI modifications:
2001 gnutls_x509_crq_get_key_id: ADDED.
2002
2003 * Version 2.7.3 (released 2008-12-10)
2004
2005 ** libgnutls: Fix chain verification for chains that ends with RSA-MD2 CAs.
2006 Reported by Michael Kiefer <Michael-Kiefer@web.de> in
2007 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507633> forwarded by
2008 Andreas Metzler <ametzler@downhill.at.eu.org> in
2009 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3309>.
2010
2011 ** libgnutls: Libgcrypt initialization changed.
2012 If libgcrypt has not already been initialized, GnuTLS will now
2013 initialize libgcrypt with disabled secure memory.  Initialize
2014 libgcrypt explicitly in your application if you want to enable secure
2015 memory.  Before GnuTLS initialized libgcrypt to use GnuTLS's memory
2016 allocation functions, which doesn't use secure memory, so there is no
2017 real change in behaviour.
2018
2019 ** libgnutls: Fix memory leak in PSK authentication.
2020 Reported by Michael Weiser <michael@weiser.dinsnail.net> in
2021 <http://permalink.gmane.org/gmane.network.gnutls.general/1465>.
2022
2023 ** libgnutls: Small byte reads via gnutls_record_recv() optimized.
2024
2025 ** certtool: Move gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0) call earlier.
2026 It needs to be invoked before libgcrypt is initialized.
2027
2028 ** gnutls-cli: Return non-zero exit code on error conditions.
2029
2030 ** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
2031
2032 ** tests: Added chainverify self-test that tests X.509 chain verifications.
2033
2034 ** API and ABI modifications:
2035 No changes since last version.
2036
2037 * Version 2.7.2 (released 2008-11-18)
2038
2039 ** libgnutls: Fix X.509 certificate chain validation error. [GNUTLS-SA-2008-3]
2040 The flaw makes it possible for man in the middle attackers (i.e.,
2041 active attackers) to assume any name and trick GnuTLS clients into
2042 trusting that name.  Thanks for report and analysis from Martin von
2043 Gagern <Martin.vGagern@gmx.net>.  [CVE-2008-4989]
2044
2045 Any updates with more details about this vulnerability will be added
2046 to <http://www.gnu.org/software/gnutls/security.html>
2047
2048 ** libgnutls: Fix namespace issue with version symbols.
2049 The symbols LIBGNUTLS_VERSION, LIBGNUTLS_VERSION_MAJOR,
2050 LIBGNUTLS_VERSION_MINOR, LIBGNUTLS_VERSION_PATCH, and
2051 LIBGNUTLS_VERSION_NUMBER were renamed to GNUTLS_VERSION_NUMBER,
2052 GNUTLS_VERSION_MAJOR, GNUTLS_VERSION_MINOR, GNUTLS_VERSION_PATCH, and
2053 GNUTLS_VERSION_NUMBER respectively.  The old symbols will continue to
2054 work but are deprecated.
2055
2056 ** certtool: allow setting arbitrary key purpose object identifiers.
2057
2058 ** libgnutls: Fix detection of C99 macros, to make debug logging work again.
2059
2060 ** libgnutls: Add missing prototype for gnutls_srp_set_prime_bits.
2061 Reported by Kevin Quick <quick@sparq.org> in
2062 <https://savannah.gnu.org/support/index.php?106454>.
2063
2064 ** libgnutls-extra: Make building with LZO compression work again.
2065 Build failure reported by Arfrever Frehtes Taifersar Arahesis
2066 <arfrever.fta@gmail.com> in
2067 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3194>.
2068
2069 ** libgnutls: Change detection of when to use a linker version script.
2070 Use --enable-ld-version-script or --disable-ld-version-script to
2071 override auto-detection logic.
2072
2073 ** doc: Change license on the manual to GFDLv1.3+.
2074
2075 ** doc: GTK-DOC fixes for new splitted configuration system.
2076
2077 ** doc: Texinfo stylesheet uses white background.
2078
2079 ** tests: Add cve-2008-4989.c self-test.
2080 Tests regressions of the GNUTLS-SA-2008-3 security problem, and the
2081 follow-on problem with crashes on length 1 certificate chains.
2082
2083 ** gnulib: Deprecated modules removed.
2084 Modules include memchr and memcmp.
2085
2086 ** Fix warnings and build GnuTLS with more warnings enabled.
2087
2088 ** minitasn1: Internal copy updated to libtasn1 v1.7.
2089
2090 ** API and ABI modifications:
2091 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
2092 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_VERSION.
2093 GNUTLS_VERSION_MAJOR: ADDED, replaces LIBGNUTLS_VERSION_MAJOR.
2094 GNUTLS_VERSION_MINOR: ADDED, replaces LIBGNUTLS_VERSION_MINOR.
2095 GNUTLS_VERSION_PATCH: ADDED, replaces LIBGNUTLS_VERSION_PATCH.
2096 GNUTLS_VERSION_NUMBER: ADDED, replaces LIBGNUTLS_VERSION_NUMBER.
2097 LIBGNUTLS_VERSION: DEPRECATED.
2098 LIBGNUTLS_VERSION_MAJOR: DEPRECATED.
2099 LIBGNUTLS_VERSION_MINOR: DEPRECATED.
2100 LIBGNUTLS_VERSION_PATCH: DEPRECATED.
2101 LIBGNUTLS_VERSION_NUMBER: DEPRECATED.
2102
2103 * Version 2.7.1 (released 2008-10-31)
2104
2105 ** certtool: print a PKCS #8 key even if it is not encrypted.
2106
2107 ** Old libgnutls.m4 and libgnutls-config scripts removed.
2108 Please use pkg-config instead.
2109
2110 ** Configuration system modified.
2111 There is now a configure script in lib/ and libextra/ as well, because
2112 gnulib works better with a config.h per gnulib directory.
2113
2114 ** API and ABI modifications:
2115 No changes since last version.
2116
2117 * Version 2.7.0 (released 2008-10-16)
2118
2119 ** libgnutls: Added functions to handle CRL extensions.
2120
2121 ** libgnutls: Added functions to handle X.509 extensions in Certificate
2122 Requests.
2123
2124 ** libgnutls: Improved error string for GNUTLS_E_AGAIN.
2125 Suggested by "Lavrentiev, Anton (NIH/NLM/NCBI) [C]" <lavr@ncbi.nlm.nih.gov>.
2126
2127 ** certtool: Print and set CRL and CRQ extensions.
2128
2129 ** libgnutls-extra: Protect internal symbols with static.
2130 Fixes problem when linking certtool statically.  Tiny patch from Aaron
2131 Ucko <ucko@ncbi.nlm.nih.gov>.
2132
2133 ** libgnutls-openssl: fix out of bounds access.
2134 Problem in X509_get_subject_name and X509_get_issuer_name.  Tiny patch
2135 from Thomas Viehmann <tv@beamnet.de>.
2136
2137 ** libgnutlsxx: Define server_session::get_srp_username even if no SRP.
2138
2139 ** tests: Make tests compile when using internal libtasn1.
2140 Patch by ludo@gnu.org (Ludovic Courtès).
2141
2142 ** Changed detection of libtasn1 and libgcrypt to avoid depending on *-config.
2143 We now require a libgcrypt that has Camellia constants declared in
2144 gcrypt.h, which means v1.3.0 or later.
2145
2146 ** API and ABI modifications:
2147 gnutls_x509_crl_get_authority_key_id: ADDED
2148 gnutls_x509_crl_get_number: ADDED
2149 gnutls_x509_crl_get_extension_oid: ADDED
2150 gnutls_x509_crl_get_extension_info: ADDED
2151 gnutls_x509_crl_get_extension_data: ADDED
2152 gnutls_x509_crl_set_authority_key_id: ADDED
2153 gnutls_x509_crl_set_number: ADDED
2154 gnutls_x509_crq_get_key_rsa_raw: ADDED
2155 gnutls_x509_crq_get_attribute_info: ADDED
2156 gnutls_x509_crq_get_attribute_data: ADDED
2157 gnutls_x509_crq_get_extension_info: ADDED
2158 gnutls_x509_crq_get_extension_data: ADDED
2159 gnutls_x509_crq_get_key_usage: ADDED
2160 gnutls_x509_crq_get_basic_constraints: ADDED
2161 gnutls_x509_crq_get_subject_alt_name: ADDED
2162 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
2163 gnutls_x509_crq_get_extension_by_oid: ADDED
2164 gnutls_x509_crq_set_subject_alt_name: ADDED
2165 gnutls_x509_crq_set_basic_constraints: ADDED
2166 gnutls_x509_crq_set_key_usage: ADDED
2167 gnutls_x509_crq_get_key_purpose_oid: ADDED
2168 gnutls_x509_crq_set_key_purpose_oid: ADDED
2169 gnutls_x509_crq_print: ADDED
2170 gnutls_x509_crt_set_crq_extensions: ADDED
2171
2172 * Version 2.6.6 (released 2009-04-30)
2173
2174 ** libgnutls: Corrected double free on signature verification failure.
2175 Reported by Miroslav Kratochvil <exa.exa@gmail.com>.  See the advisory
2176 for more details.  [GNUTLS-SA-2009-1] [CVE-2009-1415]
2177
2178 ** libgnutls: Fix DSA key generation.
2179 Noticed when investigating the previous GNUTLS-SA-2009-1 problem.  All
2180 DSA keys generated using GnuTLS 2.6.x are corrupt.  See the advisory
2181 for more details.  [GNUTLS-SA-2009-2] [CVE-2009-1416]
2182
2183 ** libgnutls: Check expiration/activation time on untrusted certificates.
2184 Reported by Romain Francoise <romain@orebokech.com>.  Before the
2185 library did not check activation/expiration times on certificates, and
2186 was documented as not doing so.  We have realized that many
2187 applications that use libgnutls, including gnutls-cli, fail to perform
2188 proper checks.  Implementing similar logic in all applications leads
2189 to code duplication.  Hence, we decided to check whether the current
2190 time (as reported by the time function) is within the
2191 activation/expiration period of certificates when verifying untrusted
2192 certificates.
2193
2194 This changes the semantics of gnutls_x509_crt_list_verify, which in
2195 turn is used by gnutls_certificate_verify_peers and
2196 gnutls_certificate_verify_peers2.  We add two new
2197 gnutls_certificate_status_t codes for reporting the new error
2198 condition, GNUTLS_CERT_NOT_ACTIVATED and GNUTLS_CERT_EXPIRED.  We also
2199 add a new gnutls_certificate_verify_flags flag,
2200 GNUTLS_VERIFY_DISABLE_TIME_CHECKS, that can be used to disable the new
2201 behaviour.
2202
2203 More details about the vulnerabilities will be posted at
2204 <http://www.gnu.org/software/gnutls/security.html>.
2205
2206 ** gnutls-cli, gnutls-cli-debug: Fix AIX build problem.
2207 Reported by LAUPRETRE François (P) <francois.laupretre@ratp.fr> in
2208 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3468>.
2209
2210 ** tests: Fix linking of tests/openpgp/keyring self-test.
2211 Reported by Daniel Black in <https://savannah.gnu.org/support/?106543>.
2212
2213 ** API and ABI modifications:
2214 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
2215 gnutls_certificate_verify_peers: Likewise.
2216 gnutls_certificate_verify_peers2: Likewise.
2217 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
2218 GNUTLS_CERT_EXPIRED: ADDED.
2219 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
2220
2221 * Version 2.6.5 (released 2009-04-11)
2222
2223 ** libgnutls: Added %SSL3_RECORD_VERSION priority string that allows to
2224 specify the client hello message record version. Used to overcome buggy
2225 TLS servers. Report by Martin von Gagern.
2226
2227 ** GnuTLS no longer uses the libtasn1-config script to find libtasn1.
2228 Libtasn1 0.3.4 or later is required.  This is to align with the
2229 upcoming libtasn1 v2.0 release that doesn't have a libtasn1-script.
2230
2231 ** API and ABI modifications:
2232 No changes since last version.
2233
2234 * Version 2.6.4 (released 2009-02-06)
2235
2236 ** libgnutls: Accept chains where intermediary certs are trusted.
2237 Before GnuTLS needed to validate the entire chain back to a
2238 self-signed certificate.  GnuTLS will now stop looking when it has
2239 found an intermediary trusted certificate.  The new behaviour is
2240 useful when chains, for example, contains a top-level CA, an
2241 intermediary CA signed using RSA-MD5, and an end-entity certificate.
2242 To avoid chain validation errors due to the RSA-MD5 cert, you can
2243 explicitly add the intermediary RSA-MD5 cert to your trusted certs.
2244 The signature on trusted certificates are not checked, so the chain
2245 has a chance to validate correctly.  Reported by "Douglas E. Engert"
2246 <deengert@anl.gov> in
2247 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
2248
2249 ** libgnutls: result_size in gnutls_hex_encode now holds
2250 the size of the result. Report by John Brooks <special@dereferenced.net>.
2251
2252 ** libgnutls: gnutls_handshake when sending client hello during a
2253 rehandshake, will not offer a version number larger than the current.
2254 Reported by Tristan Hill <stan@saticed.me.uk>.
2255
2256 ** libgnutls: Permit V1 Certificate Authorities properly.
2257 Before they were mistakenly rejected even though
2258 GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT and/or
2259 GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT were supplied.  Reported by
2260 "Douglas E. Engert" <deengert@anl.gov> in
2261 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
2262
2263 ** libgnutls: deprecate X.509 validation chains using MD5 and MD2 signatures.
2264 This is a bugfix -- the previous attempt to do this from internal x509
2265 certificate verification procedures did not return the correct value
2266 for certificates using a weak hash.  Reported by Daniel Kahn Gillmor
2267 <dkg@fifthhorseman.net> in
2268 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3332>,
2269 debugged and patch by Tomas Mraz <tmraz@redhat.com> and Daniel Kahn
2270 Gillmor <dkg@fifthhorseman.net>.
2271
2272 ** libgnutls: Fix compile error with Sun CC.
2273 Reported by Jeff Cai <jeff.cai@sun.com> in
2274 <https://savannah.gnu.org/support/?106549>.
2275
2276 ** API and ABI modifications:
2277 No changes since last version.
2278
2279 * Version 2.6.3 (released 2008-12-12)
2280
2281 ** libgnutls: Fix chain verification for chains that ends with RSA-MD2 CAs.
2282 Reported by Michael Kiefer <Michael-Kiefer@web.de> in
2283 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507633> forwarded by
2284 Andreas Metzler <ametzler@downhill.at.eu.org> in
2285 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3309>.
2286
2287 ** libgnutls: Fix memory leak in PSK authentication.
2288 Reported by Michael Weiser <michael@weiser.dinsnail.net> in
2289 <http://permalink.gmane.org/gmane.network.gnutls.general/1465>.
2290
2291 ** certtool: Move gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0) call earlier.
2292 It needs to be invoked before libgcrypt is initialized.
2293
2294 ** gnutls-cli: Return non-zero exit code on error conditions.
2295
2296 ** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
2297
2298 ** API and ABI modifications:
2299 No changes since last version.
2300
2301 * Version 2.6.2 (released 2008-11-12)
2302
2303 ** libgnutls: Fix crash in X.509 validation code for self-signed certificates.
2304 The patch to fix the security problem GNUTLS-SA-2008-3 introduced a
2305 problem for certificate chains that contained just one self-signed
2306 certificate.  Reported by Michael Meskes <meskes@debian.org> in
2307 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505279>.
2308
2309 ** API and ABI modifications:
2310 No changes since last version.
2311
2312 * Version 2.6.1 (released 2008-11-10)
2313
2314 ** libgnutls: Fix X.509 certificate chain validation error. [GNUTLS-SA-2008-3]
2315 The flaw makes it possible for man in the middle attackers (i.e.,
2316 active attackers) to assume any name and trick GnuTLS clients into
2317 trusting that name.  Thanks for report and analysis from Martin von
2318 Gagern <Martin.vGagern@gmx.net>.  [CVE-2008-4989]
2319
2320 Any updates with more details about this vulnerability will be added
2321 to <http://www.gnu.org/software/gnutls/security.html>
2322
2323 ** libgnutls: Add missing prototype for gnutls_srp_set_prime_bits.
2324 Reported by Kevin Quick <quick@sparq.org> in
2325 <https://savannah.gnu.org/support/index.php?106454>.
2326
2327 ** libgnutls-extra: Protect internal symbols with static.
2328 Fixes problem when linking certtool statically.  Tiny patch from Aaron
2329 Ucko <ucko@ncbi.nlm.nih.gov>.
2330
2331 ** libgnutls-openssl: Fix patch against X509_get_issuer_name.
2332 It incorrectly returned the subject DN instead of issuer DN in v2.6.0.
2333 Thanks to Thomas Viehmann <tv@beamnet.de> for report.
2334
2335 ** certtool: Print a PKCS #8 key even if it is not encrypted.
2336
2337 ** tests: Make tests compile when using internal libtasn1.
2338 Patch by ludo@gnu.org (Ludovic Courtès).
2339
2340 ** API and ABI modifications:
2341 No changes since last version.
2342
2343 * Version 2.6.0 (released 2008-10-06)
2344
2345 ** libgnutls: Correct printing and parsing of IPv6 addresses.
2346
2347 ** libgnutls-openssl: fix out of bounds access.
2348 Problem in X509_get_subject_name and X509_get_issuer_name.  Tiny patch
2349 from Thomas Viehmann <tv@beamnet.de>.
2350
2351 ** certtool: Use inet_pton for parsing IPv6 addresses.
2352
2353 ** Major changes compared to the v2.4 branch:
2354
2355 *** Added API to replace and update the crypto backend.
2356
2357 *** certtool: can add several subject alternative names via template file.
2358
2359 *** opencdk: Parse (but not decrypt) encrypted secret keys.
2360
2361 *** libgnutls: gnutls_x509_crt_set_subject_alt_name() was added that can
2362 either set or append alternative names. It can also handle binary structures
2363 such as IP addresses.
2364
2365 *** libgnutls: New function to set minimum acceptable SRP bits.
2366 The function is gnutls_srp_set_prime_bits.
2367
2368 *** libgnutls: Add interface to deal with public key and signature algorithms.
2369 The functions are called gnutls_pk_list, gnutls_pk_get_id,
2370 gnutls_sign_list, and gnutls_sign_get_id.
2371
2372 *** libgnutls: New interfaces to get name of public key and signing algorithms.
2373 The functions are gnutls_sign_get_name and gnutls_pk_get_name.
2374
2375 *** libgnutls: New API to get a string corresponding to a error symbol.
2376 The function is gnutls_strerror_name.
2377
2378 *** libgnutls: New API to set the public parameters in a certificate request
2379 *** from a private key.
2380 The function is gnutls_x509_crq_set_key_rsa_raw.
2381
2382 *** libgnutls: New API to set a callback to extract TLS Finished data.
2383 The function to register is gnutls_session_set_finished_function and
2384 it takes a callback of the gnutls_finished_callback_func type.
2385
2386 *** libgnutls: Fix namespace problem with TLS_MASTER_SIZE and TLS_RANDOM_SIZE.
2387
2388 *** libgnutls: New interface to register a new TLS extension handler.
2389 The new function gnutls_ext_register can be used to register handlers
2390 for specific TLS extension types.  The callback functions have the new
2391 types gnutls_ext_recv_func and gnutls_ext_send_func.  A type to
2392 classify TLS extensions, gnutls_ext_parse_type_t, has been added as
2393 well.
2394
2395 *** libgnutls-extra: Add function to work with Libgcrypt in FIPS mode.
2396 The function is gnutls_register_md5_handler.  When libgcrypt is in
2397 FIPS mode, MD5 is disabled, but TLS normally requires use of MD5 in
2398 the PRF.
2399
2400 *** API/ABI changes in GnuTLS 2.6
2401 No functions have been removed or modified.  The library should be
2402 fully backwards compatible on both the source and binary level.
2403
2404 A new header file <gnutls/crypto.h> have been added.  It contains
2405 definitions related to replacing the internal crypto functionality.
2406 All definitions and the header itself is experimental but supported.
2407
2408 We have realized that the symbols TLS_MASTER_SIZE and TLS_RANDOM_SIZE
2409 does not use the normal namespace.  We have added GNUTLS_MASTER_SIZE
2410 and GNUTLS_RANDOM_SIZE, but the old symbols are still defined.
2411
2412 The following functions have been added to libgnutls:
2413
2414 GNUTLS_MASTER_SIZE
2415 GNUTLS_RANDOM_SIZE
2416 gnutls_crypto_bigint_register2
2417 gnutls_crypto_cipher_register2
2418 gnutls_crypto_digest_register2
2419 gnutls_crypto_mac_register2
2420 gnutls_crypto_pk_register2
2421 gnutls_crypto_rnd_register2
2422 gnutls_crypto_single_cipher_register2
2423 gnutls_crypto_single_digest_register2
2424 gnutls_crypto_single_mac_register2
2425 gnutls_ext_register
2426 gnutls_pk_get_id
2427 gnutls_pk_get_name
2428 gnutls_pk_list
2429 gnutls_session_set_finished_function
2430 gnutls_sign_get_id
2431 gnutls_sign_get_name
2432 gnutls_sign_list
2433 gnutls_srp_set_prime_bits:
2434 gnutls_strerror_name
2435 gnutls_x509_crq_set_key_rsa_raw
2436 gnutls_x509_crt_set_crl_dist_points2
2437 gnutls_x509_crt_set_subject_alt_name
2438
2439 The following functions have been added to libgnutls-extra:
2440
2441 gnutls_register_md5_handler
2442
2443 ** API and ABI modifications:
2444 No changes since last version.
2445
2446 * Version 2.5.9 (released 2008-09-29)
2447
2448 ** libgnutls: Fix several memory leaks.
2449 Reported by Sam Varshavchik <mrsam@courier-mta.com>.
2450
2451 ** libgnutls: Fix buffer overrun in gnutls_x509_crt_list_import.
2452 Report and patch by Jonathan Manktelow.
2453
2454 ** libgnutls: crypto.h gnutls_pk_params_st changes allocation strategy.
2455 The parameters are now allocated in the structure itself.
2456
2457 ** doc: Texinfo HTML manual uses a stylesheet to improve readability.
2458
2459 ** tests: Scripts now use EXEEXT properly.
2460 Modern libtool doesn't create wrapper script, so the self tests need
2461 to invoke certtool.exe under MinGW32+Wine.
2462
2463 ** Uses autoconf 2.63, automake 1.10.1, libtool 2.2.6a.
2464 Automake warnings are now also enabled.
2465
2466 ** API and ABI modifications:
2467 gnutls_pk_params_st: MODIFIED
2468
2469 * Version 2.5.8 (released 2008-09-21)
2470
2471 ** certtool: updated so it can add several subject alternative names using
2472 the template file.
2473
2474 ** libgnutls: gnutls_x509_crt_set_subject_alt_name() was added that can
2475 either set or append alternative names. It can also handle binary structures
2476 such as IP addresses.
2477
2478 ** libgnutls: Fix crash in hashing code when using non-libgcrypt handlers.
2479
2480 ** libgnutls: New function to set minimum acceptable SRP bits.
2481 The function is gnutls_srp_set_prime_bits.  Tiny patch by Kevin Quick
2482 <quick@sparq.org> in <https://savannah.gnu.org/support/index.php?106454>.
2483
2484 ** libgnutls: Check for overflows in gnutls_calloc and gnutls_secure_calloc.
2485 Also fix overflows in calls to those functions.  Reported by Werner
2486 Koch <wk@gnupg.org>.
2487
2488 ** libgnutls-extra: Add function to work with Libgcrypt in FIPS mode.
2489 The function is gnutls_register_md5_handler.  When libgcrypt is in
2490 FIPS mode, MD5 is disabled, but TLS normally requires use of MD5 in
2491 the PRF.
2492
2493 ** Opencdk: Add calls to gnutls_assert to ease debugging.
2494
2495 ** Indent code.
2496
2497 ** API and ABI modifications:
2498 gnutls_srp_set_prime_bits: ADDED
2499 gnutls_register_md5_handler: ADDED
2500 gnutls_x509_crt_set_crl_dist_points2: ADDED
2501 gnutls_x509_crt_set_subject_alt_name: ADDED
2502
2503 * Version 2.5.7 (released 2008-09-16)
2504
2505 ** libgnutls: New interfaces to get name of public key and signing algorithms.
2506 The functions are gnutls_sign_get_name and gnutls_pk_get_name.
2507
2508 ** libgnutls: Don't crash when gnutls_credentials_set is called twice.
2509
2510 ** libgnutls: Fix libgnutls shared library version.
2511 It wasn't properly incremented after adding symbols in the last
2512 release.
2513
2514 ** manual: Now mention supported public key and public key signing algorithms.
2515
2516 ** tests/openssl: initialize gnutls before use.
2517
2518 ** tests/setcredcrash: New test to catch regressions of gnutls_credentials_set.
2519
2520 ** GTK-DOC manual: mention new symbols in 2.6.x.  Mention crypto.h functions.
2521
2522 ** API and ABI modifications:
2523 gnutls_sign_get_name: ADDED
2524 gnutls_pk_get_name: ADDED
2525
2526 * Version 2.5.6 (released 2008-09-08)
2527
2528 ** libgnutls: Add interface to deal with public key and signature algorithms.
2529 The functions are called gnutls_pk_list, gnutls_pk_get_id,
2530 gnutls_sign_list, and gnutls_sign_get_id.  Suggested by Sam
2531 Varshavchik <mrsam@courier-mta.com>.
2532
2533 ** libgnutls: Refactor and clean up some code.
2534
2535 ** libgnutls: Fix compile error with Sun CC.
2536
2537 ** gnutls-cli: Improve --list output to include public key and signature algs.
2538
2539 ** gnutls-cli, gnutls-serv: Remove --copyright parameter.
2540 Use standard --version to get license info.
2541
2542 ** gnutls-cli.1: Document all new parameters.
2543 Thanks to James Westby <jw+debian@jameswestby.net>.
2544
2545 ** tests: New self-test pgps2kgnu to test parsing of encrypted secrets.
2546 Contributed by Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
2547
2548 ** API and ABI modifications:
2549 gnutls_pk_list: ADDED
2550 gnutls_pk_get_id: ADDED
2551 gnutls_sign_list: ADDED
2552 gnutls_sign_get_id: ADDED
2553
2554 * Version 2.5.5 (released 2008-08-29)
2555
2556 ** libgnutls: New API to get a string corresponding to a error symbol.
2557 The function is gnutls_strerror_name.
2558
2559 ** libgnutls: Fix include paths so that building with internal libtasn1 works.
2560 Reported by "jth.net ApS" <info@jth.net>.
2561
2562 ** libgnutls: Fix segmentation fault when generating private keys.
2563 Reported by Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
2564
2565 ** libgnutls: Remove code to import certificate chains in PKCS#7 format.
2566 The code has not worked since v0.9.0 and apparently nobody has missed
2567 it, so we decided to remove the code rather than fix it.  If you have
2568 old certificate chains stored in PKCS#7 format, you can convert them
2569 to a list of PEM certificates by using 'certtool --p7-info'.  Reported
2570 by Christian Grothoff <christian@grothoff.org>.
2571
2572 ** opencdk: Parse (but not decrypt) encrypted secret keys.
2573 Contributed by Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
2574
2575 ** libgnutls: Fix many warnings.
2576
2577 ** Included copy of libtasn1 is upgraded to version 1.5.
2578
2579 ** Add French translation, thanks to Nicolas Provost.
2580
2581 ** API and ABI modifications:
2582 gnutls_strerror_name: ADDED
2583
2584 * Version 2.5.4 (released 2008-08-19)
2585
2586 ** Fix secure memory initialization of libgcrypt.
2587 Reported by Joe Orton <joe@manyfish.co.uk> in
2588 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2992>.
2589
2590 ** Doc fixes.
2591 Reference to NIST SP 800-57 in the manual on key size recommendations.
2592 Added 'Since:' tags to new APIs for gtk-doc.
2593
2594 ** API and ABI modifications:
2595 No changes since last version.
2596
2597 * Version 2.5.3 (released 2008-08-14)
2598
2599 ** libgnutls: New API to set the public parameters in a certificate request
2600 ** from a private key.
2601 The function is gnutls_x509_crq_set_key_rsa_raw.  Inspired by
2602 discussion with "Zach C." <fxchip@gmail.com>.
2603
2604 ** libgnutls: New API to set a callback to extract TLS Finished data.
2605 The function to register is gnutls_session_set_finished_function and
2606 it takes a callback of the gnutls_finished_callback_func type.
2607
2608 ** libgnutls: Drop final comma after GNUTLS_CRT_PRINT_UNSIGNED_FULL in enum.
2609 Reported in <https://savannah.gnu.org/support/?106453>.
2610
2611 ** libgnutls: Fix namespace problem with TLS_MASTER_SIZE and TLS_RANDOM_SIZE.
2612 The new names are GNUTLS_MASTER_SIZE and GNUTLS_RANDOM_SIZE.  The old
2613 names are mapped to the new names in compat.h.  These mappings will
2614 likely be removed more quickly than other mappings in that file due to
2615 the namespace violation.
2616
2617 ** libgnutlsxx: Make it build when SRP is disabled.
2618
2619 ** doc: Add doxygen files in doc/doxygen/.
2620
2621 ** API and ABI modifications:
2622 gnutls_x509_crq_set_key_rsa_raw: ADDED
2623 gnutls_session_set_finished_function: ADDED
2624 gnutls_finished_callback_func: ADDED
2625 GNUTLS_MASTER_SIZE: ADDED
2626 GNUTLS_RANDOM_SIZE: ADDED
2627 TLS_MASTER_SIZE: DEPRECATED
2628 TLS_RANDOM_SIZE: DEPRECATED
2629
2630 * Version 2.5.2 (released 2008-07-08)
2631
2632 ** libgnutls: Fix bug in gnutls_dh_params_generate2.
2633 The prime and generator was swapped.
2634
2635 ** libgnutls: New interface to register a new TLS extension handler.
2636 The new function gnutls_ext_register can be used to register handlers
2637 for specific TLS extension types.  The callback functions have the new
2638 types gnutls_ext_recv_func and gnutls_ext_send_func.  A type to
2639 classify TLS extensions, gnutls_ext_parse_type_t, has been added as
2640 well.
2641
2642 ** Move more code for TLS/IA extension from libgnutls to libgnutls-extra.
2643 This was made possible by using the new gnutls_ext_register interface.
2644 The TLS/IA functionality has only been supported through the
2645 libgnutls-extra library, so it makes sense for the code to belong
2646 there too.
2647
2648 ** API and ABI modifications:
2649 gnutls_ext_recv_func: ADDED
2650 gnutls_ext_send_func: ADDED
2651 gnutls_ext_parse_type_t: ADDED
2652 gnutls_ext_register: ADDED
2653
2654 * Version 2.5.1 (released 2008-07-02)
2655
2656 ** Indent code.
2657
2658 ** API and ABI modifications:
2659 No changes since last version.
2660
2661 * Version 2.5.0 (released 2008-07-02)
2662
2663 ** Port fixes from v2.4.1 release, see below.
2664
2665 ** Added API to replace and update the crypto backend.
2666 The header gnutls/crypto.h is now officially supported, and declares
2667 the symbols below.
2668
2669 ** Rewritten opencdk crypto backend, to use the gnutls internal one.
2670
2671 ** Update gnulib and translations.
2672 The gnulib gc crypto code has been removed since it was never finished
2673 and is no longer even used.  An internal non-libgcrypt crypto
2674 implementation may be added in the future, but we'll decide that later
2675 on.
2676
2677 ** API and ABI modifications:
2678 gnutls_crypto_bigint_register2: ADDED.
2679 gnutls_crypto_cipher_register2: ADDED.
2680 gnutls_crypto_digest_register2: ADDED.
2681 gnutls_crypto_mac_register2: ADDED.
2682 gnutls_crypto_pk_register2: ADDED.
2683 gnutls_crypto_rnd_register2: ADDED.
2684 gnutls_crypto_single_cipher_register2: ADDED.
2685 gnutls_crypto_single_digest_register2: ADDED.
2686 gnutls_crypto_single_mac_register2: ADDED.
2687
2688 * Version 2.4.3 (released 2009-02-06)
2689
2690 ** libgnutls: Accept chains where intermediary certs are trusted.
2691 Before GnuTLS needed to validate the entire chain back to a
2692 self-signed certificate.  GnuTLS will now stop looking when it has
2693 found an intermediary trusted certificate.  The new behaviour is
2694 useful when chains, for example, contains a top-level CA, an
2695 intermediary CA signed using RSA-MD5, and an end-entity certificate.
2696 To avoid chain validation errors due to the RSA-MD5 cert, you can
2697 explicitly add the intermediary RSA-MD5 cert to your trusted certs.
2698 The signature on trusted certificates are not checked, so the chain
2699 has a chance to validate correctly.  Reported by "Douglas E. Engert"
2700 <deengert@anl.gov> in
2701 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
2702
2703 ** libgnutls: Permit V1 Certificate Authorities properly.
2704 Before they were mistakenly rejected even though
2705 GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT and/or
2706 GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT were supplied.  Reported by
2707 "Douglas E. Engert" <deengert@anl.gov> in
2708 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
2709
2710 ** libgnutls: deprecate X.509 validation chains using MD5 and MD2 signatures.
2711 This is a bugfix -- the previous attempt to do this from internal x509
2712 certificate verification procedures did not return the correct value
2713 for certificates using a weak hash.  Reported by Daniel Kahn Gillmor
2714 <dkg@fifthhorseman.net> in
2715 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3332>,
2716 debugged and patch by Tomas Mraz <tmraz@redhat.com> and Daniel Kahn
2717 Gillmor <dkg@fifthhorseman.net>.
2718
2719 ** libgnutls: Fix chain verification for chains that ends with RSA-MD2 CAs.
2720 Reported by Michael Kiefer <Michael-Kiefer@web.de> in
2721 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507633> forwarded by
2722 Andreas Metzler <ametzler@downhill.at.eu.org> in
2723 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3309>.
2724
2725 ** libgnutls: Fix crash in X.509 validation code for self-signed certificates.
2726 The patch to fix the security problem GNUTLS-SA-2008-3 introduced a
2727 problem for certificate chains that contained just one self-signed
2728 certificate.  Reported by Michael Meskes <meskes@debian.org> in
2729 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505279>.
2730
2731 ** libgnutls: Fix X.509 certificate chain validation error. [GNUTLS-SA-2008-3]
2732 The flaw makes it possible for man in the middle attackers (i.e.,
2733 active attackers) to assume any name and trick GnuTLS clients into
2734 trusting that name.  Thanks for report and analysis from Martin von
2735 Gagern <Martin.vGagern@gmx.net>.  [CVE-2008-4989]
2736
2737 Any updates with more details about this vulnerability will be added
2738 to <http://www.gnu.org/software/gnutls/security.html>
2739
2740 ** libgnutls: Fix buffer overrun in gnutls_x509_crt_list_import.
2741 Report and patch by Jonathan Manktelow.
2742
2743 ** libgnutls: Avoid use of non-thread safe strerror.
2744
2745 ** API and ABI modifications:
2746 No changes since last version.
2747
2748 * Version 2.4.2 (released 2008-09-15)
2749
2750 ** libgnutls: Don't crash when gnutls_credentials_set is called twice.
2751
2752 ** libgnutls: Corrected memory leak in X.509 functions.
2753 Thanks to Colin Leroy <colin@colino.net>.
2754
2755 ** libgnutls: Fix compile error with Sun CC.
2756
2757 ** gnutls-cli.1: Document all new parameters.
2758 Thanks to James Westby <jw+debian@jameswestby.net>.
2759
2760 ** tests/openssl: initialize gnutls before use.
2761 Fixes crash with libgcrypt 1.4.2.  Reported by Ludovic Courtes
2762 <ludovic.courtes@laas.fr>.
2763
2764 ** doc/: Fix texinfo markup for old texinfo versions.
2765
2766 ** Included copy of libtasn1 is upgraded to version 1.5.
2767
2768 ** API and ABI modifications:
2769 No changes since last version.
2770
2771 * Version 2.4.1 (released 2008-06-30)
2772
2773 ** libgnutls: Fix local crash in gnutls_handshake.  [GNUTLS-SA-2008-2]
2774 If the gnutls_handshake function is called for a normal session, which
2775 can happen for re-handshakes, the library would crash because it tried
2776 to hash some data using a libgcrypt handle that had been deallocated.
2777 Report and tiny patch from Tomas Mraz <tmraz@redhat.com>.  Any updates
2778 with more details about this vulnerability will be added to
2779 <http://www.gnu.org/software/gnutls/security.html>
2780
2781 ** libgnutls: Fix memory leaks when doing a re-handshake.
2782 Reported by Sam Varshavchik <mrsam@courier-mta.com> in
2783 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2928>.
2784
2785 ** Fix compiler warnings.
2786 Reported by Massimo Gaspari <massimo.gaspari@alice.it> in
2787 <http://thread.gmane.org/gmane.network.gnutls.general/1281>.
2788
2789 ** Fix ordering of -I's to avoid opencdk.h conflict with system headers.
2790 Reported by Roman Bogorodskiy <novel@FreeBSD.org> in
2791 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2930>.
2792
2793 ** srptool: Fix a problem where --verify check does not succeed.
2794 Report and tiny patch by Matthias Koenig <mkoenig@suse.de> in
2795 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2944>.
2796
2797 ** API and ABI modifications:
2798 No changes since last version.
2799
2800 * Version 2.4.0 (released 2008-06-19)
2801
2802 ** Major changes compared to the v2.2 branch:
2803
2804 *** The OpenPGP sub-system has been improved and now supports subkeys.
2805
2806 *** The PSK sub-system has been improved and now supports password
2807 *** derivation and PSK identity hints.
2808 The password derivation algorithms support is documented in
2809 draft-ietf-netconf-tls-02.txt.
2810
2811 *** The certtool --inder and --outder has been replaced by --inraw and --outraw.
2812 This aligns terminology with OpenPGP, which doesn't use DER encoding.
2813 The old parameters will continue to work for some time.
2814
2815 *** Certtool now confirm passwords and changes permissions of private key files.
2816
2817 *** The default handshake size limit has been increased to 48kb.
2818 It appears as if some valid handshakes are large due to sending many
2819 CA certificates.  (The earlier limit was 16kb.)
2820
2821 *** LZO compression is now disabled by default.
2822 The main reason is that LZO compression in TLS is not standardized,
2823 but license compatiblity issues with minilzo triggered us to make this
2824 decision now.
2825
2826 *** Improvements for cross-compilation to Windows and OpenWRT.
2827
2828 *** The look of the GTK-DOC manual has been improved.
2829 Major developer visible changes compared to the v2.2 branch:
2830
2831 *** Full OpenPGP support is part of libgnutls, licensed under the LGPL.
2832
2833 *** New APIs to access the raw X.509 Subject and Issuer DN's and
2834 *** elements from the certificate credentials structure.
2835 Thanks to Joe Orton.
2836
2837 *** New APIs to improve working with username/passwords and PSK.
2838
2839 *** Names of constants to affect certificate printing changed.
2840 The constants are used for OpenPGP too, which the names didn't
2841 reflect, so the following name change has been made:
2842
2843             Old name                         New name
2844      GNUTLS_X509_CRT_FULL            GNUTLS_CRT_PRINT_FULL
2845      GNUTLS_X509_CRT_ONELINE         GNUTLS_CRT_PRINT_ONELINE
2846      GNUTLS_X509_CRT_UNSIGNED_FULL   GNUTLS_CRT_PRINT_UNSIGNED_FULL
2847
2848 The old names will be mapped to the new names for some time.
2849
2850 *** The function gnutls_openpgp_privkey_get_id has been renamed to
2851 *** gnutls_openpgp_privkey_get_key_id.
2852 A compatibility mapping exists to avoid breaking API backwards
2853 compatibility.
2854
2855 *** Replaced all uses of alloca with malloc and free.
2856
2857 *** We no longer build with -D_REENTRANT -D_THREAD_SAFE.
2858 We have been unable to find a documented rationale for this practice.
2859
2860 *** Of course, many smaller fixes have been made, see the ChangeLog file.
2861
2862 *** API/ABI changes in GnuTLS 2.4
2863 All OpenPGP related functions have been moved from libgnutls-extra to
2864 libgnutls, and several new functions have been added (see below).
2865 Before making the release, we discussed whether moving functions from
2866 libgnutls-extra to libgnutls would require us to increment the ABI
2867 version, but the general opinion was that this would not be required.
2868 All older functions continue to work the same.  We are open to the
2869 possibility that this decision will lead to problem on some platform,
2870 and if it turns out that the Right Thing should have been to increment
2871 the shared library version, we would need to release an update within
2872 the 2.4.x branch that increments the shared library version.
2873
2874 This release adds the following functions:
2875
2876   gnutls_psk_client_get_hint
2877   gnutls_psk_set_server_credentials_hint
2878   gnutls_psk_netconf_derive_key
2879
2880     Used to get/set the PSK identity hint, and derive PSK keys from
2881     passwords a'la netconf.
2882
2883   gnutls_x509_dn_deinit
2884   gnutls_x509_dn_export
2885   gnutls_x509_dn_import
2886   gnutls_x509_dn_init
2887
2888     Used to handle X.509 Certificate DN's directly.
2889
2890   gnutls_hex2bin
2891
2892     Converts a data buffer to hex.  Useful for handling PSK/SRP shared
2893     secrets.
2894
2895   gnutls_certificate_get_x509_cas
2896   gnutls_certificate_get_x509_crls
2897   gnutls_certificate_get_openpgp_keyring
2898
2899     Functions for direct access to credential elements.
2900
2901   gnutls_openpgp_crt_get_auth_subkey
2902   gnutls_openpgp_crt_get_key_id
2903   gnutls_openpgp_crt_get_pk_dsa_raw
2904   gnutls_openpgp_crt_get_pk_rsa_raw
2905   gnutls_openpgp_crt_get_preferred_key_id
2906   gnutls_openpgp_crt_get_revoked_status
2907   gnutls_openpgp_crt_get_subkey_count
2908   gnutls_openpgp_crt_get_subkey_creation_time
2909   gnutls_openpgp_crt_get_subkey_expiration_time
2910   gnutls_openpgp_crt_get_subkey_fingerprint
2911   gnutls_openpgp_crt_get_subkey_id
2912   gnutls_openpgp_crt_get_subkey_idx
2913   gnutls_openpgp_crt_get_subkey_pk_algorithm
2914   gnutls_openpgp_crt_get_subkey_pk_dsa_raw
2915   gnutls_openpgp_crt_get_subkey_pk_rsa_raw
2916   gnutls_openpgp_crt_get_subkey_revoked_status
2917   gnutls_openpgp_crt_get_subkey_usage
2918   gnutls_openpgp_crt_print
2919   gnutls_openpgp_crt_set_preferred_key_id
2920   gnutls_openpgp_keyring_get_crt
2921   gnutls_openpgp_keyring_get_crt_count
2922   gnutls_openpgp_privkey_export
2923   gnutls_openpgp_privkey_export_dsa_raw
2924   gnutls_openpgp_privkey_export_rsa_raw
2925   gnutls_openpgp_privkey_export_subkey_dsa_raw
2926   gnutls_openpgp_privkey_export_subkey_rsa_raw
2927   gnutls_openpgp_privkey_get_fingerprint
2928   gnutls_openpgp_privkey_get_key_id
2929   gnutls_openpgp_privkey_get_pk_algorithm
2930   gnutls_openpgp_privkey_get_preferred_key_id
2931   gnutls_openpgp_privkey_get_revoked_status
2932   gnutls_openpgp_privkey_get_subkey_count
2933   gnutls_openpgp_privkey_get_subkey_creation_time
2934   gnutls_openpgp_privkey_get_subkey_expiration_time
2935   gnutls_openpgp_privkey_get_subkey_fingerprint
2936   gnutls_openpgp_privkey_get_subkey_id
2937   gnutls_openpgp_privkey_get_subkey_idx
2938   gnutls_openpgp_privkey_get_subkey_pk_algorithm
2939   gnutls_openpgp_privkey_get_subkey_revoked_status
2940   gnutls_openpgp_privkey_set_preferred_key_id
2941
2942     New OpenPGP related functions.
2943
2944     The function gnutls_openpgp_crt_get_key_id is the same as the old
2945     from gnutls_openpgp_crt_get_id, see above.
2946
2947 The release also adds a new header file 'gnutls/crypto.h', however it
2948 is currently not used.
2949
2950 ** libgnutls [OpenPGP]: New APIs to retrieve fingerprint from OpenPGP subkeys.
2951 Contributed by Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>.
2952
2953 ** API and ABI modifications:
2954 gnutls_openpgp_crt_get_subkey_fingerprint: ADDED.
2955 gnutls_openpgp_privkey_get_subkey_fingerprint: ADDED.
2956
2957 * Version 2.3.15 (released 2008-06-15)
2958
2959 ** Disable the openpgp-certs self-tests.
2960 It results in failure under Wine and doesn't work on Debian buildds.
2961
2962 ** API and ABI modifications:
2963 No changes since last version.
2964
2965 * Version 2.3.14 (released 2008-06-11)
2966
2967 ** libgnutls [OpenPGP]: Changed OpenPGP verification behaviour.
2968 An OpenPGP certificate is now only considered verified if all the user
2969 IDs are verified.
2970
2971 ** Examples: Make C++ example compile.
2972 Earlier it may have failed with an unresolved reference to strlen.
2973
2974 ** Documentation: Doc fix for gnutls_x509_crt_get_extension_oid.
2975 Reported by Sam Varshavchik <mrsam@courier-mta.com>.
2976
2977 ** API and ABI modifications:
2978 No changes since last version.
2979
2980 * Version 2.3.13 (released 2008-06-07)
2981
2982 ** libgnutls [OpenPGP]: Make OpenPGP handshakes work again.
2983
2984 ** doc/: Add psktool to info index.  Some minor cleanups.
2985
2986 ** tests/: Added non-forking TLS handshake test, see tests/mini.c.
2987
2988 ** tests/: Added libgcrypt.supp which can be used with valgrind.
2989 The file suppresses the known libgcrypt memory leaks, so they aren't
2990 printed when you run valgrind on the gnutls self-tests.  Use it as
2991 follows: valgrind --suppressions=libgcrypt.supp ./x509self or add
2992 '--suppressions=/home/you/src/gnutls/tests/libgcrypt.supp' to your
2993 ~/.valgrindrc file.
2994
2995 ** tests/: Reduce amount of debugging output by default.
2996 Use --verbose for each test to get the full output.
2997
2998 ** tests/: Fix memory leaks in several self-tests.
2999 None of the self tests should be leaking memory when running valgrind
3000 or similar tools.  (Known exceptions are dhepskself, pskself, and
3001 set_pkcs12_cred, which appear likely to be due to memory leaks in the
3002 library.)
3003
3004 ** API and ABI modifications:
3005 No changes since last version.
3006
3007 * Version 2.3.12 (released 2008-06-04)
3008
3009 ** Merge gnutls_with_netconf branch.
3010
3011 *** libgnutls [PSK]: New API to retrieve PSK identity hint in client.
3012 The function is gnutls_psk_client_get_hint.
3013
3014 *** libgnutls [PSK]: New API to set PSK identity hint in server.
3015 The function is gnutls_psk_set_server_credentials_hint.
3016
3017 *** libgnutls [PSK]: Support server key exchange with PSK identity hint.
3018 In the client, the message is parsed and the application can use
3019 gnutls_psk_client_get_hint to retrieve the hint.  In the server, the
3020 message is sent if the application has specified a PSK identity hint
3021 using gnutls_psk_set_server_credentials_hint.
3022
3023 *** libgnutls [PSK]: Support Netconf PSK key derivation.
3024 The function gnutls_psk_netconf_derive_key supports the PSK key
3025 derivation as specified in draft-ietf-netconf-tls-02.txt.  New self
3026 test netconf-psk.c.
3027
3028 *** psktool: Support new --netconf-hint to generate PSK key from password.
3029 Uses the Netconf algorithm to derive PSK key from password.
3030
3031 *** gnutls-serv: Support new --pskhint parameter to set PSK identity hint.
3032
3033 *** gnutls-cli: Always support PSK modes, through a callback.
3034 The callback will derive a PSK key using Netconf algorithm.  It will
3035 print the PSK identity hint to help the user.
3036
3037 *** New PSK example client and server.
3038 See doc/examples/ex-client-psk.c and doc/examples/ex-serv-psk.c.
3039
3040 ** libgnutls: Fix gnutls_x509_crl_set_version on arm platforms.
3041 The code didn't work properly on platforms where 'char' is unsigned,
3042 when you set version 0.  Reported by Laurence Withers
3043 <l@lwithers.me.uk> in
3044 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2825>.
3045
3046 ** libgnutls-openssl: added RAND_pseudo_bytes API.
3047 Patch from Robert Millan <rmh@aybabtu.com>.
3048
3049 ** API and ABI modifications:
3050 RAND_pseudo_bytes: ADDED to libgnutls-openssl.
3051 gnutls_psk_client_get_hint: ADDED.
3052 gnutls_psk_set_server_credentials_hint: ADDED.
3053 gnutls_psk_netconf_derive_key: ADDED
3054
3055 * Version 2.3.11 (released 2008-05-20)
3056
3057 ** Fix flaw in fix for GNUTLS-SA-2008-1-3.
3058 The flaw would result in incorrectly terminated sessions with the
3059 error "Decryption has failed" when the server sends a small packet
3060 (typically when the session is closed).  Reported by Andreas Metzler
3061 <ametzler@downhill.at.eu.org> in
3062 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2807>.
3063
3064 ** Don't use gnulib headers when building C++ library.
3065 Fixes builds under Windows.
3066
3067 ** Make umask a requirement.
3068 We don't know of any system that lacks it, even GNU CoreUtils use it
3069 unconditionally.
3070
3071 ** Update gnulib files.
3072 Fixes a problem where it pulled in a replacement for memcmp under
3073 MinGW, which caused the C++ example to fail to build.
3074
3075 ** API and ABI modifications:
3076 No changes since last version.
3077
3078 * Version 2.3.10 (released 2008-05-19)
3079
3080 ** Added wide wildcard hostname matching.
3081 Tiny patch by Jean-Philippe Garcia Ballester.
3082
3083 ** Fix three security vulnerabilities.  [GNUTLS-SA-2008-1]
3084 Thanks to CERT-FI for finding the bugs and providing detailed reports,
3085 which allowed the bugs to be reproduced and fixed easily.  Patches
3086 developed by Simon Josefsson and Nikos Mavrogiannopoulos.  Any updates
3087 with more details about these vulnerabilities will be added to
3088 <http://www.gnu.org/software/gnutls/security.html>
3089
3090 *** [GNUTLS-SA-2008-1-1]
3091 *** libgnutls: Fix crash when sending invalid server name.
3092 The crash can be triggered remotely before authentication, which can
3093 lead to a Daniel of Service attack to disable the server.  The bug
3094 cause gnutls to store more session resumption data than what was
3095 allocated for, thus overwriting unallocated memory.
3096
3097 *** [GNUTLS-SA-2008-1-2]
3098 *** libgnutls: Fix crash when sending repeated client hellos.
3099 The crash can be triggered remotely before authentication, which can
3100 lead to a Daniel of Service attack to disable the server.  The bug
3101 triggers a null-pointer dereference.
3102
3103 *** [GNUTLS-SA-2008-1-3]
3104 *** libgnutls: Fix crash in cipher padding decoding for invalid record lengths.
3105 The crash can be triggered remotely before authentication, which can
3106 lead to a Daniel of Service attack to disable the server.  The bug
3107 cause gnutls to read memory beyond the end of the received record.
3108
3109 ** libgnutlsxx: Updated API according to patches from Eduardo 
3110 Villanueva Che (discussion at
3111 <http://lists.gnu.org/archive/html/gnutls-devel/2007-02/msg00017.html>)
3112
3113 ** Use umask to restrict permissions to owner before creating a file.
3114
3115 ** API and ABI modifications:
3116 No changes since last version.
3117
3118 * Version 2.3.9 (released 2008-05-16)
3119
3120 ** libgnutls: Fix build failures if SRP/OpenPGP is disabled.
3121 Based on report and tiny patches from
3122 <jared.jennings.ctr@eglin.af.mil>, see
3123 <https://savannah.gnu.org/support/index.php?106342>.
3124
3125 ** libgnutls: Translation fixes.
3126
3127 ** gnutls-cli: Fix so that PSK authentication works.
3128 Also improve manual to give example for gnutls-cli PSK authentication.
3129
3130 ** certtool: Encrypting a private key now require a confirmed password.
3131 Before './certtool -k -8' would merely ask for a password once.
3132 Reported by Daniel 'NebuchadnezzaR' Dehennin
3133 <nebuchadnezzar@asgardr.info> see
3134 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=364287>.
3135
3136 ** certtool: When writing private keys to files, change permissions of file.
3137 Now the file which the private key is saved to is chmod'ed 0600.
3138 Reported by martin f krafft <madduck@debian.org> see
3139 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=373169>.
3140
3141 ** guile: Fix -fgnu89-inline test.
3142
3143 ** Removed --enable-profile-mode.
3144 The code linked gnutls with the libfc project (Function Check) which
3145 appears to have been stalled since around 2002.
3146
3147 ** Clean up header file checks by ./configure.
3148
3149 ** Update of gnulib files.
3150
3151 ** API and ABI modifications:
3152 No changes since last version.
3153
3154 * Version 2.3.8 (released 2008-04-29)
3155
3156 ** libgnutls: Increase default handshake packet size limit to 48kb.
3157 The old limit was 16kb and some servers send huge list of trusted CAs,
3158 thus running into the limit.  FYI, applications can further increase
3159 this limit using gnutls_handshake_set_max_packet_length.  Thanks to
3160 Marc Haber <mh+debian-bugs@zugschlus.de> and "Marc F. Clemente"
3161 <marc@mclemente.net> for reporting and providing test servers.
3162
3163 ** libgnutls: Add new error code: GNUTLS_E_HANDSHAKE_TOO_LARGE
3164 Returned when the handshake data size is too large.  Before
3165 GNUTLS_E_MEMORY_ERROR was used, which could be confused with other
3166 error situations.
3167
3168 ** libgnutls: Hide definitions in crypto.h.
3169 We have decided that the APIs defined in crypto.h are not stable
3170 enough for v2.4, so don't use any of those functions.
3171
3172 ** gnutls-cli: exit when hostname doesn't match certificate.
3173 Use --insecure to avoid hostname comparison.
3174
3175 ** certtool: --inder and --outder replaced by --inraw and --outraw.
3176 The reason is to align terminology with OpenPGP, which doesn't use
3177 DER.  The old parameters will continue to work for some time.
3178
3179 ** doc: Add section 'Index of new symbols in 2.4.0' to the GTK-DOC manual.
3180
3181 ** doc: Many cosmetic fixes, to silence (most) gtk-doc warnings.
3182
3183 ** Mingw32: Revert libgcrypt vasprintf work-around added in last release.
3184 Use libgcrypt 1.4.1 or later when building on MinGW32, it removes the
3185 vasprintf symbol from the libgcrypt library which caused problems.
3186
3187 ** Update of gnulib files.
3188
3189 ** tests: New self-test of crypto.h RNG code tests/crypto_rng.
3190
3191 ** API and ABI modifications:
3192 GNUTLS_E_HANDSHAKE_TOO_LARGE: ADDED.
3193
3194 * Version 2.3.7 (released 2008-04-21)
3195
3196 ** opencdk now properly sets the key usage bits into openpgp keys.
3197
3198 ** gnutls-cli: Fix crash on TLS handshake failures.
3199 Reported by "Marc F. Clemente" <marc@mclemente.net> in Debian BTS #466477.
3200 This is similar to <http://bugs.debian.org/429183>.
3201
3202 ** certtool: with --generate-request and newly generated keys, print the key.
3203
3204 ** Build fixes for MinGW.
3205 Missing rpl_fseeko symbol in lib/opencdk/.  Better checks for linking
3206 with -lws2_32 when needed.  Use ASCII only isprint() when printing
3207 X.509 certificate information, to avoid non-ASCII but printable
3208 characters.  Thanks to Massimo Gaspari <massimo.gaspari@alice.it> for
3209 reports.
3210
3211 ** Update internal copy of libtasn1 to version 1.4.
3212
3213 ** API and ABI modifications:
3214 No changes since last version.
3215
3216 * Version 2.3.6 (released 2008-04-17)
3217
3218 ** Make gnutls_x509_crq_sign2 set certificate request version if not set.
3219 ** Improve documentation for gnutls_x509_crq_sign2.
3220 Based on report from "John Brooks" <aspecialj@gmail.com> in
3221 <http://permalink.gmane.org/gmane.network.gnutls.general/1154>.
3222
3223 ** tests/pathlen: run diff without parameters to improve portability.
3224 Based on HPUX build hints in
3225 <http://hpux.cs.utah.edu/hppd/cgi-bin/wwwtar?/hpux/Gnu/gnutls-2.3.4/gnutls-2.3.4-src-11.11.tar.gz+gnutls-2.3.4/HPUX.Install+text>.
3226
3227 ** Don't use %e specifier with strftime, it doesn't work under Windows.
3228 Reported by Massimo Gaspari <massimo.gaspari@alice.it> in
3229 <http://permalink.gmane.org/gmane.network.gnutls.general/1170>.
3230
3231 ** Remove all uses of gnutls_alloca/gnutls_afree.
3232 Use normal gnutls_malloc instead.  One reason is increased portability
3233 to Windows, the other is that several of the uses may be unsafe
3234 because the size of data allocated could be large.  Reported by
3235 Massimo Gaspari <massimo.gaspari@alice.it> in
3236 <http://permalink.gmane.org/gmane.network.gnutls.general/1170>.
3237
3238 ** Build Guile code with -fgnu89-inline only when supported.
3239 Reported by Kris Karas <ktk@enterprise.bidmc.harvard.edu> in
3240 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/2708>.
3241
3242 ** Several GTK-DOC related fixes.
3243
3244 ** Clean up OpenCDK related code.
3245 GnuTLS now requires its internal OpenCDK code rather than the external
3246 GPL library OpenCDK.  Unfortunately, we don't have resources to
3247 maintain an external library (help welcome).
3248
3249 ** API and ABI modifications:
3250 No changes since last version.
3251
3252 * Version 2.3.5 (released 2008-04-14)
3253
3254 ** Build fix for MinGW and --disable-shared.
3255 Reported by Massimo Gaspari <massimo.gaspari@alice.it> in
3256 <http://permalink.gmane.org/gmane.network.gnutls.general/1145>.
3257
3258 ** Document how to generate CRLs.
3259 Suggested by "Rainer Gerhards" <rgerhards@gmail.com>.
3260
3261 ** Documented the --priority option to gnutls-cli and gnutls-serv.
3262
3263 ** Several minor fixes in the OpenPGP interface.
3264 Thanks to Daniel Kahn Gillmor.
3265
3266 ** Fix fopen file descriptor leak in PSK server code.
3267 Thanks to Laurence Withers <l@lwithers.me.uk>, see
3268 <http://lists.gnu.org/archive/html/gnutls-devel/2008-04/msg00002.html>.
3269
3270 ** Translations files not stored directly in git to avoid merge conflicts.
3271
3272 ** New APIs to let applications replace the RNG used.
3273 Update all RNG callers in the code to use the new interface.
3274
3275 ** Guile code now built with -fgnu89-inline to fix inline semantic problem.
3276
3277 ** Update gnulib files.
3278
3279 ** API and ABI modifications:
3280 gnutls_crypto_rnd_register: ADDED
3281 gnutls_rnd_level_t: ADDED
3282 GNUTLS_RND_KEY: ADDED, gnutls_rnd_level_t member
3283 GNUTLS_RND_RANDOM: ADDED, gnutls_rnd_level_t member
3284 GNUTLS_RND_NONCE: ADDED, gnutls_rnd_level_t member
3285 gnutls_crypto_rnd_st: ADDED
3286 GNUTLS_DIG_SHA224: ADDED
3287 GNUTLS_SIGN_RSA_SHA224: ADDED
3288 gnutls_openpgp_crt_get_auth_subkey: MODIFIED
3289
3290 * Version 2.3.4 (released 2008-03-19)
3291
3292 ** Finish renaming of gnutls_certificate_export_x509_cas etc.
3293 They weren't renamed in the public header file.
3294
3295 ** Added functions to register a cipher/mac/digest. This allows to 
3296 override the included ones.
3297
3298 ** Fix a bunch of compiler warnings.
3299
3300 ** API and ABI modifications:
3301 gnutls_crypto_cipher_st: ADDED
3302 gnutls_crypto_mac_st: ADDED
3303 gnutls_crypto_digest_st: ADDED
3304 gnutls_crypto_cipher_register: ADDED
3305 gnutls_crypto_mac_register: ADDED
3306 gnutls_crypto_digest_register: ADDED
3307 GNUTLS_E_CRYPTO_ALREADY_REGISTERED: ADDED
3308
3309 * Version 2.3.3 (released 2008-03-10)
3310
3311 ** Fix build failure in libextra/gnutls_extra.c that needed opencdk.h.
3312 Reported by Roman Bogorodskiy <novel@FreeBSD.org>.