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