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