doc update
[gnutls:gnutls.git] / NEWS
1 GnuTLS NEWS -- History of user-visible changes.                -*- outline -*-
2 Copyright (C) 2000-2014 Free Software Foundation, Inc.
3 Copyright (C) 2013, 2014 Nikos Mavrogiannopoulos
4 See the end for copying conditions.
5
6 * Version 3.3.6 (unreleased)
7
8 ** libgnutls: Use inet_ntop to print IP addresses when available
9
10 ** libgnutls: gnutls_x509_crt_check_hostname and friends will also check
11 IP addresses, and match documented behavior. Reported by David Woodhouse.
12
13 ** libgnutls: DSA key generation in FIPS140-2 mode doesn't allow 1024
14 bit parameters.
15
16 ** libgnutls: fixed issue in gnutls_pkcs11_reinit() which prevented tokens
17 being usable after a reinitialization.
18
19 ** libgnutls: fixed PKCS #11 private key operations after a fork.
20
21 ** p11tool: use GNUTLS_SO_PIN to read the security officer's PIN if set.
22
23 ** p11tool: ask for label when one isn't provided.
24
25 ** p11tool: added --batch parameter to disable any interactivity.
26
27 ** p11tool: will not implicitly enable so-login for certain types of
28 objects. That avoids issues with tokens that require different login
29 types.
30
31 ** API and ABI modifications:
32 No changes since last version.
33
34
35 * Version 3.3.5 (released 2014-06-26)
36
37 ** libgnutls: Added gnutls_record_recv_packet() and gnutls_packet_deinit().
38 These functions provide a variant of gnutls_record_recv() that avoids
39 the final memcpy of data.
40
41 ** libgnutls: gnutls_x509_crl_iter_crt_serial() was added as a
42 faster variant of gnutls_x509_crl_get_crt_serial() when coping with
43 very large structures.
44
45 ** libgnutls: When the decoding of a printable DN element fails, then treat
46 it as unknown and print its hex value rather than failing. That works around
47 an issue in a TURKTRST root certificate which improperly encodes the
48 X520countryName element.
49
50 ** libgnutls: gnutls_x509_trust_list_add_trust_file() will return the number
51 of certificates present in a PKCS #11 token when loading it.
52
53 ** libgnutls: Allow the post client hello callback to put the handshake on
54 hold, by returning GNUTLS_E_AGAIN or GNUTLS_E_INTERRUPTED.
55
56 ** certtool: option --to-p12 will now consider --load-ca-certificate
57
58 ** certtol: Added option to specify the PKCS #12 friendly name on command
59 line.
60
61 ** p11tool: Allow marking a certificate copied to a token as a CA.
62
63 ** API and ABI modifications:
64 GNUTLS_PKCS11_OBJ_FLAG_MARK_CA: Added
65 gnutls_x509_crl_iter_deinit: Added
66 gnutls_x509_crl_iter_crt_serial: Added
67 gnutls_record_recv_packet: Added
68 gnutls_packet_deinit: Added
69 gnutls_packet_get: Added
70
71
72 * Version 3.3.4 (released 2014-05-31)
73
74 ** libgnutls: Updated Andy Polyakov's assembly code. That prevents a
75 crash on certain CPUs.
76
77 ** API and ABI modifications:
78 No changes since last version.
79
80
81 * Version 3.3.3 (released 2014-05-30)
82
83 ** libgnutls: Eliminated memory corruption issue in Server Hello parsing.
84 Issue reported by Joonas Kuorilehto of Codenomicon.
85
86 ** libgnutls: gnutls_global_set_mutex() was modified to operate with the
87 new initialization process.
88
89 ** libgnutls: Increased the maximum certificate size buffer
90 in the PKCS #11 subsystem.
91
92 ** libgnutls: Check the return code of getpwuid_r() instead of relying
93 on the result value. That avoids issue in certain systems, when using
94 tofu authentication and the home path cannot be determined. Issue reported
95 by Viktor Dukhovni.
96
97 ** libgnutls-dane: Improved dane_verify_session_crt(), which now attempts to
98 create a full chain. This addresses points from https://savannah.gnu.org/support/index.php?108552
99
100 ** gnutls-cli: --dane will only check the end certificate if PKIX validation
101 has been disabled.
102
103 ** gnutls-cli: --benchmark-soft-ciphers has been removed. That option cannot
104 be emulated with the implicit initialization of gnutls.
105
106 ** certtool: Allow multiple organizations and organizational unit names to
107 be specified in a template.
108
109 ** certtool: Warn when invalid configuration options are set to a template.
110
111 ** ocsptool: Include path in ocsp request. This resolves #108582
112 (https://savannah.gnu.org/support/?108582), reported by Matt McCutchen.
113
114 ** API and ABI modifications:
115 gnutls_credentials_get: Added
116
117
118 * Version 3.3.2 (released 2014-05-06)
119
120 ** libgnutls: Added the 'very weak' certificate verification profile
121 that corresponds to 64-bit security level.
122
123 ** libgnutls: Corrected file descriptor leak on random generator
124 initialization.
125
126 ** libgnutls: Corrected file descriptor leak on PSK password file
127 reading. Issue identified using the Codenomicon TLS test suite.
128
129 ** libgnutls: Avoid deinitialization if initialization has failed.
130
131 ** libgnutls: null-terminate othername alternative names.
132
133 ** libgnutls: gnutls_x509_trust_list_get_issuer() will operate correctly
134 on a PKCS #11 trust list.
135
136 ** libgnutls: Several small bug fixes identified using valgrind and
137 the Codenomicon TLS test suite.
138
139 ** libgnutls-dane: Accept a certificate using DANE if there is at least one
140 entry that matches the certificate. Patch by simon [at] arlott.org.
141
142 ** libgnutls-guile: Fixed compilation issue.
143
144 ** certtool: Allow exporting a CRL on DER format.
145
146 ** certtool: The ECDSA keys generated by default use the SECP256R1 curve
147 which is supported more widely than the previously used SECP224R1.
148
149 ** API and ABI modifications:
150 GNUTLS_PROFILE_VERY_WEAK: Added
151
152
153 * Version 3.3.1 (released 2014-04-19)
154
155 ** libgnutls: Enforce more strict checks to heartbeat messages
156 concerning padding and payload. Suggested by Peter Dettman.
157
158 ** libgnutls: Allow decoding PKCS #8 files with ECC parameters
159 from openssl.
160
161 ** libgnutls: Several small bug fixes found by coverity.
162
163 ** libgnutls: The conditionally available self-test functions
164 were moved to self-test.h.
165
166 ** libgnutls: Fixed issue with the check of incoming data when two
167 different recv and send pointers have been specified. Reported and
168 investigated by JMRecio.
169
170 ** libgnutls: Fixed issue in the RSA-PSK key exchange, which would 
171 result to illegal memory access if a server hint was provided. Reported
172 by André Klitzing.
173
174 ** libgnutls: Fixed client memory leak in the PSK key exchange, if a
175 server hint was provided.
176
177 ** libgnutls: Corrected the *get_*_othername_oid() functions.
178
179 ** API and ABI modifications:
180 No changes since last version.
181
182
183 * Version 3.3.0 (released 2014-04-10)
184
185 ** libgnutls: The initialization of the library was moved to a
186 constructor. That is, gnutls_global_init() is no longer required
187 unless linking with a static library or a system that does not
188 support library constructors.
189
190 ** libgnutls: static libraries are not built by default.
191
192 ** libgnutls: PKCS #11 initialization is delayed to first usage.
193 That avoids long delays in gnutls initialization due to broken PKCS #11
194 modules.
195
196 ** libgnutls: The PKCS #11 subsystem is re-initialized "automatically"
197 on the first PKCS #11 API call after a fork. 
198
199 ** libgnutls: certificate verification profiles were introduced
200 that can be specified as flags to verification functions. They
201 are enumerations in gnutls_certificate_verification_profiles_t
202 and can be converted to flags for use in a verification function
203 using GNUTLS_PROFILE_TO_VFLAGS().
204
205 ** libgnutls: Added the ability to read system-specific initial
206 keywords, if they are prefixed with '@'. That allows a compile-time
207 specified configuration file to be used to read pre-configured priority
208 strings from. That can be used to impose system specific policies.
209
210 ** libgnutls: Increased the default security level of priority
211 strings (NORMAL and PFS strings require at minimum a 1008 DH prime), 
212 and set a verification profile by default.  The LEGACY keyword is 
213 introduced to set the old defaults.
214
215 ** libgnutls: Added support for the name constraints PKIX extension.
216 Currently only DNS names and e-mails are supported (no URIs, IPs
217 or DNs).
218
219 ** libgnutls: Security parameter SEC_PARAM_NORMAL was renamed to 
220 SEC_PARAM_MEDIUM to avoid confusion with the priority string NORMAL.
221
222 ** libgnutls: Added new API in x509-ext.h to handle X.509 extensions.
223 This API handles the X.509 extensions in isolation, allowing to parse
224 similarly formatted extensions stored in other structures.
225
226 ** libgnutls: When generating DSA keys the macro GNUTLS_SUBGROUP_TO_BITS
227 can be used to specify a particular subgroup as the number of bits in
228 gnutls_privkey_generate; e.g., GNUTLS_SUBGROUP_TO_BITS(2048, 256).
229
230 ** libgnutls: DH parameter generation is now delegated to nettle.
231 That unfortunately has the side-effect that DH parameters longer than
232 3072 bits, cannot be generated (not without a nettle update).
233
234 ** libgnutls: Separated nonce RNG from the main RNG. The nonce
235 random number generator is based on salsa20/12.
236
237 ** libgnutls: The buffer alignment provided to crypto backend is
238 enforced to be 16-byte aligned, when compiled with cryptodev
239 support. That allows certain cryptodev drivers to operate more
240 efficiently.
241
242 ** libgnutls: Return error when a public/private key pair that doesn't
243 match is set into a credentials structure.
244
245 ** libgnutls: Depend on p11-kit 0.20.0 or later.
246
247 ** libgnutls: The new padding (%NEW_PADDING) experimental TLS extension has
248 been removed. It was not approved by IETF.
249
250 ** libgnutls: The experimental xssl library is removed from the gnutls
251 distribution.
252
253 ** libgnutls: Reduced the number of gnulib modules used in the main library.
254
255 ** libgnutls: Added priority string %DISABLE_WILDCARDS.
256
257 ** libgnutls: Added the more extensible verification function
258 gnutls_certificate_verify_peers(), that allows checking, in addition
259 to a peer's DNS hostname, for the key purpose of the end certificate
260 (via PKIX extended key usage).
261
262 ** certtool: Timestamps for serial numbers were increased to 8 bytes,
263 and in batch mode to 12 (appended with 4 random bytes).
264
265 ** certtool: When no CRL number is provided (or value set to -1), then
266 a time-based number will be used, similarly to the serial generation
267 number in certificates.
268
269 ** certtool: Print the SHA256 fingerprint of a certificate in addition
270 to SHA1.
271
272 ** libgnutls: Added --enable-fips140-mode configuration option (unsupported).
273 That option enables (when running on FIPS140-enabled system):
274  o RSA, DSA and DH key generation as in FIPS-186-4 (using provable primes)
275  o The DRBG-CTR-AES256 deterministic random generator from SP800-90A.
276  o Self-tests on initialization on ciphers/MACs, public key algorithms 
277    and the random generator.
278  o HMAC-SHA256 verification of the library on load.
279  o MD5 is included for TLS purposes but cannot be used by the high level
280    hashing functions.
281  o All ciphers except AES are disabled.
282  o All MACs and hashes except GCM and SHA are disabled (e.g., HMAC-MD5).
283  o All keys (temporal and long term) are zeroized after use.
284  o Security levels are adjusted to the FIPS140-2 recommendations (rather
285    than ECRYPT).
286
287 ** API and ABI modifications:
288 GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS: Added
289 gnutls_certificate_verify_peers: Added
290 gnutls_privkey_generate: Added
291 gnutls_pkcs11_crt_is_known: Added
292 gnutls_fips140_mode_enabled: Added
293 gnutls_sec_param_to_symmetric_bits: Added
294 gnutls_pubkey_export_ecc_x962: Added (replaces gnutls_pubkey_get_pk_ecc_x962)
295 gnutls_pubkey_export_ecc_raw: Added (replaces gnutls_pubkey_get_pk_ecc_raw)
296 gnutls_pubkey_export_dsa_raw: Added (replaces gnutls_pubkey_get_pk_dsa_raw)
297 gnutls_pubkey_export_rsa_raw: Added (replaces gnutls_pubkey_get_pk_rsa_raw)
298 gnutls_pubkey_verify_params: Added
299 gnutls_privkey_export_ecc_raw: Added
300 gnutls_privkey_export_dsa_raw: Added
301 gnutls_privkey_export_rsa_raw: Added
302 gnutls_privkey_import_ecc_raw: Added
303 gnutls_privkey_import_dsa_raw: Added
304 gnutls_privkey_import_rsa_raw: Added
305 gnutls_privkey_verify_params: Added
306 gnutls_x509_crt_check_hostname2: Added
307 gnutls_openpgp_crt_check_hostname2: Added
308 gnutls_x509_name_constraints_init: Added
309 gnutls_x509_name_constraints_deinit: Added
310 gnutls_x509_crt_get_name_constraints: Added
311 gnutls_x509_name_constraints_add_permitted: Added
312 gnutls_x509_name_constraints_add_excluded: Added
313 gnutls_x509_crt_set_name_constraints: Added
314 gnutls_x509_name_constraints_get_permitted: Added
315 gnutls_x509_name_constraints_get_excluded: Added
316 gnutls_x509_name_constraints_check: Added
317 gnutls_x509_name_constraints_check_crt: Added
318 gnutls_x509_crl_get_extension_data2: Added
319 gnutls_x509_crt_get_extension_data2: Added
320 gnutls_x509_crq_get_extension_data2: Added
321 gnutls_subject_alt_names_init: Added
322 gnutls_subject_alt_names_deinit: Added
323 gnutls_subject_alt_names_get: Added
324 gnutls_subject_alt_names_set: Added
325 gnutls_x509_ext_import_subject_alt_names: Added
326 gnutls_x509_ext_export_subject_alt_names: Added
327 gnutls_x509_crl_dist_points_init: Added
328 gnutls_x509_crl_dist_points_deinit: Added
329 gnutls_x509_crl_dist_points_get: Added
330 gnutls_x509_crl_dist_points_set: Added
331 gnutls_x509_ext_import_crl_dist_points: Added
332 gnutls_x509_ext_export_crl_dist_points: Added
333 gnutls_x509_ext_import_name_constraints: Added
334 gnutls_x509_ext_export_name_constraints: Added
335 gnutls_x509_aia_init: Added
336 gnutls_x509_aia_deinit: Added
337 gnutls_x509_aia_get: Added
338 gnutls_x509_aia_set: Added
339 gnutls_x509_ext_import_aia: Added
340 gnutls_x509_ext_export_aia: Added
341 gnutls_x509_ext_import_subject_key_id: Added
342 gnutls_x509_ext_export_subject_key_id: Added
343 gnutls_x509_ext_export_authority_key_id: Added
344 gnutls_x509_ext_import_authority_key_id: Added
345 gnutls_x509_aki_init: Added
346 gnutls_x509_aki_get_id: Added
347 gnutls_x509_aki_get_cert_issuer: Added
348 gnutls_x509_aki_set_id: Added
349 gnutls_x509_aki_set_cert_issuer: Added
350 gnutls_x509_aki_deinit: Added
351 gnutls_x509_ext_import_private_key_usage_period: Added
352 gnutls_x509_ext_export_private_key_usage_period: Added
353 gnutls_x509_ext_import_basic_constraints: Added
354 gnutls_x509_ext_export_basic_constraints: Added
355 gnutls_x509_ext_import_key_usage: Added
356 gnutls_x509_ext_export_key_usage: Added
357 gnutls_x509_ext_import_proxy: Added
358 gnutls_x509_ext_export_proxy: Added
359 gnutls_x509_policies_init: Added
360 gnutls_x509_policies_deinit: Added
361 gnutls_x509_policies_get: Added
362 gnutls_x509_policies_set: Added
363 gnutls_x509_ext_import_policies: Added
364 gnutls_x509_ext_export_policies: Added
365 gnutls_x509_key_purpose_init: Added
366 gnutls_x509_key_purpose_deinit: Added
367 gnutls_x509_key_purpose_set: Added
368 gnutls_x509_key_purpose_get: Added
369 gnutls_x509_ext_import_key_purposes: Added
370 gnutls_x509_ext_export_key_purposes: Added
371 gnutls_digest_self_test: Added (conditionally)
372 gnutls_mac_self_test: Added (conditionally)
373 gnutls_pk_self_test: Added (conditionally)
374 gnutls_cipher_self_test: Added (conditionally)
375 gnutls_global_set_mem_functions: Deprecated
376
377
378 * Version 3.2.6 (released 2013-10-31)
379
380 ** libgnutls: Support for TPM via trousers is now enabled by default.
381
382 ** libgnutls: Camellia in GCM mode has been added in default priorities, and
383 GCM mode is prioritized over CBC in all of the default priority strings.
384
385 ** libgnutls: Added ciphersuite GNUTLS_ECDHE_RSA_AES_256_CBC_SHA384.
386
387 ** libgnutls: Fixed ciphersuites GNUTLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384,
388 GNUTLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384 and GNUTLS_PSK_CAMELLIA_128_GCM_SHA256. 
389 Reported by Stefan Buehler.
390
391 ** libgnutls: Added support for ISO OID for RSA-SHA1 signatures.
392
393 ** libgnutls: Minimum acceptable DH group parameters were increased to 767
394 bits from 727.
395
396 ** libgnutls: Added function to obtain random data from PKCS #11 tokens.
397 Contributed by Wolfgang Meyer zu Bergsten.
398
399 ** gnulib: updated.
400
401 ** libdane: Fixed a one-off bug in dane_query_tlsa() introduced by the
402 previous fix. Reported by Tomas Mraz.
403
404 ** p11tool: Added option generate-random.
405
406 ** API and ABI modifications:
407 gnutls_pkcs11_token_get_random: Added
408
409
410 * Version 3.2.5 (released 2013-10-23)
411
412 ** libgnutls: Documentation and build-time fixes.
413
414 ** libgnutls: Allow the generation of DH groups of less than 700 bits.
415
416 ** libgnutls: Added several combinations of ciphersuites with SHA256 and SHA384 as MAC,
417 as well as Camellia with GCM.
418
419 ** libdane: Added interfaces to allow initialization of dane_query_t from
420 external DNS resolutions, and to allow direct verification of a certificate
421 chain against a dane_query_t. Contributed by Christian Grothoff.
422
423 ** libdane: Fixed a buffer overflow in dane_query_tlsa(). This could be
424 triggered by a DNS server supplying more than 4 DANE records. Report and fix
425 by Christian Grothoff.
426
427 ** srptool: Fixed index command line option. Patch by Attila Molnar.
428
429 ** gnutls-cli: Added support for inline commands, using the
430 --inline-commands-prefix and --inline-commands options. Patch by Raj Raman.     
431
432 ** certtool: pathlen constraint is now read correctly. Reported by
433 Christoph Seitz.
434
435 ** API and ABI modifications:
436 gnutls_certificate_get_crt_raw: Added
437 dane_verify_crt_raw: Added
438 dane_raw_tlsa: Added
439
440
441 * Version 3.2.4 (released 2013-08-31)
442
443 ** libgnutls: Fixes when session tickets and session DB are used.
444 Report and initial patch by Stefan Buehler.
445
446 ** libgnutls: Added the RSA-PSK key exchange. Patch by by Frank Morgner,
447 based on previous patch by Bardenheuer GmbH and Bundesdruckerei GmbH.
448
449 ** libgnutls: Added ciphersuites that use ARCFOUR with ECDHE. Patch
450 by Stefan Buehler.
451
452 ** libgnutls: Added the PFS priority string option.
453
454 ** libgnutls: Gnulib included files are strictly LGPLv2.
455
456 ** libgnutls: Corrected gnutls_certificate_server_set_request().
457 Reported by Petr Pisar.
458
459 ** API and ABI modifications:
460 gnutls_record_set_timeout: Exported
461
462
463 * Version 3.2.3 (released 2013-07-30)
464
465 ** libgnutls: Fixes in parsing of priority strings. Patch by Stefan Buehler.
466
467 ** libgnutls: Solve issue with received TLS packets that exceed 2^14. 
468 (this fixes a bug that was accidentally introduced in 3.2.2)
469
470 ** libgnutls: Removed gnulib modules under LGPLv3 that could possibly be
471 used by the library.
472
473 ** libgnutls: Fixes in gnutls_record_send_range(). Report and initial fix by 
474 Alfredo Pironti.
475
476 ** API and ABI modifications:
477 gnutls_priority_kx_list: Added
478 gnutls_priority_mac_list: Added
479 gnutls_priority_cipher_list: Added
480
481
482 * Version 3.2.2 (released 2013-07-14)
483
484 ** libgnutls: Several optimizations in the related to packet processing
485 subsystems.
486
487 ** libgnutls: DTLS replay detection can now be disabled (to be used
488 in certain transport layers like SCTP).
489
490 ** libgnutls: Fixes in SRTP extension generation when MKI is being
491 used.
492
493 ** libgnutls: Added ability to set hooks before or after sending or receiving
494 any handshake message with gnutls_handshake_set_hook_function().
495
496 ** API and ABI modifications:
497 GNUTLS_NO_REPLAY_PROTECTION: Added
498 gnutls_certificate_set_trust_list: Added
499 gnutls_cipher_get_tag_size: Added
500 gnutls_record_overhead_size: Added
501 gnutls_est_record_overhead_size: Added
502 gnutls_handshake_set_hook_function: Added
503 gnutls_handshake_description_get_name: Added
504 gnutls_digest_list: Added
505 gnutls_digest_get_id: Added
506 gnutls_digest_get_name: Added
507
508
509 * Version 3.2.1 (released 2013-06-01)
510
511 ** libgnutls: Allow ECC when in SSL 3.0 to work-around a bug in certain
512 openssl versions.
513
514 ** libgnutls: Fixes in interrupted function resumption. Report
515 and patch by Tim Kosse.
516
517 ** libgnutls: Corrected issue when receiving client hello verify requests
518 in DTLS.
519
520 ** libgnutls: Fixes in DTLS record overhead size calculations.
521
522 ** libgnutls: gnutls_handshake_get_last_in() was fixed. Reported
523 by Mann Ern Kang.
524
525 ** API and ABI modifications:
526 gnutls_session_set_id: Added
527
528
529 * Version 3.2.0 (released 2013-05-10)
530
531 ** libgnutls: Use nettle's elliptic curve implementation.
532
533 ** libgnutls: Added Salsa20 cipher
534
535 ** libgnutls: Added UMAC-96 and UMAC-128
536
537 ** libgnutls: Added ciphersuites involving Salsa20 and UMAC-96.
538 As they are not standardized they are defined using private ciphersuite 
539 numbers.
540
541 ** libgnutls: Added support for DTLS 1.2.
542
543 ** libgnutls: Added support for the Application Layer Protocol Negotiation
544 (ALPN) extension.
545
546 ** libgnutls: Removed support for the RSA-EXPORT ciphersuites.
547
548 ** libgnutls: Avoid linking to librt (that also avoids unnecessary
549 linking to pthreads if p11-kit isn't used).
550
551 ** API and ABI modifications:
552 gnutls_cipher_get_iv_size: Added
553 gnutls_hmac_set_nonce: Added
554 gnutls_mac_get_nonce_size: Added
555
556
557 * Version 3.1.10 (released 2013-03-22)
558
559 ** certtool: When generating PKCS #12 files use by default the 
560 ARCFOUR (RC4) cipher to be compatible with devices that don't
561 support AES with PKCS #12.
562
563 ** libgnutls: Load CA certificates in android 4.x systems.
564
565 ** libgnutls: Optimized CA certificate loading.
566
567 ** libgnutls: Private keys are overwritten on deinitialization.
568
569 ** libgnutls: PKCS #11 slots are scanned only when needed, not
570 on initialization. This speeds up gnutls initialization when smart
571 cards are present.
572
573 ** libgnutls: Corrected issue in the (deprecated) external key
574 signing interface, when used with TLS 1.2. Reported by Bjorn H. Christensen.
575
576 ** libgnutls: Fixes in openpgp handshake with fingerprints. Reported by 
577 Joke de Buhr.
578
579 ** libgnutls-dane: Updated DANE verification options.
580
581 ** configure: Trust store file must be explicitly set or unset when 
582 cross compiling.
583
584 ** API and ABI modifications:
585 gnutls_x509_crt_get_issuer_dn2: Added
586 gnutls_x509_crt_get_dn2: Added
587 gnutls_x509_crl_get_issuer_dn2: Added
588 gnutls_x509_crq_get_dn2: Added
589 gnutls_x509_trust_list_remove_trust_mem: Added
590 gnutls_x509_trust_list_remove_trust_file: Added
591 gnutls_x509_trust_list_remove_cas: Added
592 gnutls_session_get_desc: Added
593 gnutls_privkey_sign_raw_data: Added
594 gnutls_privkey_status: Added
595
596
597 * Version 3.1.9 (released 2013-02-27)
598
599 ** certtool: Option --to-p12 will now ask for a password to generate
600 a PKCS #12 file from an encrypted key file. Reported by Yan Fiz.
601
602 ** libgnutls: Corrected issue in gnutls_pubkey_verify_data().
603
604 ** libgnutls: Corrected parsing issue in XMPP within a subject 
605 alternative name. Reported by James Cloos.
606
607 ** libgnutls: gnutls_pkcs11_reinit() will reinitialize all PKCS #11
608 modules, and not only the ones loaded via p11-kit.
609
610 ** libgnutls: Added function to check whether the private key is
611 still available (inserted).
612
613 ** libgnutls: Try to detect fork even during nonce generation.
614
615 ** API and ABI modifications:
616 gnutls_handshake_set_random: Added
617 gnutls_transport_set_int2: Added
618 gnutls_transport_get_int2: Added
619 gnutls_transport_get_int: Added
620 gnutls_record_cork: Exported
621 gnutls_record_uncork: Exported
622 gnutls_pkcs11_privkey_status: Added
623
624
625 * Version 3.1.8 (released 2013-02-10)
626
627 ** libgnutls: Fixed issue in gnutls_x509_privkey_import2() which didn't return
628 GNUTLS_E_DECRYPTION_FAILED in all cases, and affect certtool operation
629 with encrypted keys. Reported by Yan Fiz.
630
631 ** libgnutls: The minimum DH bits accepted by priorities NORMAL and
632 PERFORMANCE was set to previous defaults 727 bits. Reported by Diego
633 Elio Petteno.
634
635 ** libgnutls: Corrected issue which prevented gnutls_pubkey_verify_hash() 
636 to operate with long keys. Reported by Erik A Jensen.
637
638 ** API and ABI modifications:
639 No changes since last version.
640
641
642 * Version 3.1.7 (released 2013-02-04)
643
644 ** certtool: Added option "dn" which allows to directly set the DN
645 in a template from an RFC4514 string.
646
647 ** danetool: Added options: --dlv and --insecure. Suggested by Paul Wouters.
648
649 ** libgnutls-xssl: Added a new library to simplify GnuTLS usage.
650
651 ** libgnutls-dane: Added function to specify a DLV file.
652
653 ** libgnutls: Heartbeat code was made optional.
654
655 ** libgnutls: Fixes in server side of DTLS-0.9.
656
657 ** libgnutls: DN variable 'T' was expanded to 'title'.
658
659 ** libgnutls: Fixes in record padding parsing to prevent a timing attack. 
660 Issue reported by Kenny Paterson and Nadhem Alfardan.
661
662 ** libgnutls: Added functions to directly set the DN in a certificate
663 or request from an RFC4514 string.
664
665 ** libgnutls: Optimizations in the random generator. The re-seeding of
666 it is now explicitly done on every session deinit.
667
668 ** libgnutls: Simplified the DTLS sliding window implementation.
669
670 ** libgnutls: The minimum DH bits accepted by a client are now set
671 by the specified priority string. The current values correspond to the
672 previous defaults (727 bits), except for the SECURE128 and SECURE192
673 strings which increase the minimum to 1248 and 1776 respectively.
674
675 ** libgnutls: Added the gnutls_record_cork() and uncork API to enable 
676 buffering in sending application data.
677
678 ** libgnutls: Removed default random padding, and added a length-hiding interface 
679 instead.  Both the server and the client must support this extension. Whether 
680 length-hiding can be used on a given session can be checked using
681 gnutls_record_can_use_length_hiding(). Contributed by Alfredo Pironti.
682
683 ** libgnutls: Added the experimental %NEW_PADDING priority string. It enables 
684 a new padding mechanism in TLS allowing arbitrary padding in TLS records
685 in all ciphersuites, which makes length-hiding more efficient and solves 
686 the issues with timing attacks on CBC ciphersuites.
687
688 ** libgnutls: Corrected gnutls_cipher_decrypt2() when used with AEAD
689 ciphers (i.e., AES-GCM). Reported by William McGovern.
690
691 ** API and ABI modifications:
692 gnutls_db_check_entry_time: Added
693 gnutls_record_set_timeout: Added
694 gnutls_record_get_random_padding_status: Added
695 gnutls_x509_crt_set_dn: Added
696 gnutls_x509_crt_set_issuer_dn: Added
697 gnutls_x509_crq_set_dn: Added
698 gnutls_range_split: Added
699 gnutls_record_send_range: Added
700 gnutls_record_set_max_empty_records: Added
701 gnutls_record_can_use_length_hiding: Added
702 gnutls_rnd_refresh: Added
703 xssl_deinit: Added
704 xssl_flush: Added
705 xssl_read: Added
706 xssl_getdelim: Added
707 xssl_write: Added
708 xssl_printf: Added
709 xssl_sinit: Added
710 xssl_client_init: Added
711 xssl_server_init: Added
712 xssl_get_session: Added
713 xssl_get_verify_status: Added
714 xssl_cred_init: Added
715 xssl_cred_deinit: Added
716 dane_state_set_dlv_file: Added
717 GNUTLS_SEC_PARAM_EXPORT: Added
718 GNUTLS_SEC_PARAM_VERY_WEAK: Added
719
720
721 * Version 3.1.6 (released 2013-01-02)
722
723 ** libgnutls: Fixed record padding parsing issue. Reported by Kenny
724 Paterson and Nadhem Alfardan.
725
726 ** libgnutls: Several updates in the ASN.1 string handling subsystem.
727
728 ** libgnutls: gnutls_x509_crt_get_policy() allows for a list of zero
729 policy qualifiers.
730
731 ** libgnutls: Ignore heartbeat messages when received out-of-order,
732 instead of issuing an error.
733
734 ** libgnutls: Stricter RSA PKCS #1 1.5 encoding and decoding. Reported
735 by Kikuchi Masashi.
736
737 ** libgnutls: TPM support is disabled by default because GPL programs
738 cannot link with it. Use --with-tpm to enable it.
739
740 ** libgnutls-guile: Fixed parallel compilation issue.
741
742 ** gnutls-cli: It will try to connect to all possible returned addresses
743 before failing.
744
745 ** API and ABI modifications:
746 No changes since last version.
747
748
749 * Version 3.1.5 (released 2012-11-24)
750
751 ** libgnutls: Added functions to parse the certificates policies
752 extension.
753
754 ** libgnutls: Handle BMPString (UCS-2) encoding in the Distinguished
755 Name by translating it to UTF-8 (works on windows or systems with iconv).
756
757 ** libgnutls: Added PKCS #11 key generation function that returns the 
758 public key on generation.
759
760 ** libgnutls: Corrected bug in priority string parsing, that mostly 
761 affected combined levels. Patch by Tim Kosse.
762
763 ** certtool: The --pubkey-info option can be combined with the
764 --load-privkey or --load-request to print the corresponding public keys.
765
766 ** certtool: It is able to set certificate policies via a template.
767
768 ** certtool: Added --hex-numbers option which prints big numbers in 
769 an easier to parse format.
770
771 ** p11tool: After key generation, outputs the public key (useful in
772 tokens that do not store the public key).
773
774 ** danetool: It is being built even without libgnutls-dane (the
775 --check functionality is disabled though).
776
777 ** API and ABI modifications:
778 gnutls_pkcs11_privkey_generate2: Added
779 gnutls_x509_crt_get_policy: Added
780 gnutls_x509_crt_set_policy: Added
781 gnutls_x509_policy_release: Added
782 gnutls_pubkey_import_x509_crq: Added
783 gnutls_pubkey_print: Added
784 GNUTLS_CRT_PRINT_FULL_NUMBERS: Added
785
786
787 * Version 3.1.4 (released 2012-11-10)
788
789 ** libgnutls: gnutls_certificate_verify_peers2() will set flags depending on
790 the available revocation data validity.
791
792 ** libgnutls: Added gnutls_certificate_verification_status_print(),
793 a function to print the verification status code in human readable text.
794
795 ** libgnutls: Added priority string %VERIFY_DISABLE_CRL_CHECKS.
796
797 ** libgnutls: Simplified certificate verification by adding
798 gnutls_certificate_verify_peers3().
799
800 ** libgnutls: Added support for extension to establish keys for SRTP.
801 Contributed by Martin Storsjo.
802
803 ** libgnutls: The X.509 verification functions check the key
804 usage bits and pathlen constraints and on failure output 
805 GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE.
806
807 ** libgnutls: gnutls_x509_crl_verify() includes the time checks.
808
809 ** libgnutls: Added verification flag GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN
810 and made GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN the default.
811
812 ** libgnutls: Always tolerate key usage violation errors from the side
813 of the peer, but also notify via an audit message.
814
815 ** gnutls-cli: Added --local-dns option.
816
817 ** danetool: Corrected bug that prevented loading PEM files.
818
819 ** danetool: Added --check option to allow querying and verifying
820 a site's DANE data.
821
822 ** libgnutls-dane: Added pkg-config file for the library.
823
824 ** API and ABI modifications:
825 gnutls_session_get_id2: Added
826 gnutls_sign_is_secure: Added
827 gnutls_certificate_verify_peers3: Added
828 gnutls_ocsp_status_request_is_checked: Added
829 gnutls_certificate_verification_status_print: Added
830 gnutls_srtp_set_profile: Added
831 gnutls_srtp_set_profile_direct: Added
832 gnutls_srtp_get_selected_profile: Added
833 gnutls_srtp_get_profile_name: Added
834 gnutls_srtp_get_profile_id: Added
835 gnutls_srtp_get_keys: Added
836 gnutls_srtp_get_mki: Added
837 gnutls_srtp_set_mki: Added
838 gnutls_srtp_profile_t: Added
839 dane_cert_type_name: Added
840 dane_match_type_name: Added
841 dane_cert_usage_name: Added
842 dane_verification_status_print: Added
843 GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED: Added
844 GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE: Added
845 GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE: Added
846 GNUTLS_CERT_UNEXPECTED_OWNER: Added
847 GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN: Added
848
849
850 * Version 3.1.3 (released 2012-10-12)
851
852 ** libgnutls: Added support for the OCSP Certificate Status
853 extension.
854
855 ** libgnutls: gnutls_certificate_verify_peers2() will use the OCSP
856 certificate status extension in verification.
857
858 ** libgnutls: Bug fixes in gnutls_x509_privkey_import_openssl().
859
860 ** libgnutls: Increased maximum password length in the PKCS #12
861 functions.
862
863 ** libgnutls: Fixed the receipt of session tickets during session resumption.
864 Reported by danblack at http://savannah.gnu.org/support/?108146
865
866 ** libgnutls: Added functions to export structures in an allocated buffer.
867
868 ** libgnutls: Added gnutls_ocsp_resp_check_crt() to check whether the OCSP
869 response corresponds to the given certificate.
870
871 ** libgnutls: In client side gnutls_init() enables the session ticket and
872 OCSP certificate status request extensions by default. The flag
873 GNUTLS_NO_EXTENSIONS can be used to prevent that.
874
875 ** libgnutls: Several updates in the OpenPGP code. The generating code
876 is fully RFC6091 compliant and RFC5081 support is only supported in client
877 mode.
878
879 ** libgnutls-dane: Added. It is a library to provide DANE with DNSSEC 
880 certificate verification.
881
882 ** gnutls-cli: Added --dane option to enable DANE certificate verification.
883
884 ** danetool: Added tool to generate DANE TLSA Resource Records (RR).
885
886 ** API and ABI modifications:
887 gnutls_certificate_get_peers_subkey_id: Added
888 gnutls_certificate_set_ocsp_status_request_function: Added
889 gnutls_certificate_set_ocsp_status_request_file: Added
890 gnutls_ocsp_status_request_enable_client: Added
891 gnutls_ocsp_status_request_get: Added
892 gnutls_ocsp_resp_check_crt: Added
893 gnutls_dh_params_export2_pkcs3: Added
894 gnutls_pubkey_export2: Added
895 gnutls_x509_crt_export2: Added
896 gnutls_x509_dn_export2: Added
897 gnutls_x509_crl_export2: Added
898 gnutls_pkcs7_export2: Added
899 gnutls_x509_privkey_export2: Added
900 gnutls_x509_privkey_export2_pkcs8: Added
901 gnutls_x509_crq_export2: Added
902 gnutls_openpgp_crt_export2: Added
903 gnutls_openpgp_privkey_export2: Added
904 gnutls_pkcs11_obj_export2: Added
905 gnutls_pkcs12_export2: Added
906 gnutls_pubkey_import_openpgp_raw: Added
907 gnutls_pubkey_import_x509_raw: Added
908 dane_state_init: Added
909 dane_state_deinit: Added
910 dane_query_tlsa: Added
911 dane_query_status: Added
912 dane_query_entries: Added
913 dane_query_data: Added
914 dane_query_deinit: Added
915 dane_verify_session_crt: Added
916 dane_verify_crt: Added
917 dane_strerror: Added
918
919
920 * Version 3.1.2 (released 2012-09-26)
921
922 ** libgnutls: Fixed bug in gnutls_x509_trust_list_add_system_trust()
923 and gnutls_x509_trust_list_add_trust_mem() that prevented the loading
924 of certificates in the windows platform.
925
926 ** libgnutls: Corrected bug in OpenPGP subpacket encoding.
927
928 ** libgnutls: Added support for DTLS/TLS heartbeats by Olga Smolenchuk.
929 (the work was done during Google Summer of Code).
930
931 ** libgnutls: Added X.509 certificate verification flag 
932 GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN. This flag allows the verification
933 of unsorted certificate chains and is enabled by default for
934 TLS certificate verification (if gnutls_certificate_set_verify_flags() 
935 does not override it).
936
937 ** libgnutls: Prints warning on certificates that contain keys of
938 an insecure level. If the %COMPAT priority flag is not specified
939 the TLS connection fails.
940
941 ** libgnutls: Correctly restore gnutls_record_recv() in DTLS mode
942 if interrupted during the retrasmition of handshake data.
943
944 ** libgnutls: Better mingw32 support (patch by LRN).
945
946 ** libgnutls: The %COMPAT keyword, if specified, will tolerate
947 key usage violation errors (they are far too common to ignore).
948
949 ** libgnutls: Added GNUTLS_STATELESS_COMPRESSION flag to gnutls_init(),
950 which provides a tool to counter compression-related attacks where
951 parts of the data are controlled by the attacker _and_ are placed in
952 separate records (use with care - do not use compression if not sure).
953
954 ** libgnutls: Depends on libtasn1 2.14 or later.
955
956 ** certtool: Prints the number of bits of the public key algorithm
957 parameter in a private key.
958
959 ** API and ABI modifications:
960 gnutls_x509_privkey_get_pk_algorithm2: Added
961 gnutls_heartbeat_ping: Added
962 gnutls_heartbeat_pong: Added
963 gnutls_heartbeat_allowed: Added
964 gnutls_heartbeat_enable: Added
965 gnutls_heartbeat_set_timeouts: Added
966 gnutls_heartbeat_get_timeout: Added
967 GNUTLS_SEC_PARAM_WEAK: Added
968 GNUTLS_SEC_PARAM_INSECURE: Added
969
970 * Version 3.1.1 (released 2012-09-02)
971
972 ** gnutls-serv: Listens on IPv6. Patch by Bernhard R. Link.
973
974 ** certtool: Changes in password handling of certtool.
975 Ask password when required and only if the '--password' option is not
976 given. If the '--password' option is given during key generation then 
977 assume the PKCS #8 file format, instead of ignoring the password.
978
979 ** tpmtool: No longer asks for key password in registered keys.
980
981 ** libgnutls: Elliptic curve code was optimized by Ilya Tumaykin.
982 wmNAF is now used for point multiplication and other optimizations.
983 (the major part of the work was done during Google Summer of Code).
984
985 ** libgnutls: The default pull_timeout_function only uses select
986 instead of a combination of select() and recv() to prevent issues
987 when used in stream sockets in some systems.
988
989 ** libgnutls: Be tolerant in ECDSA signature violations (e.g. using
990 SHA256 with a SECP384 curve instead of SHA-384), to interoperate with
991 openssl.
992
993 ** libgnutls: Fixed DSA and ECDSA signature generation in smart
994 cards. Thanks to Andreas Schwier from cardcontact.de for providing
995 me with ECDSA capable smart cards.
996
997 ** API and ABI modifications:
998 gnutls_sign_algorithm_get: Added
999 gnutls_sign_get_hash_algorithm: Added
1000 gnutls_sign_get_pk_algorithm: Added
1001
1002
1003 * Version 3.1.0 (released 2012-08-15)
1004
1005 ** libgnutls: Added direct support for TPM as a cryptographic module 
1006 in gnutls/tpm.h. TPM keys can be used in functions accepting files
1007 using URLs of the following types:
1008   tpmkey:file=/path/to/file
1009   tpmkey:uuid=7f468c16-cb7f-11e1-824d-b3a4f4b20343;storage=user
1010
1011 ** libgnutls: Priority string level keywords can be combined.
1012 For example the string "SECURE256:+SUITEB128" is now allowed.
1013
1014 ** libgnutls: requires libnettle 2.5.
1015
1016 ** libgnutls: Use the PKCS #1 1.5 encoding provided by nettle (2.5)
1017 for encryption and signatures.
1018
1019 ** libgnutls: Added GNUTLS_CERT_SIGNATURE_FAILURE to differentiate between
1020 generic errors and signature verification errors in the verification
1021 functions.
1022
1023 ** libgnutls: Added gnutls_pkcs12_simple_parse() as a helper function
1024 to simplify parsing in most PKCS #12 use cases.
1025
1026 ** libgnutls: gnutls_certificate_set_x509_simple_pkcs12_file() adds
1027 the whole certificate chain (if any) to the credentials structure, instead
1028 of only the end-user certificate.
1029
1030 ** libgnutls: Key import functions such as gnutls_pkcs12_simple_parse()
1031 and gnutls_x509_privkey_import_pkcs8(), return consistently 
1032 GNUTLS_E_DECRYPTION_FAILED if the input structure is encrypted but no 
1033 password was provided.
1034
1035 ** libgnutls: Added gnutls_handshake_set_timeout() a function that
1036 allows to set the maximum time spent in a handshake.
1037
1038 ** libgnutlsxx: Added session::set_transport_vec_push_function. Patch
1039 by Alexandre Bique.
1040
1041 ** tpmtool: Added. It is a tool to generate private keys in the
1042 TPM.
1043
1044 ** gnutls-cli: --benchmark-tls was split to --benchmark-tls-kx
1045 and --benchmark-tls-ciphers
1046
1047 ** certtool: generated PKCS #12 structures may hold more than one
1048 private key. Patch by Lucas Fisher.
1049
1050 ** certtool: Added option --null-password to generate/decrypt keys
1051 that use a NULL password (in schemas that distinguish between NULL
1052 an empty passwords).
1053
1054 ** minitasn1: Upgraded to libtasn1 version 2.13.
1055
1056 ** API and ABI modifications:
1057 GNUTLS_CERT_SIGNATURE_FAILURE: Added
1058 GNUTLS_CAMELLIA_192_CBC: Added
1059 GNUTLS_PKCS_NULL_PASSWORD: Added
1060 gnutls_url_is_supported: Added
1061 gnutls_pkcs11_obj_list_import_url2: Added
1062 gnutls_pkcs11_obj_set_pin_function: Added
1063 gnutls_pkcs11_privkey_set_pin_function: Added
1064 gnutls_pkcs11_get_pin_function: Added
1065 gnutls_privkey_import_tpm_raw: Added
1066 gnutls_privkey_import_tpm_url: Added
1067 gnutls_privkey_import_pkcs11_url: Added
1068 gnutls_privkey_import_openpgp_raw: Added
1069 gnutls_privkey_import_x509_raw: Added
1070 gnutls_privkey_import_ext2: Added
1071 gnutls_privkey_import_url: Added
1072 gnutls_privkey_set_pin_function: Added
1073 gnutls_tpm_privkey_generate: Added
1074 gnutls_tpm_key_list_deinit: Added
1075 gnutls_tpm_key_list_get_url: Added
1076 gnutls_tpm_get_registered: Added
1077 gnutls_tpm_privkey_delete: Added
1078 gnutls_pubkey_import_tpm_raw: Added
1079 gnutls_pubkey_import_tpm_url: Added
1080 gnutls_pubkey_import_url: Added
1081 gnutls_pubkey_verify_hash2: Added
1082 gnutls_pubkey_set_pin_function: Added
1083 gnutls_x509_privkey_import2: Added
1084 gnutls_x509_privkey_import_openssl: Added
1085 gnutls_x509_crt_set_pin_function: Added
1086 gnutls_load_file: Added
1087 gnutls_pkcs12_simple_parse: Added
1088 gnutls_certificate_set_x509_system_trust: Added
1089 gnutls_certificate_set_pin_function: Added
1090 gnutls_x509_trust_list_add_system_trust: Added
1091 gnutls_x509_trust_list_add_trust_file: Added
1092 gnutls_x509_trust_list_add_trust_mem: Added
1093 gnutls_pk_to_sign: Added
1094 gnutls_handshake_set_timeout: Added
1095 gnutls_pubkey_verify_hash: Deprecated (use gnutls_pubkey_verify_hash2)
1096 gnutls_pubkey_verify_data: Deprecated (use gnutls_pubkey_verify_data2)
1097
1098
1099 * Version 3.0.22 (released 2012-08-04)
1100
1101 ** libgnutls: gnutls_certificate_set_x509_system_trust()
1102 is now supported on OpenBSD.
1103
1104 ** libgnutls: When verifying a certificate chain make sure it is chain.
1105 If the chain is wronly interrupted at some point then truncate it,
1106 and only try to verify the correct part. Patch by David Woodhouse
1107
1108 ** libgnutls: Restored the behavior of gnutls_x509_privkey_import_pkcs8()
1109 which now may (again) accept a NULL password.
1110
1111 ** certtool: Allow the user to choose the hash algorithm
1112 when signing certificate request or certificate revocation list.
1113 Patch by Petr Písař.
1114
1115 ** API and ABI modifications:
1116 No changes since last version.
1117
1118
1119 * Version 3.0.21 (released 2012-07-02)
1120
1121 ** libgnutls: fixed bug in gnutls_x509_privkey_import() 
1122 that prevented the loading of EC private keys when DER
1123 encoded. Reported by David Woodhouse.
1124
1125 ** libgnutls: In DTLS larger to mtu records result to 
1126 GNUTLS_E_LARGE_PACKET instead of being truncated.
1127
1128 ** libgnutls: gnutls_dtls_get_data_mtu() is more precise. Based
1129 on patch by David Woodhouse.
1130
1131 ** libgnutls: Fixed memory leak in PKCS #8 key import.
1132
1133 ** libgnutls: Added support for an old version of the DTLS protocol
1134 used by openconnect vpn client for compatibility with Cisco's AnyConnect 
1135 SSL VPN. It is marked as GNUTLS_DTLS0_9. Do not use it for newer protocols
1136 as it has issues.
1137
1138 ** libgnutls: Corrected bug that prevented resolving PKCS #11 URLs 
1139 if only the label is specified. Patch by David Woodhouse.
1140
1141 ** libgnutls: When EMSGSIZE errno is seen then GNUTLS_E_LARGE_PACKET
1142 is returned.
1143
1144 ** API and ABI modifications:
1145 gnutls_dtls_set_data_mtu: Added
1146 gnutls_session_set_premaster: Added
1147
1148
1149 * Version 3.0.20 (released 2012-06-05)
1150
1151 ** libgnutls: Corrected bug which prevented the parsing of
1152 handshake packets spanning multiple records.
1153
1154 ** libgnutls: Check key identifiers when checking for an issuer.
1155
1156 ** libgnutls: Added gnutls_pubkey_verify_hash2()
1157
1158 ** libgnutls: Added gnutls_certificate_set_x509_system_trust()
1159 that loads the trusted CA certificates from system locations
1160 (e.g. trusted storage in windows and CA bundle files in other systems).
1161
1162 ** certtool: Added support for the URI subject alternative
1163 name type in certtool.
1164
1165 ** certtool: Increase to 128 the maximum number of distinct options
1166 (e.g. dns_names) allowed.
1167
1168 ** gnutls-cli: If --print-cert is given, print the certificate, 
1169 even on verification failure.
1170
1171 ** API and ABI modifications:
1172 gnutls_pk_to_sign: Added
1173 gnutls_pubkey_verify_hash2: Added
1174 gnutls_certificate_set_x509_system_trust: Added
1175
1176
1177 * Version 3.0.19 (released 2012-04-22)
1178
1179 ** libgnutls: When decoding a PKCS #11 URL the pin-source field
1180 is assumed to be a file that stores the pin. Based on patch
1181 by David Smith.
1182
1183 ** libgnutls: gnutls_record_check_pending() no longer
1184 returns unprocessed data, and thus ensure the non-blocking
1185 of the next call to gnutls_record_recv(). 
1186
1187 ** libgnutls: Added strict tests in Diffie-Hellman and
1188 SRP key exchange public keys.
1189
1190 ** libgnutls: in ECDSA and DSA TLS 1.2 authentication be less
1191 strict in hash selection, and allow a stronger hash to
1192 be used than the appropriate, to improve interoperability
1193 with openssl.
1194
1195 ** tests: Disabled floating point test, and corrections
1196 in pkcs12 decoding tests.
1197
1198 ** API and ABI modifications:
1199 No changes since last version.
1200
1201
1202 * Version 3.0.18 (released 2012-04-02)
1203
1204 ** certtool: Avoid a Y2K38 bug when generating certificates.
1205 Patch by Robert Millan.
1206
1207 ** libgnutls: Make sure that GNUTLS_E_PREMATURE_TERMINATION
1208 is returned on premature termination (and added unit test).
1209
1210 ** libgnutls: Fixes for W64 API. Patch by B. Scott Michel.
1211
1212 ** libgnutls: Corrected VIA padlock detection for old 
1213 VIA processors. Reported by Kris Karas.
1214
1215 ** libgnutls: Updated assembler files.
1216
1217 ** libgnutls: Time in generated certificates is stored
1218 as GeneralizedTime instead of UTCTime (which only stores
1219 2 digits of a year).
1220
1221 ** minitasn1: Upgraded to libtasn1 version 2.13 (pre-release).
1222
1223 ** API and ABI modifications:
1224 gnutls_x509_crt_set_private_key_usage_period: Added
1225 gnutls_x509_crt_get_private_key_usage_period: Added
1226 gnutls_x509_crq_set_private_key_usage_period: Added
1227 gnutls_x509_crq_get_private_key_usage_period: Added
1228 gnutls_session_get_random: Added
1229
1230
1231 * Version 3.0.17 (released 2012-03-17)
1232
1233 ** command line apps: Always link with local libopts.
1234
1235 ** API and ABI modifications:
1236 No changes since last version.
1237
1238
1239 * Version 3.0.16 (released 2012-03-16)
1240
1241 ** minitasn1: Upgraded to libtasn1 version 2.12 (pre-release).
1242
1243 ** libgnutls: Corrected SRP-RSA ciphersuites when used under TLS 1.2.
1244
1245 ** libgnutls: included assembler files for MacOSX.
1246
1247 ** p11tool: Small fixes in handling of the --private command 
1248 line option.
1249
1250 ** certtool: The template option allows for setting the domain
1251 component (DC) option of the distinguished name, and the ocsp_uri
1252 as well as the ca_issuers_uri options.
1253
1254 ** API and ABI modifications:
1255 gnutls_x509_crt_set_authority_info_access: Added
1256
1257
1258 * Version 3.0.15 (released 2012-03-02)
1259
1260 ** test suite: Only run under valgrind in the development
1261 system (the full git repository)
1262
1263 ** command line apps: Link with local libopts if the 
1264 installed is an old one.
1265
1266 ** libgnutls: Eliminate double free during SRP
1267 authentication. Reported by Peter Penzov.
1268
1269 ** libgnutls: Corrections in record packet parsing.
1270 Reported by Matthew Hall.
1271
1272 ** libgnutls: Cryptodev updates and fixes.
1273
1274 ** libgnutls: Corrected issue with select() that affected
1275 FreeBSD. This prevented establishing DTLS sessions.
1276 Reported by Andreas Metzler.
1277
1278 ** libgnutls: Corrected rehandshake and resumption
1279 operations in DTLS. Reported by Sean Buckheister.
1280
1281 ** libgnutls: PKCS #11 objects that do not have ID
1282 no longer crash listing. Reported by Sven Geggus.
1283
1284 ** API and ABI modifications:
1285 No changes since last version.
1286
1287
1288 * Version 3.0.14 (released 2012-02-24)
1289
1290 ** command line apps: Included libopts doesn't get installed
1291 by default.
1292
1293 ** libgnutls: Eliminate double free on wrongly formatted
1294 certificate list. Reported by Remi Gacogne.
1295
1296 ** libgnutls: cryptodev code corrected, updated to account
1297 for hashes and GCM mode.
1298
1299 ** libgnutls: Eliminated memory leak in PCKS #11 initialization.
1300 Report and fix by Sam Varshavchik.
1301
1302 ** API and ABI modifications:
1303 No changes since last version.
1304
1305
1306 * Version 3.0.13 (released 2012-02-18)
1307
1308 ** gnutls-cli: added the --ocsp option which will verify
1309 the peer's certificate with OCSP.
1310
1311 ** gnutls-cli: added the --tofu option and if specified, gnutls-cli
1312 will use an ssh-style authentication method.
1313
1314 ** gnutls-cli: if no --x509cafile is provided a default is
1315 assumed (/etc/ssl/certs/ca-certificates.crt), if it exists.
1316
1317 ** ocsptool: Added --ask parameter, to verify a certificate's
1318 status from an ocsp server.
1319
1320 ** command line apps: Use gnu autogen (libopts) to parse command
1321 line arguments and template files.
1322
1323 ** tests: Added stress test for DTLS packet losses and 
1324 out-of-order receival. Contributed by Sean Buckheister.
1325
1326 ** libgnutls: Several updates and corrections in the DTLS
1327 DTLS lost packet handling and retransmission timeouts.
1328 Report and patches by Sean Buckheister.
1329
1330 ** libgnutls: Added new functions to easily allow the usage of
1331 a trust on first use (SSH-style) authentication.
1332
1333 ** libgnutls: SUITEB128 and SUITEB192 priority strings account
1334 for the RFC6460 requirements.
1335
1336 ** libgnutls: Added new security parameter GNUTLS_SEC_PARAM_LEGACY
1337 to account for security level of 96-bits.
1338
1339 ** libgnutls: In client side if server does not advertise any
1340 known CAs and only a single certificate is set in the credentials,
1341 sent that one.
1342
1343 ** libgnutls: Added functions to parse authority key identifiers
1344 when stored as a 'general name' and serial combo.
1345
1346 ** libgnutls: Added function to force explicit reinitialization
1347 of PKCS #11 modules. This is required on the child process after
1348 a fork (if PKCS #11 functionality is desirable).
1349
1350 ** libgnutls: Depend on p11-kit 0.11.
1351
1352 ** API and ABI modifications:
1353 gnutls_dtls_get_timeout: Added
1354 gnutls_verify_stored_pubkey: Added
1355 gnutls_store_pubkey: Added
1356 gnutls_store_commitment: Added
1357 gnutls_x509_crt_get_authority_key_gn_serial: Added
1358 gnutls_x509_crl_get_authority_key_gn_serial: Added
1359 gnutls_pkcs11_reinit: Added
1360 gnutls_ecc_curve_list: Added
1361 gnutls_priority_certificate_type_list: Added
1362 gnutls_priority_sign_list: Added
1363 gnutls_priority_protocol_list: Added
1364 gnutls_priority_compression_list: Added
1365 gnutls_priority_ecc_curve_list: Added
1366 gnutls_tdb_init: Added
1367 gnutls_tdb_set_store_func: Added
1368 gnutls_tdb_set_store_commitment_func: Added
1369 gnutls_tdb_set_verify_func: Added
1370 gnutls_tdb_deinit: Added
1371
1372
1373 * Version 3.0.12 (released 2012-01-20)
1374
1375 ** libgnutls: Added OCSP support.
1376 There is a new header file gnutls/ocsp.h and a set of new functions
1377 under the gnutls_ocsp namespace.  Currently the functionality provided
1378 is to parse and extract information from OCSP requests/responses, to
1379 generate OCSP requests and to verify OCSP responses.  See the manual
1380 for more information.  Run ./configure with --disable-ocsp to build
1381 GnuTLS without OCSP support.
1382
1383 This work was sponsored by Smoothwall <http://smoothwall.net/>.
1384
1385 ** ocsptool: Added new command line tool.
1386 The tool can parse OCSP request/responses, generate OCSP requests and
1387 verify OCSP responses.  See the manual for more information.
1388
1389 ** certtool: --outder option now works for private
1390 and public keys as well.
1391
1392 ** libgnutls: Added error code GNUTLS_E_NO_PRIORITIES_WERE_SET
1393 to warn when no or insufficient priorities were set.
1394
1395 ** libgnutls: Corrected an alignment issue in ECDH
1396 key generation which prevented some keys from being
1397 correctly aligned in rare circumstances.
1398
1399 ** libgnutls: Corrected memory leaks in DH parameter
1400 generation and ecc_projective_check_point().
1401
1402 ** libgnutls: Added gnutls_x509_dn_oid_name() to 
1403 return a descriptive name of a DN OID.
1404
1405 ** API and ABI modifications:
1406 gnutls_pubkey_encrypt_data: Added
1407 gnutls_x509_dn_oid_name: Added
1408 gnutls_session_resumption_requested: Added
1409 gnutls/ocsp.h: Added new header file.
1410 gnutls_ocsp_print_formats_t: Added new type.
1411 gnutls_ocsp_resp_status_t: Added new type.
1412 gnutls_ocsp_cert_status_t: Added new type.
1413 gnutls_x509_crl_reason_t: Added new type.
1414 gnutls_ocsp_req_add_cert: Added.
1415 gnutls_ocsp_req_add_cert_id: Added.
1416 gnutls_ocsp_req_deinit: Added.
1417 gnutls_ocsp_req_export: Added.
1418 gnutls_ocsp_req_get_cert_id: Added.
1419 gnutls_ocsp_req_get_extension: Added.
1420 gnutls_ocsp_req_get_nonce: Added.
1421 gnutls_ocsp_req_get_version: Added.
1422 gnutls_ocsp_req_import: Added.
1423 gnutls_ocsp_req_init: Added.
1424 gnutls_ocsp_req_print: Added.
1425 gnutls_ocsp_req_randomize_nonce: Added.
1426 gnutls_ocsp_req_set_extension: Added.
1427 gnutls_ocsp_req_set_nonce: Added.
1428 gnutls_ocsp_resp_deinit: Added.
1429 gnutls_ocsp_resp_export: Added.
1430 gnutls_ocsp_resp_get_certs: Added.
1431 gnutls_ocsp_resp_get_extension: Added.
1432 gnutls_ocsp_resp_get_nonce: Added.
1433 gnutls_ocsp_resp_get_produced: Added.
1434 gnutls_ocsp_resp_get_responder: Added.
1435 gnutls_ocsp_resp_get_response: Added.
1436 gnutls_ocsp_resp_get_signature: Added.
1437 gnutls_ocsp_resp_get_signature_algorithm: Added.
1438 gnutls_ocsp_resp_get_single: Added.
1439 gnutls_ocsp_resp_get_status: Added.
1440 gnutls_ocsp_resp_get_version: Added.
1441 gnutls_ocsp_resp_import: Added.
1442 gnutls_ocsp_resp_init: Added.
1443 gnutls_ocsp_resp_print: Added.
1444 gnutls_ocsp_resp_verify: Added.
1445
1446 * Version 3.0.11 (released 2012-01-06)
1447
1448 ** libgnutls: Corrected functionality of 
1449 gnutls_record_get_direction(). Reported by Philip Allison.
1450
1451 ** libgnutls: Provide less timing information when decoding
1452 TLS/DTLS record packets. Patch by Nadhem Alfardan.
1453
1454 ** API and ABI modifications:
1455 No changes since last version.
1456
1457
1458 * Version 3.0.10 (released 2012-01-04)
1459
1460 ** gnutls-cli/serv: Set don't fragment bit in DTLS sessions
1461 in Linux as well as in BSD.
1462
1463 ** gnutls-cli: Fixed reading from windows terminals.
1464
1465 ** libgnutls: When GNUTLS_OPENPGP_FMT_BASE64 is specified
1466 the stream is assumed to be base64 encoded (previously
1467 the encoding was auto-detected). This avoids a decoding
1468 issue in windows systems.
1469
1470 ** libgnutls: Corrected ciphersuite GNUTLS_ECDHE_PSK_AES_256_CBC_SHA384
1471
1472 ** libgnutls: Added ciphersuites: GNUTLS_PSK_WITH_AES_256_GCM_SHA384
1473 and GNUTLS_DHE_PSK_WITH_AES_256_GCM_SHA384.
1474
1475 ** libgnutls: Added function gnutls_random_art() to convert 
1476 fingerprints to images (currently ascii-art).
1477
1478 ** libgnutls: Corrected bug in DSA private key parsing, which
1479 prevented the verification of the key.
1480
1481 ** API and ABI modifications:
1482 gnutls_random_art: Added
1483
1484
1485 * Version 3.0.9 (released 2011-12-13)
1486
1487 ** certtool: Added new parameter --dh-info.
1488
1489 ** certtool: -l option was overloaded so if combined with --priority
1490 it will only list the ciphersuites that are enabled by the given
1491 priority string.
1492
1493 ** libgnutls: Added new priority string %SERVER_PRECEDENCE, which
1494 changes the ciphersuite selection procedure. If specified the server
1495 priorities will be used for selection instead of the client's.
1496
1497 ** libgnutls: Optimizations in Diffie-Hellman parameters generation
1498 and key exchange.
1499
1500 ** libgnutls: When session tickets are negotiated and used in a
1501 session, a server will not store that session data into its cache.
1502
1503 ** libgnutls: Added the SECP192R1 curve.
1504
1505 ** libgnutls: Added gnutls_priority_get_cipher_suite_index() to
1506 allow listing the ciphersuites enabled in a priority structure.
1507 It outputs an index to be used in gnutls_get_cipher_suite_info().
1508
1509 ** libgnutls: Optimizations in the elliptic curve code --timing
1510 attacks resistant code is only used in ECDSA private key operations.
1511
1512 ** doc: man pages for API functions generation was fixed and are
1513 now added again in the distribution.
1514
1515 ** API and ABI modifications:
1516 GNUTLS_ECC_CURVE_SECP192R1: New curve definition
1517 gnutls_priority_get_cipher_suite_index: Added
1518
1519
1520 * Version 3.0.8 (released 2011-11-12)
1521
1522 ** certtool: Certtool -e returns error code on verification
1523 failure.
1524
1525 ** certtool: Verifies parameters of generated keys.
1526
1527 ** libgnutls: Corrected ECC key generation (introduced in 3.0.6)
1528
1529 ** libgnutls: Provide less timing information when decoding
1530 TLS/DTLS record packets.
1531
1532 ** doc: man pages for API functions were removed.
1533 The reason was that the code that auto-generated the man pages missed
1534 many APIs and we couldn't fix it (volunteers welcome).  See the info
1535 manual or the GTK-DOC manual instead.
1536
1537 ** API and ABI modifications:
1538 gnutls_x509_privkey_verify_params: Added
1539
1540
1541 * Version 3.0.7 (released 2011-11-08)
1542
1543 ** libgnutls: Corrected fix in gnutls_session_get_data()
1544 to report the actual session size when the provided buffer
1545 is not enough.
1546
1547 ** libgnutls: Fixed ciphersuite GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256,
1548 which was using a wrong MAC algorithm. Reported by Fabrice Gautier.
1549
1550 ** API and ABI modifications:
1551 No changes since last version.
1552
1553
1554 * Version 3.0.6 (released 2011-11-07)
1555
1556 ** gnutls-guile: Compilation fixes.
1557
1558 ** libgnutls: Fixed possible buffer overflow in 
1559 gnutls_session_get_data(). Reported and fix by Alban Crequy.
1560
1561 ** libgnutls: Bug fixes in the ciphersuites with NULL cipher.
1562 Reported by Fabrice Gautier.
1563
1564 ** libgnutls: Bug fixes in ECC code for 64-bit MIPS systems. 
1565 Thanks to Joseph Graham for providing access to such a system.
1566
1567 ** libgnutls: Correctly report ECC private key parsing errors.
1568 Reported by Fabrice Gautier.
1569
1570 ** libgnutls: In ECDHE verify that the received point lies on
1571 the selected curve. The ECDHE ciphersuites now take precendence
1572 to plain DHE.
1573
1574 ** API and ABI modifications:
1575 No changes since last version.
1576
1577
1578 * Version 3.0.5 (released 2011-10-27)
1579
1580 ** libgnutls-extra: is no more
1581
1582 ** libgnutls: Corrections in order to compile with mingw32.
1583
1584 ** libgnutls: Corrections in VIA padlock code for VIA C5 processor
1585 and new detection of PHE with support for partial hashing.
1586
1587 ** libgnutls: Corrected bug in gnutls_x509_data2hex. Report and fix 
1588 by Vincent Untz.
1589
1590 ** minitasn1: Upgraded to libtasn1 version 2.10.
1591
1592 ** API and ABI modifications:
1593 No changes since last version.
1594
1595
1596 * Version 3.0.4 (released 2011-10-15)
1597
1598 ** libgnutls-extra: gnutls_register_md5_handler() was
1599 removed.
1600
1601 ** gnutls-cli-debug: Added more tests including AES-GCM,
1602 SHA256 and elliptic curves.
1603
1604 ** gnutls-cli: Added --benchmark-soft-ciphers to benchmark
1605 the software version of the ciphers instead of hw accelerated 
1606 (where available)
1607
1608 ** libgnutls: Public key ID calculation is consistent among
1609 all structures. It uses a SHA-1 hash of the subjectPublicKeyInfo.
1610
1611 ** libgnutls: gnutls_privkey_t allows setting external callback
1612 to perform signing or decryption. Can be set using
1613 gnutls_privkey_import_ext()
1614
1615 ** libgnutls: A certificate credentials structure can be
1616 used with a gnutls_privkey_t and a gnutls_pcert_st
1617 structure using gnutls_certificate_set_key().
1618
1619 ** libgnutls: Fixes to enable external signing callback to
1620 operate with TLS 1.2. 
1621
1622 ** libgnutls: Fixed crash when printing ECDSA certificate key 
1623 ID. Reported by Erik Jensen.
1624
1625 ** libgnutls: Corrected VIA padlock code for C3. In C3 benchmarks 
1626 show a 50x increase in AES speed and a 14x increase in VIA nano. Added 
1627 support for hashes and HMACs.
1628
1629 ** libgnutls: Compilation fixed when p11-kit is not detected.
1630
1631 ** libgnutls: Fixed the deflate compression code.
1632
1633 ** libgnutls: Added gnutls_x509_crt_get_authority_info_access.
1634 Used to get the PKIX Authority Information Access (AIA) field.
1635
1636 ** libgnutls: gnutls_x509_crt_print supports printing AIA fields.
1637
1638 ** libgnutls: Added ability to gnutls_privkey_t to operate with
1639 signing callback function.
1640
1641 ** API and ABI modifications:
1642 gnutls_x509_crt_get_authority_info_access (x509.h): Added function.
1643 gnutls_privkey_import_ext: Added function.
1644 gnutls_certificate_set_key: Added function.
1645 gnutls_info_access_what_t (x509.h): Added enum.
1646 GNUTLS_OID_AIA (x509.h): Added symbol.
1647 GNUTLS_OID_AD_OCSP (x509.h): Added symbol.
1648 GNUTLS_OID_AD_CAISSUERS (x509.h): Added symbol.
1649
1650 * Version 3.0.3 (released 2011-09-18)
1651
1652 ** libgnutls: Added gnutls_record_get_discarded() to return the
1653 number of discarded records in a DTLS session.
1654
1655 ** libgnutls: All functions related to RSA-EXPORT were deprecated.
1656 Support for RSA-EXPORT ciphersuites will be ceased in future versions.
1657
1658 ** libgnutls: Memory leak fixes in credentials private key 
1659 deinitialization. Reported by Dan Winship.
1660
1661 ** libgnutls: Memory leak fixes in ECC ciphersuites.
1662
1663 ** libgnutls: Do not send an empty extension structure in server 
1664 hello. This affected old implementations that do not support extensions. 
1665 Reported by J. Cameijo Cerdeira.
1666
1667 ** libgnutls: Allow CA importing of 0 certificates to succeed.
1668 Reported by Jonathan Nieder <jrnieder@gmail.com> in
1669 <http://bugs.debian.org/640639>.
1670
1671 ** libgnutls: Added support for VIA padlock AES optimizations.
1672 (disabled by default)
1673
1674 ** libgnutls: Added support for elliptic curves in
1675 PKCS #11.
1676
1677 ** libgnutls: Added gnutls_pkcs11_privkey_generate()
1678 to allow generating a key in a token.
1679
1680 ** p11tool: Added generate-rsa, generate-dsa and 
1681 generate-ecc options to allow generating private
1682 keys in the token.
1683
1684 ** libgnutls: gnutls_transport_set_lowat dummy macro was 
1685 removed.
1686
1687 ** API and ABI modifications:
1688 gnutls_pkcs11_privkey_generate: Added
1689 gnutls_pubkey_import_ecc_raw: Added
1690 gnutls_pubkey_import_ecc_x962: Added
1691 gnutls_pubkey_get_pk_ecc_x962: Added
1692 gnutls_record_get_discarded: Added
1693
1694
1695 * Version 3.0.2 (released 2011-09-01)
1696
1697 ** libgnutls: OpenPGP certificate type is not enabled
1698 by default.
1699
1700 ** libgnutls: Added %NO_EXTENSIONS priority string.
1701
1702 ** libgnutls: Corrected issue in gnutls_record_recv()
1703 triggered on encryption or compression error.
1704
1705 ** libgnutls: Compatibility fixes in CPU ID detection 
1706 for i386 and old GCC.
1707
1708 ** gnutls-cli: Benchmark applications were incorporated
1709 with it.
1710
1711 ** libgnutls: Corrected parsing of XMPP subject
1712 alternative names.
1713
1714 ** libgnutls: Allow for out-of-order ChangeCipherSpec
1715 message in DTLS.
1716
1717 ** libgnutls: gnutls_certificate_set_x509_key() and
1718 gnutls_certificate_set_openpgp_key() operate as in 2.10.x
1719 and allow the release of the private key during the
1720 lifetime of the certificate structure.
1721
1722 ** API and ABI modifications:
1723 GNUTLS_PRIVKEY_IMPORT_COPY: new gnutls_privkey_import() flag
1724
1725
1726 * Version 3.0.1 (released 2011-08-20)
1727
1728 ** libgnutls: gnutls_certificate_set_x509_key_file() and 
1729 friends support server name indication. If multiple 
1730 certificates are set using these functions the proper one 
1731 will be selected during a handshake. 
1732
1733 ** libgnutls: Added AES-256-GCM which was left out from
1734 the previous release. Reported by Benjamin Hof.
1735
1736 ** libgnutls: When asking for a PKCS# 11 PIN multiple 
1737 times, the flags in the callback were not being updated 
1738 to reflect for PIN low count or final try.
1739
1740 ** libgnutls: Do not allow second instances of PKCS #11
1741 modules.
1742
1743 ** libgnutls: fixed alignment issue in AES-NI code.
1744
1745 ** libgnutls: The config file at gnutls_pkcs11_init()
1746 is being read if provided.
1747
1748 ** libgnutls: Ensure that a certificate list specified
1749 using gnutls_certificate_set_x509_key() and friends, is 
1750 sorted according to TLS specification (from subject to issuer).
1751
1752 ** libgnutls: Added GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED flag for
1753 gnutls_x509_crt_list_import. It checks whether the list to be 
1754 imported is properly sorted.
1755
1756 ** crywrap: Added to the distribution. It is an application
1757 that proxies TLS session to a port using a plaintext service.
1758
1759 ** doc: Many GTK-DOC improvements.
1760
1761 ** i18n: Translations were updated.
1762
1763 ** API and ABI modifications:
1764 GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED: New element in gnutls_certificate_import_flags
1765 GNUTLS_PKCS11_PIN_WRONG: New flag for PIN callback
1766
1767
1768 * Version 3.0.0 (released 2011-07-29)
1769
1770 ** libgnutls: writev_emu: stop on the first incomplete write. Patch by
1771 Sjoerd Simons.
1772
1773 ** libgnutls: Fix zlib handling in gnutls.pc. Patch by Andreas
1774 Metzler.
1775
1776 ** certtool: bug fixes in certificate request generation. Patch
1777 by Petr Písař.
1778
1779 ** API and ABI modifications:
1780 gnutls_pcert_list_import_x509_raw: ADDED
1781
1782
1783 * Version 2.99.4 (released 2011-07-23)
1784
1785 ** doc: documentation updates.
1786
1787 ** libgnutls: gnutls_rsa_params_t is now identical to gnutls_x509_privkey_t
1788 to avoid thread-safety issues. Reported by Sam Varshavchik.
1789
1790 ** libgnutls: Added compatibility mode with /etc/gnutls/pkcs11.conf
1791
1792 ** libgnutls: license upgraded to LGPLv3
1793
1794 ** libgnutls: gnutls_srp_verifier() returns data allocated with gnutls_malloc()
1795 for consistency.
1796
1797 ** API and ABI modifications:
1798 No changes since last version.
1799
1800
1801 * Version 2.99.3 (released 2011-06-18)
1802
1803 ** libgnutls: Added new PKCS #11 flags to force an object being private or
1804 not. (GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE and GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE)
1805
1806 ** libgnutls: Added SUITEB128 and SUITEB192 priority
1807 strings to enable the NSA SuiteB cryptography ciphersuites.
1808
1809 ** libgnutls: Added gnutls_pubkey_verify_data2() that will
1810 verify data provided the signature algorithm.
1811
1812 ** libgnutls: Simplified the handling of handshake messages to 
1813 be hashed. Instead of hashing during the handshake process we now 
1814 keep the data until handshake is over and hash them on request. 
1815 This uses more memory but eliminates issues with TLS 1.2 and 
1816 simplifies code.
1817
1818 ** libgnutls: Added AES-GCM optimizations using the PCLMULQDQ
1819 instruction. Uses Andy Polyakov's assembly code.
1820
1821 ** libgnutls: Added gnutls_x509_trust_list_add_named_crt() and
1822 gnutls_x509_trust_list_verify_named_crt() that allow having a
1823 list of certificates in the trusted list that will be associated
1824 with a name (e.g. server name) and will not be used as CAs.
1825
1826 ** libgnutls: PKCS #11 back-end rewritten to use p11-kit
1827 http://p11-glue.freedesktop.org/p11-kit.html. Rewrite by
1828 Stef Walter.
1829
1830 ** libgnutls: Added ECDHE-PSK ciphersuites for TLS (RFC 5489).
1831
1832 ** API and ABI modifications:
1833 gnutls_pubkey_verify_data2: ADDED
1834 gnutls_ecc_curve_get: ADDED
1835 gnutls_x509_trust_list_add_named_crt: ADDED
1836 gnutls_x509_trust_list_verify_named_crt: ADDED
1837 gnutls_x509_privkey_verify_data: REMOVED
1838 gnutls_crypto_bigint_register: REMOVED
1839 gnutls_crypto_cipher_register: REMOVED
1840 gnutls_crypto_digest_register: REMOVED
1841 gnutls_crypto_mac_register: REMOVED
1842 gnutls_crypto_pk_register: REMOVED
1843 gnutls_crypto_rnd_register: REMOVED
1844 gnutls_crypto_single_cipher_register: REMOVED
1845 gnutls_crypto_single_digest_register: REMOVED
1846 gnutls_crypto_single_mac_register: REMOVED
1847 GNUTLS_KX_ECDHE_PSK: New key exchange method
1848 GNUTLS_VERIFY_DISABLE_CRL_CHECKS: New certificate verification flag.
1849 GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE: New PKCS#11 object flag.
1850 GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE: New PKCS#11 object flag.
1851
1852
1853 * Version 2.99.2 (released 2011-05-26)
1854
1855 ** libgnutls: Added Elliptic curve support. This is not
1856 enabled by default. Requires priority strings:
1857 +CURVE-ALL: to add all supported curves
1858 +ECDHE-RSA: to add ephemeral ECDHE with an RSA-signed certificate
1859 +ECDHE-ECDSA: to add ephemeral ECDHE with an ECDSA-signed certificate
1860 +ANON-ECDHE: to add anonymous ECDH
1861
1862 ** libgnutls: PKCS #11 URLs conform to the latest draft
1863 being http://tools.ietf.org/html/draft-pechanec-pkcs11uri-04.
1864
1865 ** certtool: Can now load private keys and public keys from PKCS #11 tokens
1866 via URLs.
1867
1868 ** libgnutls: Added gnutls_global_set_audit_log_function() that allows
1869 to get important auditing information including the corresponding session.
1870 That might be useful to block DoS or other attacker from specific IPs.
1871
1872 ** libgnutls: gnutls_pkcs11_privkey_import_url() will now correctly read
1873 the public key algorithm of the key.
1874
1875 ** libgnutls: Added gnutls_certificate_get_issuer() and
1876 gnutls_x509_trust_list_get_issuer() to compensate for the
1877 missing gnutls_certificate_get_x509_cas().
1878
1879 ** libgnutls: Added gnutls_x509_crq_verify() to allow
1880 verification of the self signature in a certificate request.
1881 This allows verifying whether the owner of the private key
1882 is the generator of the request.
1883
1884 ** libgnutls: gnutls_x509_crt_set_crq() implicitly verifies
1885 the self signature of the request.
1886
1887 ** API and ABI modifications:
1888 gnutls_certificate_get_issuer: ADDED
1889 gnutls_x509_trust_list_get_issuer: ADDED
1890 gnutls_x509_crq_verify: ADDED
1891 gnutls_global_set_audit_log_function: ADDED
1892 gnutls_ecc_curve_get_name: ADDED
1893 gnutls_ecc_curve_get_size: ADDED
1894 gnutls_x509_privkey_import_ecc_raw: ADDED
1895 gnutls_x509_privkey_export_ecc_raw: ADDED
1896 gnutls_global_set_time_function: ADDED
1897
1898 GNUTLS_E_ECC_NO_SUPPORTED_CURVES: New error code
1899 GNUTLS_E_ECC_UNSUPPORTED_CURVE: New error code
1900 GNUTLS_KX_ECDHE_RSA: New key exchange method
1901 GNUTLS_KX_ECDHE_ECDSA: New key exchange method
1902 GNUTLS_KX_ANON_ECDH: New key exchange method
1903 GNUTLS_PK_ECC: New public key algorithm
1904 GNUTLS_SIGN_ECDSA_SHA1: New signature algorithm
1905 GNUTLS_SIGN_ECDSA_SHA256: New signature algorithm
1906 GNUTLS_SIGN_ECDSA_SHA384: New signature algorithm
1907 GNUTLS_SIGN_ECDSA_SHA512: New signature algorithm 
1908 GNUTLS_SIGN_ECDSA_SHA224: New signature algorithm
1909 GNUTLS_ECC_CURVE_INVALID: New curve definition
1910 GNUTLS_ECC_CURVE_SECP224R1: New curve definition
1911 GNUTLS_ECC_CURVE_SECP256R1: New curve definition
1912 GNUTLS_ECC_CURVE_SECP384R1: New curve definition
1913 GNUTLS_ECC_CURVE_SECP521R1: New curve definition
1914
1915
1916 * Version 2.99.1 (released 2011-04-23)
1917
1918 ** libgnutls: LZO support was removed.
1919
1920 ** libgnutls: Corrections in SSLv2 client hello parsing.
1921
1922 ** libgnutls: Added support for AES-NI if detected. Uses
1923 Andy Polyakov's AES-NI code.
1924
1925 ** libgnutls: Restored HMAC-MD5 for compatibility. Although considered 
1926 weak, several sites require it for connection. It is enabled for
1927 "NORMAL" and "PERFORMANCE" priority strings.
1928
1929 ** libgnutls: depend on libdl.
1930
1931 ** libgnutls-extra: Dropped support of LZO compression via liblzo.
1932
1933 ** libgnutls: gnutls_transport_set_global_errno() was removed. This
1934 function required GnuTLS to access system specific data, for no reason.
1935 Use gnutls_transport_set_errno(), or your system's errno fascility
1936 instead.
1937
1938 ** libgnutls: Added gnutls_certificate_set_retrieve_function2()
1939 to set a callback to retrieve a certificate. The certificate is
1940 received in a format that requires no processing from gnutls thus
1941 it is suitable when performance is required.
1942
1943 ** API and ABI modifications:
1944 gnutls_transport_set_global_errno: REMOVED
1945 gnutls_certificate_set_retrieve_function2: ADDED
1946
1947 * Version 2.99.0 (released 2011-04-09)
1948
1949 ** libgnutls: Added Datagram TLS support.
1950
1951 ** libgnutls: Uses a single configure file and a single
1952 gnulib library to save space.
1953
1954 ** libgnutls: Several bug fixes.
1955
1956 ** libgnutls: gnutls_transport_set_lowat() is no more.
1957
1958 ** libgnutls-openssl: modified to use modern gnutls' functions.
1959 This introduces an ABI incompatibility with previous versions.
1960
1961 ** libgnutls: Corrected signature generation and verification
1962 in the Certificate Verify message when in TLS 1.2. Reported
1963 by Todd A. Ouska.
1964
1965 ** libgnutlsxx: The C++ interface returns exception on
1966 every error and not only on fatal ones. This allows easier
1967 handling of errors.
1968
1969 ** libgnutls: Corrected issue in DHE-PSK ciphersuites that ignored    
1970 the PSK callback.
1971
1972 ** libgnutls: SRP and PSK are no longer set on the default priorities. 
1973 They have to be explicitly set.
1974
1975 ** libgnutls: During handshake message verification using DSS
1976 use the hash algorithm required by it.
1977
1978 ** libgnutls: gnutls_recv() return GNUTLS_E_PREMATURE_TERMINATION
1979 on unexpected EOF, instead of GNUTLS_E_UNEXPECTED_PACKET_LENGTH.
1980
1981 ** libgnutls: Added GCM mode (interoperates with tls.secg.org)
1982
1983 ** libgnutls-extra: Inner application extension was removed.
1984 It was never standardized nor published as an RFC.
1985
1986 ** libgnutls: Added new certificate verification functions, that
1987 can provide more details and are more efficient. Check 
1988 gnutls_x509_trust_list_*.
1989
1990 ** certtool: Uses the new certificate verification functions for
1991 --verify-chain.
1992
1993 ** certtool: Added new certificate verification functionality
1994 using the --verify option. Combined with --load-ca-certificate
1995 it can verify a certificate chain against a list of certificates.
1996
1997 ** Several files unnecessarily included <gcrypt.h>; this has been fixed.
1998
1999 ** API and ABI modifications:
2000 gnutls_dtls_set_timeouts: ADDED
2001 gnutls_dtls_get_mtu: ADDED
2002 gnutls_dtls_get_data_mtu: ADDED
2003 gnutls_dtls_set_mtu: ADDED
2004 gnutls_dtls_cookie_send: ADDED
2005 gnutls_dtls_cookie_verify: ADDED
2006 gnutls_dtls_prestate_set: ADDED
2007 gnutls_x509_trust_list_verify_crt: ADDED
2008 gnutls_x509_trust_list_add_crls: ADDED
2009 gnutls_x509_trust_list_add_cas: ADDED
2010 gnutls_x509_trust_list_init: ADDED
2011 gnutls_x509_trust_list_deinit: ADDED
2012 gnutls_cipher_add_auth: ADDED
2013 gnutls_cipher_tag: ADDED
2014 gnutls_psk_netconf_derive_key: REMOVED
2015 gnutls_certificate_verify_peers: REMOVED
2016 gnutls_session_set_finished_function: REMOVED
2017 gnutls_ext_register: REMOVED
2018 gnutls_certificate_get_x509_crls: REMOVED
2019 gnutls_certificate_get_x509_cas: REMOVED
2020 gnutls_certificate_get_openpgp_keyring: REMOVED
2021 gnutls_session_get_server_random: REMOVED
2022 gnutls_session_get_client_random: REMOVED
2023 gnutls_session_get_master_secret: REMOVED
2024 gnutls_ia_allocate_client_credentials: REMOVED
2025 gnutls_ia_allocate_server_credentials: REMOVED
2026 gnutls_ia_enable: REMOVED
2027 gnutls_ia_endphase_send: REMOVED
2028 gnutls_ia_extract_inner_secret: REMOVED
2029 gnutls_ia_free_client_credentials: REMOVED
2030 gnutls_ia_free_server_credentials: REMOVED
2031 gnutls_ia_generate_challenge: REMOVED
2032 gnutls_ia_get_client_avp_ptr: REMOVED
2033 gnutls_ia_get_server_avp_ptr: REMOVED
2034 gnutls_ia_handshake: REMOVED
2035 gnutls_ia_handshake_p: REMOVED
2036 gnutls_ia_permute_inner_secret: REMOVED
2037 gnutls_ia_recv: REMOVED
2038 gnutls_ia_send: REMOVED
2039 gnutls_ia_set_client_avp_function: REMOVED
2040 gnutls_ia_set_client_avp_ptr: REMOVED
2041 gnutls_ia_set_server_avp_function: REMOVED
2042 gnutls_ia_set_server_avp_ptr: REMOVED
2043 gnutls_ia_verify_endphase: REMOVED
2044
2045
2046 * Version 2.12.2 (released 2011-04-08)
2047
2048 ** libgnutls: Several updates and fixes for win32. Patches by LRN.
2049
2050 ** libgnutls: Several bug and memory leak fixes.
2051
2052 ** srptool: Accepts the -d option to enable debugging.
2053
2054 ** libgnutls: Corrected bug in gnutls_srp_verifier() that prevented
2055 the allocation of a verifier. Reported by Andrew Wiseman.
2056
2057 ** API and ABI modifications:
2058 No changes since last version.
2059
2060
2061 * Version 2.12.1 (released 2011-04-02)
2062
2063 ** certtool: Generated certificate request with stricter permissions.
2064 Reported by Luca Capello.
2065
2066 ** libgnutls: Bug fixes in opencdk code. Reported by Vitaly Kruglikov.
2067
2068 ** libgnutls: Corrected windows system_errno() function prototype.
2069
2070 ** libgnutls: C++ compatibility fix for compat.h. Reported by Mark Brand.
2071
2072 ** libgnutls: Fix size of gnutls_openpgp_keyid_t by using the
2073 GNUTLS_OPENPGP_KEYID_SIZE definition. Reported by Andreas Metzler.
2074
2075 ** API and ABI modifications:
2076 No changes since last version.
2077
2078
2079
2080
2081 * Version 2.12.0 (released 2011-03-24)
2082
2083 ** certtool: Warns on generation of DSA keys of over 1024 bits, about
2084 the incompatibility with TLS other than 1.2.
2085
2086 ** libgnutls: Modified signature algorithm selection in client
2087 certificate request, to avoid failures in DSA certificates.
2088
2089 ** libgnutls: Instead of failing with internal error, return 
2090 GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL if an incompatible DSA
2091 key with the negotiated protocol is encountered.
2092
2093 ** libgnutls: Bug fixes in the RSA ciphersuite behavior with openpgp keys.
2094
2095 ** libgnutls: Force state update when fork is detected in the nettle
2096 rng.
2097
2098 ** libgnutls: modified gnutls_pubkey_import_openpgp() to use the preferred
2099 subkey instead of setting explicitly one.
2100
2101 ** libgnutls: Corrected default behavior in record version of Client Hellos.
2102
2103 ** libgnutls-openssl: modified to use modern gnutls' functions.
2104 This introduces an ABI incompatibility with previous versions.
2105
2106 ** API and ABI modifications:
2107 gnutls_pubkey_import_openpgp: MODIFIED
2108
2109
2110 * Version 2.11.7
2111
2112 ** libgnutls: The deprecated  gnutls_x509_privkey_sign_hash() was
2113 replaced by gnutls_privkey_sign_hash2().
2114
2115 ** libgnutls: gnutls_pubkey_verify_data, gnutls_pubkey_verify_hash,
2116 gnutls_x509_privkey_verify_data, gnutls_x509_crt_verify_data, 
2117 gnutls_x509_crt_verify_hash return the negative error code 
2118 GNUTLS_E_PK_SIG_VERIFY_FAILED if verification fails to simplify error 
2119 checking.
2120
2121 ** libgnutls: Added helper functions for signature verification:
2122 gnutls_pubkey_verify_data() and gnutls_pubkey_import_privkey().
2123
2124 ** libgnutls: Modified gnutls_privkey_sign_data().
2125
2126 ** gnutls_x509_crl_privkey_sign2(), gnutls_x509_crq_sign2()
2127 gnutls_x509_privkey_sign_hash(), gnutls_x509_privkey_sign_data(),
2128 gnutls_x509_crt_verify_hash(), gnutls_x509_crt_verify_data(), were
2129 deprecated for gnutls_x509_crl_privkey_sign(),
2130 gnutls_x509_crq_privkey_sign(), gnutls_privkey_sign_hash(),
2131 gnutls_privkey_sign_data(), gnutls_pubkey_verify_hash()
2132 gnutls_pubkey_verify_data() respectively.
2133
2134 ** libgnutls: gnutls_*_export_raw() functions now add leading zero in
2135 integers.
2136
2137 ** libgnutls: Added convenience functions gnutls_x509_crl_list_import2()
2138 and gnutls_x509_crt_list_import2().
2139
2140 ** crypto.h: Fix use with C++.
2141 Reported by "Brendan Doherty" <brendand@gentrack.com>.
2142
2143 ** API and ABI modifications:
2144 gnutls_x509_crl_list_import: ADDED
2145 gnutls_x509_crl_list_import2: ADDED
2146 gnutls_x509_crt_list_import2: ADDED
2147 gnutls_x509_crl_get_raw_issuer_dn: ADDED
2148 gnutls_pubkey_import_privkey: ADDED
2149 gnutls_pubkey_verify_data: ADDED
2150 gnutls_privkey_sign_hash: MODIFIED (was added in 2.11.0)
2151 gnutls_privkey_sign_data: MODIFIED (was added in 2.11.0)
2152 gnutls_x509_crq_sign2: DEPRECATED (use: gnutls_x509_crq_privkey_sign)
2153 gnutls_x509_crq_sign: DEPRECATED (use: gnutls_x509_crq_privkey_sign)
2154 gnutls_x509_crq_get_preferred_hash_algorithm: REMOVED (was added in 2.11.0)
2155 gnutls_x509_crl_sign: DEPRECATED (use: gnutls_x509_crl_privkey_sign)
2156 gnutls_x509_crl_sign2: DEPRECATED (use: gnutls_x509_crl_privkey_sign)
2157 gnutls_x509_privkey_sign_data: DEPRECATED (use: gnutls_privkey_sign_data2)
2158 gnutls_x509_privkey_sign_hash: DEPRECATED (use: gnutls_privkey_sign_hash2)
2159 gnutls_x509_privkey_verify_data: DEPRECATED (use: gnutls_pubkey_verify_data)
2160 gnutls_session_set_finished_function: DEPRECATED
2161 gnutls_x509_crt_verify_hash: DEPRECATED (use: gnutls_pubkey_verify_hash)
2162 gnutls_x509_crt_verify_data: DEPRECATED (use: gnutls_pubkey_verify_data)
2163 gnutls_x509_crt_get_verify_algorithm: DEPRECATED (use: gnutls_pubkey_get_verify_algorithm)
2164 gnutls_x509_crt_get_preferred_hash_algorithm: DEPRECATED (use: gnutls_pubkey_get_preferred_hash_algorithm)
2165 gnutls_openpgp_privkey_sign_hash: DEPRECATED (use: gnutls_privkey_sign_hash2)
2166 gnutls_pkcs11_privkey_sign_hash: REMOVED (was added in 2.11.0)
2167 gnutls_pkcs11_privkey_decrypt_data: REMOVED (was added in 2.11.0)
2168 gnutls_privkey_sign_hash: REMOVED (was added in 2.11.0)
2169
2170 * Version 2.11.6 (released 2010-12-06)
2171
2172 ** libgnutls: Record version of Client Hellos is now set by default to
2173 SSL 3.0. To restore the previous default behavior use %LATEST_RECORD_VERSION
2174 priority string.
2175
2176 ** libgnutls: Use ASN1_NULL when writing parameters for RSA signatures. 
2177 This makes us comply with RFC3279. Reported by Michael Rommel.
2178
2179 ** gnutls-serv: Corrected a buffer overflow. Reported and patch by Tomas Mraz.
2180
2181 ** API and ABI modifications:
2182 No changes since last version.
2183
2184 * Version 2.11.5 (released 2010-12-01)
2185
2186 ** libgnutls: Reverted default behavior for verification and
2187 introduced GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT. Thus by default
2188 V1 trusted CAs are allowed, unless the new flag is specified.
2189
2190 ** libgnutls: Correctly add leading zero to PKCS #8 encoded DSA key.
2191 Reported by Jeffrey Walton.
2192
2193 ** libgnutls: Added SIGN-ALL, CTYPE-ALL, COMP-ALL, and VERS-TLS-ALL
2194 as priority strings. Those allow to set all the supported algorithms
2195 at once.
2196
2197 ** p11tool: Introduced. It allows manipulating pkcs 11 tokens.
2198
2199 ** gnutls-cli: Print channel binding only in verbose mode.
2200 Before it printed it after the 'Compression:' output, thus breaking
2201 Emacs starttls.el string searches.
2202
2203 ** API and ABI modifications:
2204 gnutls_pkcs11_token_init: New function
2205 gnutls_pkcs11_token_set_pin: New function
2206
2207 * Version 2.11.4 (released 2010-10-15)
2208
2209 ** libgnutls: Add new API gnutls_session_channel_binding.
2210 The function is used to get the channel binding data.  Currently only
2211 the "tls-unique" (RFC 5929) channel binding type is supported, through
2212 the GNUTLS_CB_TLS_UNIQUE type.  See new section "Channel Bindings" in
2213 the manual.
2214
2215 ** gnutls-cli, gnutls-serv: Print 'tls-unique' Channel Bindings.
2216
2217 ** doc: Added pkcs11.h header file to GTK-DOC manual.
2218
2219 ** build: Update gnulib files.
2220
2221 ** i18n: Update translations.
2222
2223 ** tests: Add self tests gendh.c.  Speed up Guile self checks.
2224
2225 ** API and ABI modifications:
2226 gnutls_session_channel_binding: New function.
2227 gnutls_channel_binding_t: New enumeration.
2228 GNUTLS_CB_TLS_UNIQUE: New gnutls_channel_binding_t enum member.
2229 GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE: New error code.
2230
2231 * Version 2.11.3 (released 2010-10-14)
2232
2233 ** Indent code to follow the GNU Coding Standard.
2234 You should be able to unpack the 2.11.2 release and run 'make indent'
2235 twice to get exactly the same content as 2.11.3 except for generated
2236 files.  Using GNU Indent 2.2.11.
2237
2238 ** API and ABI modifications:
2239 No changes since last version.
2240
2241 * Version 2.11.2 (released 2010-10-08)
2242
2243 ** libgnutls: Several bug fixes on session resumption
2244 and session tickets support.
2245
2246 ** libgnutls: Add new extended key usage ipsecIKE.
2247
2248 ** certtool: Renamed PKCS #11 options to: --p11-provider,
2249 --p11-export-url, --p11-list-certs, --p11-list-certs,
2250 --p11-list-privkeys, --p11-list-trusted, --p11-list-all-certs,
2251 --p11-list-all, --p11-list-tokens, --p11-login, --p11-write,
2252 --p11-write-label, --p11-write-trusted, --p11-detailed-url,
2253 --p11-delete-url
2254
2255 ** libgnutls: Corrected bug that caused importing DSA keys as RSA,
2256 introduced with the new nettle code.
2257
2258 ** libgnutls: Corrected advertizing issue for session tickets.
2259
2260 ** API and ABI modifications:
2261 gnutls_x509_crt_get_subject_unique_id: ADDED.
2262 gnutls_x509_crt_get_issuer_unique_id: ADDED.
2263
2264 * Version 2.11.1 (released 2010-09-14)
2265
2266 ** libgnutls: Nettle is the default crypto back end. Use --with-libgcrypt
2267 to use the libgcrypt back end.
2268
2269 ** libgnutls: Depend on nettle 2.1. This makes nettle a fully working
2270 backend crypto library.
2271
2272 ** libgnutls: Added RSA_NULL_SHA1 and SHA256 ciphersuites.
2273
2274 ** libgnutls: Several updates in the buffering internal interface.
2275
2276 ** libgnutls: Is now more liberal in the PEM decoding. That is spaces and 
2277 tabs are being skipped.
2278
2279 ** libgnutls: Added support for draft-pechanec-pkcs11uri-02.
2280
2281 ** libgnutls: The %COMPAT flag now allows larger records that violate the
2282 TLS spec.
2283
2284 ** libgnutls: by default lowat level has been set to zero to avoid unnecessary
2285 system calls. Applications that depended on it being 1 should explicitly call
2286 gnutls_transport_set_lowat().
2287
2288 ** libgnutls: Updated documentation and gnutls_pk_params_t mappings
2289 to ECRYPT II recommendations. Mappings were moved to a single location
2290 and DSA keys are handled differently (since DSA2 allows for 1024,2048
2291 and 3072 keys only).
2292
2293 ** libgnutls: gnutls_x509_privkey_import() will fallback to
2294 gnutls_x509_privkey_import_pkcs8() without a password, if it
2295 is unable to decode the key.
2296
2297 ** libgnutls: HMAC-MD5 no longer used by default.
2298
2299 ** API and ABI modifications:
2300 gnutls_openpgp_privkey_sec_param: ADDED
2301 gnutls_x509_privkey_sec_param: ADDED
2302
2303 * Version 2.11.0 (released 2010-07-22)
2304
2305 ** libgnutls: support scattered write using writev(). This takes
2306 advantage of the new buffering layer and allows queuing of packets
2307 and flushing them. This is currently used for handshake messages
2308 only.
2309
2310 ** libgnutls: Added gnutls_global_set_mutex() to allow setting
2311 alternative locking procedures. By default the system available
2312 locking is used. In *NIX pthreads are used and in windows the
2313 critical section API. This follows a different approach than the
2314 previous versions that depended on libgcrypt initialization. The
2315 locks are now set by default in systems that support it. Programs
2316 that used gcry_control() to set thread locks should insert it into
2317 a block of
2318 #if GNUTLS_VERSION_NUMBER <= 0x020b00
2319         gcry_control(...)
2320 #endif
2321
2322 ** libgnutls: Added support for reading DN from EV-certificates.
2323 New DN values:
2324 jurisdictionOfIncorporationLocalityName,
2325 jurisdictionOfIncorporationStateOrProvinceName,
2326 jurisdictionOfIncorporationCountryName
2327
2328 ** libgnutls: Added support for DSA signing/verifying with bit 
2329 length over 1024.
2330
2331 ** libgnutls-extra: When in FIPS mode gnutls_global_init_extra()
2332 has to be called to register any required md5 handlers.
2333
2334 ** libgnutls: Internal buffering code was replaced by simpler
2335 code contributed by Jonathan Bastien-Filiatrault.
2336
2337 ** libgnutls: Internal API for extensions augmented to allow
2338 safe storing and loading of data on resumption. This allows writing
2339 self-contained extensions (when possible). As a side effect
2340 the OPRFI extension was removed.
2341
2342 ** libgnutls: Added support for DSA-SHA256 and DSA-SHA224
2343
2344 ** libgnutls: Added PKCS #11 support and an API to access objects in
2345 gnutls/pkcs11.h. Currently certificates and public keys can be
2346 imported from tokens, and operations can be performed on private keys.
2347
2348 ** libgnutls: Added abstract gnutls_privkey_t and gnutls_pubkey_t
2349
2350 ** libgnutls: Added initial support for the nettle library. It uses
2351 the system's random generator for seeding. That is /dev/urandom in Linux, 
2352 system calls in Win32 and EGD on other systems.
2353
2354 ** libgnutls: Corrected issue on the %SSL3_RECORD_VERSION priority string. It now
2355     works even when resuming a session.
2356
2357 ** libgnutls: Added gnutls_certificate_set_retrieve_function() to replace the
2358 similar gnutls_certificate_set_server_retrieve_function() and
2359 gnutls_certificate_set_client_retrieve_function(). In addition it support
2360 PKCS #11 private keys.
2361
2362 ** libgnutls: Added  gnutls_pkcs11_copy_x509_crt(), gnutls_pkcs11_copy_x509_privkey(),
2363 and gnutls_pkcs11_delete_url() to allow copying and deleting data in tokens.
2364
2365 ** libgnutls: Added gnutls_sec_param_to_pk_bits() et al. to allow select bit
2366 sizes for private keys using a human understandable scale.
2367
2368 ** certtool: Added new options: --pkcs11-list-tokens, --pkcs11-list-all
2369 --pkcs11-list-all-certs, --pkcs11-list-trusted, --pkcs11-list-certs,
2370 --pkcs11-delete-url, --pkcs11-write
2371
2372 certtool: The --pkcs-cipher is taken into account when generating a
2373 private key. The default cipher used now is aes-128. The old behavior can
2374 be simulated by specifying "--pkcs-cipher 3des-pkcs12".
2375
2376 certtool: Added --certificate-pubkey to print the public key of the
2377 certificate.
2378
2379 ** gnutls-cli/gnutls-serv: --x509cafile, --x509certfile and --x509keyfile
2380 can now accept a PKCS #11 URL in addition to a file. This will allow for
2381 example to use the Gnome-keyring trusted certificate list to verify
2382 connections using a url such as:
2383 pkcs11:token=Root%20CA%20Certificates;serial=1%3AROOTS%3ADEFAULT;model=1%2E0;manufacturer=Gnome%20Keyring
2384
2385 ** API and ABI modifications:
2386 gnutls_certificate_set_server_retrieve_function: DEPRECATED
2387 gnutls_certificate_set_client_retrieve_function: DEPRECATED
2388 gnutls_sign_callback_set: DEPRECATED
2389 gnutls_global_set_mutex: ADDED
2390 gnutls_pubkey_get_preferred_hash_algorithm: ADDED
2391 gnutls_x509_crt_get_preferred_hash_algorithm: ADDED
2392 gnutls_x509_privkey_export_rsa_raw2: ADDED
2393 gnutls_rnd: ADDED
2394 gnutls_sec_param_to_pk_bits: ADDED
2395 gnutls_pk_bits_to_sec_param: ADDED
2396 gnutls_sec_param_get_name: ADDED
2397 gnutls_pkcs11_type_get_name: ADDED
2398 gnutls_certificate_set_retrieve_function: ADDED
2399 gnutls_pkcs11_init: ADDED
2400 gnutls_pkcs11_deinit: ADDED
2401 gnutls_pkcs11_set_pin_function: ADDED
2402 gnutls_pkcs11_set_token_function: ADDED
2403 gnutls_pkcs11_add_provider: ADDED
2404 gnutls_pkcs11_obj_init: ADDED
2405 gnutls_pkcs11_obj_import_url: ADDED
2406 gnutls_pkcs11_obj_export_url: ADDED
2407 gnutls_pkcs11_obj_deinit: ADDED
2408 gnutls_pkcs11_obj_export: ADDED
2409 gnutls_pkcs11_obj_list_import_url: ADDED
2410 gnutls_pkcs11_obj_export: ADDED
2411 gnutls_x509_crt_import_pkcs11: ADDED
2412 gnutls_pkcs11_obj_get_type: ADDED
2413 gnutls_x509_crt_list_import_pkcs11: ADDED
2414 gnutls_x509_crt_import_pkcs11_url: ADDED
2415 gnutls_pkcs11_obj_get_info: ADDED
2416 gnutls_pkcs11_token_get_info: ADDED
2417 gnutls_pkcs11_token_get_url: ADDED
2418 gnutls_pkcs11_privkey_init: ADDED
2419 gnutls_pkcs11_privkey_deinit: ADDED
2420 gnutls_pkcs11_privkey_get_pk_algorithm: ADDED
2421 gnutls_pkcs11_privkey_get_info: ADDED
2422 gnutls_pkcs11_privkey_import_url: ADDED
2423 gnutls_pkcs11_privkey_sign_data: ADDED
2424 gnutls_pkcs11_privkey_sign_hash: ADDED
2425 gnutls_pkcs11_privkey_decrypt_data: ADDED
2426 gnutls_privkey_init: ADDED
2427 gnutls_privkey_deinit: ADDED
2428 gnutls_privkey_get_pk_algorithm: ADDED
2429 gnutls_privkey_get_type: ADDED
2430 gnutls_privkey_import_pkcs11: ADDED
2431 gnutls_privkey_import_x509: ADDED
2432 gnutls_privkey_import_openpgp: ADDED
2433 gnutls_privkey_sign_data: ADDED
2434 gnutls_privkey_sign_hash: ADDED
2435 gnutls_privkey_decrypt_data: ADDED
2436 gnutls_pkcs11_privkey_export_url: ADDED
2437 gnutls_x509_crq_privkey_sign: ADDED
2438 gnutls_x509_crl_privkey_sign: ADDED
2439 gnutls_x509_crt_privkey_sign: ADDED
2440 gnutls_pubkey_init: ADDED
2441 gnutls_pubkey_deinit: ADDED
2442 gnutls_pubkey_get_pk_algorithm: ADDED
2443 gnutls_pubkey_import_x509: ADDED
2444 gnutls_pubkey_import_openpgp: ADDED
2445 gnutls_pubkey_get_pk_rsa_raw: ADDED
2446 gnutls_pubkey_get_pk_dsa_raw: ADDED
2447 gnutls_pubkey_export: ADDED
2448 gnutls_pubkey_get_key_id: ADDED
2449 gnutls_pubkey_get_key_usage: ADDED
2450 gnutls_pubkey_verify_hash: ADDED
2451 gnutls_pubkey_get_verify_algorithm: ADDED
2452 gnutls_pkcs11_type_get_name: ADDED
2453 gnutls_pubkey_import_pkcs11_url: ADDED
2454 gnutls_pubkey_import: ADDED
2455 gnutls_pubkey_import_pkcs11: ADDED
2456 gnutls_pubkey_import_dsa_raw: ADDED
2457 gnutls_pubkey_import_rsa_raw: ADDED
2458 gnutls_x509_crt_set_pubkey: ADDED
2459 gnutls_x509_crq_set_pubkey: ADDED
2460 gnutls_pkcs11_copy_x509_crt: ADDED
2461 gnutls_pkcs11_copy_x509_privkey: ADDED
2462 gnutls_pkcs11_delete_url: ADDED
2463
2464 * Version 2.10.1 (released 2010-07-25)
2465
2466 ** libgnutls: Added support for broken certificates that indicate RSA
2467 with strange OIDs.
2468
2469 ** gnutls-cli: Allow verification using V1 CAs.
2470
2471 ** libgnutls: gnutls_x509_privkey_import() will fallback to
2472 gnutls_x509_privkey_import_pkcs8() without a password, if it
2473 is unable to decode the key.
2474
2475 ** libgnutls: Correctly deinitialize crypto API functions to prevent
2476 a memory leak.  Reported by Mads Kiilerich.
2477
2478 ** certtool: If asked to generate DSA keys of size more than 1024 bits,
2479 issue a warning, that the output key might not be working everywhere.
2480
2481 ** certtool: The --pkcs-cipher is taken into account when generating a
2482 private key. The default cipher used now is aes-128. The old behavior
2483 can be simulated by specifying "--pkcs-cipher 3des-pkcs12".
2484
2485 ** API and ABI modifications:
2486 No changes since last version.
2487
2488 * Version 2.10.0 (released 2010-06-25)
2489
2490 ** API and ABI modifications:
2491 No changes since last version.
2492
2493 * Version 2.9.12 (released 2010-06-17)
2494
2495 ** gnutls-cli: Make --starttls work again.
2496 Problem introduced in patch to use read() instead of fgets() committed
2497 on 2010-01-27.
2498
2499 ** API and ABI modifications:
2500 No changes since last version.
2501
2502 * Version 2.9.11 (released 2010-06-07)
2503
2504 ** libgnutls: Removed two APIs related to safe renegotiation.
2505 Use priority strings instead.  The APIs were
2506 gnutls_safe_negotiation_set_initial and gnutls_safe_renegotiation_set.
2507 (Remember that we don't promise ABI stability during development
2508 series, so this doesn't cause an shared library ABI increment.)
2509
2510 ** tests: More self testing of safe renegotiation extension.
2511 See tests/safe-renegotiation/README for more information.
2512
2513 ** doc: a PDF version of the API reference manual (GTK-DOC) is now built.
2514
2515 ** doc: Terms 'GNUTLS' and 'GNU TLS' were changed to 'GnuTLS' for consistency.
2516
2517 ** API and ABI modifications:
2518 gnutls_safe_negotiation_set_initial: REMOVED.
2519 gnutls_safe_renegotiation_set: REMOVED.
2520
2521 * Version 2.9.10 (released 2010-04-22)
2522
2523 ** libgnutls: Time verification extended to trusted certificate list.
2524 Unless new constant GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS flag is
2525 specified.
2526
2527 ** certtool: Display postalCode and Name X.509 DN attributes correctly.
2528 Based on patch by Pavan Konjarla.  Adds new constant
2529 GNUTLS_OID_X520_POSTALCODE and GNUTLS_OID_X520_NAME.
2530
2531 ** libgnutls: Added Steve Dispensa's patch for safe renegotiation (RFC 5746)
2532 Solves the issue discussed in:
2533 <http://www.ietf.org/mail-archive/web/tls/current/msg03928.html> and
2534 <http://www.ietf.org/mail-archive/web/tls/current/msg03948.html>.
2535 Note that to allow connecting to unpatched servers the full protection
2536 is only enabled if the priority string %SAFE_RENEGOTIATION is
2537 specified. You can check whether protection is in place by querying
2538 gnutls_safe_renegotiation_status().  New error codes
2539 GNUTLS_E_SAFE_RENEGOTIATION_FAILED and
2540 GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED added.
2541
2542 ** libgnutls: When checking openpgp self signature also check the signatures
2543 ** of all subkeys.
2544 Ilari Liusvaara noticed and reported the issue and provided test
2545 vectors as well.
2546
2547 ** libgnutls: Added cryptodev support (/dev/crypto).
2548 Tested with http://www.logix.cz/michal/devel/cryptodev/.  Added
2549 benchmark utility for AES.  Adds new error codes
2550 GNUTLS_E_CRYPTODEV_IOCTL_ERROR and GNUTLS_E_CRYPTODEV_DEVICE_ERROR.
2551
2552 ** libgnutls: Exported API to access encryption and hash algorithms.
2553 The new API functions are gnutls_cipher_decrypt, gnutls_cipher_deinit,
2554 gnutls_cipher_encrypt, gnutls_cipher_get_block_size,
2555 gnutls_cipher_init, gnutls_hash, gnutls_hash_deinit, gnutls_hash_fast,
2556 gnutls_hash_get_len, gnutls_hash_init, gnutls_hash_output,
2557 gnutls_hmac, gnutls_hmac_deinit, gnutls_hmac_fast,
2558 gnutls_hmac_get_len, gnutls_hmac_init, gnutls_hmac_output.  New API
2559 constants are GNUTLS_MAC_SHA224 and GNUTLS_DIG_SHA224.
2560
2561 ** libgnutls: Added gnutls_certificate_set_verify_function() to allow
2562 verification of certificate upon receipt rather than waiting until the
2563 end of the handshake.
2564
2565 ** libgnutls: Don't send alerts during handshake.
2566 Instead new error code GNUTLS_E_UNKNOWN_SRP_USERNAME is added.
2567
2568 ** certtool: Corrected two issues that affected certificate request generation.
2569 (1) Null padding is added on integers (found thanks to Wilankar Trupti),
2570 (2) In optional SignatureAlgorithm parameters field for DSA keys the DSA
2571 parameters were added. Those were rejected by Verisign. Gnutls no longer adds 
2572 those parameters there since other implementations don't do either and having 
2573 them does not seem to offer anything (anyway you need the signer's certificate
2574 to verify thus public key will be available). Found thanks to Boyan Kasarov.
2575 This however has the side-effect that public key IDs shown by certtool are
2576 now different than previous gnutls releases.
2577 (3) the option --pgp-certificate-info will verify self signatures
2578
2579 ** certtool: Allow exporting of Certificate requests on DER format.
2580
2581 ** certtool: New option --no-crq-extensions to avoid extensions in CSRs.
2582
2583 ** gnutls-cli: Handle reading binary data from server.
2584 Reported by and tiny patch from Vitaly Mayatskikh
2585 <v.mayatskih@gmail.com> in
2586 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/4096>.
2587
2588 ** minitasn1: Upgraded to libtasn1 version 2.6.
2589
2590 ** i18n: Updated Czech, Dutch, French, Polish, Swedish translation.
2591 ** Added Italian and Simplified Chinese translation.
2592 Thanks to Petr Pisar, Erwin Poeze, Nicolas Provost, Jakub Bogusz,
2593 Daniel Nylander, Sergio Zanchetta, Tao Wei, and Aron Xu.
2594
2595 ** doc: The GTK-DOC manual is significantly improved.
2596
2597 ** API and ABI modifications:
2598 %DISABLE_SAFE_RENEGOTIATION: Added to priority strings (do not use).
2599 %INITIAL_SAFE_RENEGOTIATION: Added to priority strings.
2600 %UNSAFE_RENEGOTIATION: Added to priority strings.
2601 GNUTLS_DIG_SHA224: ADDED.
2602 GNUTLS_E_CRYPTODEV_DEVICE_ERROR: ADDED.
2603 GNUTLS_E_CRYPTODEV_IOCTL_ERROR: ADDED.
2604 GNUTLS_E_SAFE_RENEGOTIATION_FAILED: ADDED.
2605 GNUTLS_E_UNKNOWN_SRP_USERNAME: ADDED.
2606 GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED: ADDED.
2607 GNUTLS_MAC_SHA224: ADDED.
2608 GNUTLS_OID_X520_NAME: ADDED.
2609 GNUTLS_OID_X520_POSTALCODE: ADDED.
2610 GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS: ADDED.
2611 GNUTLS_VERSION_MAX: ADDED.
2612 gnutls_certificate_set_verify_function: ADDED.
2613 gnutls_cipher_decrypt: ADDED.
2614 gnutls_cipher_deinit: ADDED.
2615 gnutls_cipher_encrypt: ADDED.
2616 gnutls_cipher_get_block_size: ADDED.
2617 gnutls_cipher_init: ADDED.
2618 gnutls_hash: ADDED.
2619 gnutls_hash_deinit: ADDED.
2620 gnutls_hash_fast: ADDED.
2621 gnutls_hash_get_len: ADDED.
2622 gnutls_hash_init: ADDED.
2623 gnutls_hash_output: ADDED.
2624 gnutls_hmac: ADDED.
2625 gnutls_hmac_deinit: ADDED.
2626 gnutls_hmac_fast: ADDED.
2627 gnutls_hmac_get_len: ADDED.
2628 gnutls_hmac_init: ADDED.
2629 gnutls_hmac_output: ADDED.
2630 gnutls_safe_negotiation_set_initial: ADDED.
2631 gnutls_safe_renegotiation_set: ADDED.
2632 gnutls_safe_renegotiation_status: ADDED.
2633
2634 * Version 2.9.9 (released 2009-11-09)
2635
2636 ** libgnutls: Cleanups and several bug fixes.
2637 Found by Steve Grubb and Tomas Mraz.
2638
2639 ** Link libgcrypt explicitly to certtool, gnutls-cli, gnutls-serv.
2640
2641 ** Fix --disable-valgrind-tests.
2642 Reported by Ingmar Vanhassel in
2643 <https://savannah.gnu.org/support/?107029>.
2644
2645 ** API and ABI modifications:
2646 No changes since last version.
2647
2648 * Version 2.9.8 (released 2009-11-05)
2649
2650 ** libgnutls: Fix for memory leaks on interrupted handshake.
2651 Reported by Tang Tong.
2652
2653 ** libgnutls: Addition of support for TLS 1.2 signature algorithms
2654 ** extension and certificate verify field.
2655 This requires changes for TLS 1.2 servers and clients that use
2656 callbacks for certificate retrieval.  They are now required to check
2657 with gnutls_sign_algorithm_get_requested() whether the certificate
2658 they send complies with the peer's preferences in signature
2659 algorithms.
2660
2661 ** libgnutls: In server side when resuming a session do not overwrite the 
2662 ** initial session data with the resumed session data.
2663
2664 ** libgnutls: Added support for AES-128, AES-192 and AES-256 in PKCS #8
2665 ** encryption.
2666 This affects also PKCS #12 encoded files.  This adds the following new
2667 enums: GNUTLS_CIPHER_AES_192_CBC, GNUTLS_PKCS_USE_PBES2_AES_128,
2668 GNUTLS_PKCS_USE_PBES2_AES_192, GNUTLS_PKCS_USE_PBES2_AES_256.
2669
2670 ** libgnutls: Fix PKCS#12 encoding.
2671 The error you would get was "The OID is not supported.".  Problem
2672 introduced for the v2.8.x branch in 2.7.6.
2673
2674 ** certtool: Added the --pkcs-cipher option.
2675 To explicitely specify the encryption algorithm to use.
2676
2677 ** tests: Added "pkcs12_encode" self-test to check PKCS#12 functions.
2678
2679 ** tests: Fix time bomb in chainverify self-test.
2680 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
2681 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3925>.
2682
2683 ** tests: Fix expired cert in chainverify self-test.
2684
2685 ** i18n: Vietnamese translation updated.
2686 Thanks to Clytie Siddall.
2687
2688 ** API and ABI modifications:
2689 GNUTLS_CIPHER_AES_192_CBC: ADDED to gnutls/gnutls.h.
2690 GNUTLS_PKCS_USE_PBES2_AES_128: ADDED to gnutls/x509.h.
2691 GNUTLS_PKCS_USE_PBES2_AES_192: ADDED to gnutls/x509.h.
2692 GNUTLS_PKCS_USE_PBES2_AES_256: ADDED to gnutls/x509.h.
2693 GNUTLS_BAG_SECRET: ADDED to gnutls/pkcs12.h.
2694 GNUTLS_DIG_UNKNOWN: ADDED to gnutls/gnutls.h.
2695 gnutls_sign_algorithm_get_requested: ADDED.
2696
2697 * Version 2.9.7 (released 2009-10-06)
2698
2699 ** libgnutls: TLS 1.2 server mode fixes.
2700 Now interoperates against Opera.  Contributed by Daiki Ueno.
2701
2702 ** libgnutlsxx: Fix link problems.
2703 Tiny patch from Boyan Kasarov <bkasarov@gmail.com>.
2704
2705 ** guile: Compatibility with guile 2.x.
2706 By Ludovic Courtes <ludovic.courtes@laas.fr>.
2707
2708 ** API and ABI modifications:
2709 No changes since last version.
2710
2711 * Version 2.9.6 (released 2009-09-22)
2712
2713 ** libgnutls: Enable Camellia ciphers by default.
2714
2715 ** API and ABI modifications:
2716 No changes since last version.
2717
2718 * Version 2.9.5 (released 2009-09-10)
2719
2720 ** libgnutls: Add new functions to extract X.509 Issuer Alternative Names.
2721 The new functions are gnutls_x509_crt_get_issuer_alt_name2,
2722 gnutls_x509_crt_get_issuer_alt_name, and
2723 gnutls_x509_crt_get_issuer_alt_othername_oid.  Contributed by Brad
2724 Hards <bradh@frogmouth.net>.
2725
2726 ** API and ABI modifications:
2727 gnutls_x509_crt_get_issuer_alt_name2: ADDED.
2728 gnutls_x509_crt_get_issuer_alt_name: ADDED.
2729 gnutls_x509_crt_get_issuer_alt_othername_oid: ADDED.
2730
2731 * Version 2.9.4 (released 2009-09-03)
2732
2733 ** libgnutls: Client-side TLS 1.2 and SHA-256 ciphersuites now works.
2734 The new supported ciphersuites are AES-128/256 in CBC mode with
2735 ANON-DH/RSA/DHE-DSS/DHE-RSA.  Contributed by Daiki Ueno.  Further,
2736 SHA-256 is now the preferred default MAC (however it is only used with
2737 TLS 1.2).
2738
2739 ** libgnutls: Make OpenPGP hostname checking work again.
2740 The patch to resolve the X.509 CN/SAN issue accidentally broken
2741 OpenPGP hostname comparison.
2742
2743 ** libgnutls: When printing X.509 certificates, handle XMPP SANs better.
2744 Reported by Howard Chu <hyc@symas.com> in
2745 <https://savannah.gnu.org/support/?106975>.
2746
2747 ** Fix use of deprecated types internally.
2748 Use of deprecated types in GnuTLS from now on will lead to a compile
2749 error, to prevent this from happening again.
2750
2751 ** API and ABI modifications:
2752 No changes since last version.
2753
2754 * Version 2.9.3 (released 2009-08-19)
2755
2756 ** libgnutls: Support for TLS tickets was contributed by Daiki Ueno.
2757 The new APIs are gnutls_session_ticket_enable_client,
2758 gnutls_session_ticket_enable_server, and
2759 gnutls_session_ticket_key_generate.
2760
2761 ** gnutls-cli, gnutls-serv: New parameter --noticket to disable TLS tickets.
2762
2763 ** API and ABI modifications:
2764 gnutls_session_ticket_key_generate: ADDED.
2765 gnutls_session_ticket_enable_client: ADDED.
2766 gnutls_session_ticket_enable_server: ADDED.
2767
2768 * Version 2.9.2 (released 2009-08-14)
2769
2770 ** libgnutls: Fix problem with NUL bytes in X.509 CN and SAN fields.
2771 By using a NUL byte in CN/SAN fields, it was possible to fool GnuTLS
2772 into 1) not printing the entire CN/SAN field value when printing a
2773 certificate and 2) cause incorrect positive matches when matching a
2774 hostname against a certificate.  Some CAs apparently have poor
2775 checking of CN/SAN values and issue these (arguable invalid)
2776 certificates.  Combined, this can be used by attackers to become a
2777 MITM on server-authenticated TLS sessions.  The problem is mitigated
2778 since attackers needs to get one certificate per site they want to
2779 attack, and the attacker reveals his tracks by applying for a
2780 certificate at the CA.  It does not apply to client authenticated TLS
2781 sessions.  Research presented independently by Dan Kaminsky and Moxie
2782 Marlinspike at BlackHat09.  Thanks to Tomas Hoger <thoger@redhat.com>
2783 for providing one part of the patch.  [GNUTLS-SA-2009-4] [CVE-2009-2730].
2784
2785 ** libgnutls: Fix rare failure in gnutls_x509_crt_import.
2786 The function may fail incorrectly when an earlier certificate was
2787 imported to the same gnutls_x509_crt_t structure.
2788
2789 ** minitasn1: Internal copy updated to libtasn1 v2.3.
2790
2791 ** libgnutls: Fix return value of gnutls_certificate_client_get_request_status.
2792 Before it always returned false.  Reported by Peter Hendrickson
2793 <pdh@wiredyne.com> in
2794 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3668>.
2795
2796 ** libgnutls: Fix off-by-one size computation error in unknown DN printing.
2797 The error resulted in truncated strings when printing unknown OIDs in
2798 X.509 certificate DNs.  Reported by Tim Kosse
2799 <tim.kosse@filezilla-project.org> in
2800 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3651>.
2801
2802 ** libgnutls: Fix PKCS#12 decryption from password.
2803 The encryption key derived from the password was incorrect for (on
2804 average) 1 in every 128 input for random inputs.  Reported by "Kukosa,
2805 Tomas" <tomas.kukosa@siemens-enterprise.com> in
2806 <http://permalink.gmane.org/gmane.network.gnutls.general/1663>.
2807
2808 ** libgnutls: Return correct bit lengths of some MPIs.
2809 gnutls_dh_get_prime_bits, gnutls_rsa_export_get_modulus_bits, and
2810 gnutls_dh_get_peers_public_bits.  Before the reported value was
2811 overestimated.  Reported by Peter Hendrickson <pdh@wiredyne.com> in
2812 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3607>.
2813
2814 ** libgnutls: Avoid internal error when invoked after GNUTLS_E_AGAIN.
2815 Report and patch by Tim Kosse <tim.kosse@filezilla-project.org> in
2816 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3671>
2817 and
2818 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3670>.
2819
2820 ** libgnutls: Relax checking of required libtasn1/libgcrypt versions.
2821 Before we required that the runtime library used the same (or more
2822 recent) libgcrypt/libtasn1 as it was compiled with.  Now we just check
2823 that the runtime usage is above the minimum required.  Reported by
2824 Marco d'Itri <md@linux.it> via Andreas Metzler
2825 <ametzler@downhill.at.eu.org> in <http://bugs.debian.org/540449>.
2826
2827 ** tests: Added new self-test pkcs12_s2k_pem to detect MPI bit length error.
2828
2829 ** tests: Improved test vectors in self-test pkcs12_s2k.
2830
2831 ** tests: Added new self-test dn2 to detect off-by-one size error.
2832
2833 ** tests: Fix failure in "chainverify" because a certificate have expired.
2834
2835 ** API and ABI modifications:
2836 No changes since last version.
2837
2838 * Version 2.9.1 (released 2009-06-08)
2839
2840 ** libgnutls: Fix crash in gnutls_global_init after earlier init/deinit cycle.
2841 Forwarded by Martin von Gagern <Martin.vGagern@gmx.net> from
2842 <http://bugs.gentoo.org/272388>.
2843
2844 ** tests: Added new self-tests init_roundtrip.c to detect previous problem.
2845
2846 ** Reduce stack usage for some CRQ functions.
2847
2848 ** Doc fixes for CRQ functions.
2849
2850 ** API and ABI modifications:
2851 No changes since last version.
2852
2853 * Version 2.9.0 (released 2009-05-28)
2854
2855 ** Doc fixes.
2856
2857 ** API and ABI modifications:
2858 No changes since last version.
2859
2860 * Version 2.8.6 (released 2010-03-15)
2861
2862 ** libgnutls: For CSRs, don't null pad integers for RSA/DSA value.
2863 VeriSign rejected CSRs with this padding.  Reported by Wilankar Trupti
2864 <trupti.wilankar@hp.com> and Boyan Kasarov <bkasarov@gmail.com>.
2865
2866 Note: As a side effect of this change, the "public key identifier"
2867 value computed for a certificate using this version of GnuTLS will be
2868 different from values computed using earlier versions of GnuTLS.
2869
2870 ** libgnutls: For CSRs on DSA keys, don't add DSA parameters to the
2871 ** optional SignatureAlgorithm parameter field.
2872 VeriSign rejected these CSRs.  They are stricly speaking not needed
2873 since you need the signer's certificate to verify the certificate
2874 signature anyway.  Reported by Wilankar Trupti
2875 <trupti.wilankar@hp.com> and Boyan Kasarov <bkasarov@gmail.com>.
2876
2877 ** libgnutls: When checking openpgp self signature also check the signatures
2878 ** of all subkeys.
2879 Ilari Liusvaara noticed and reported the issue and provided test
2880 vectors as well.
2881
2882 ** libgnutls: Cleanups and several bug fixes.
2883 Found by Steve Grubb and Tomas Mraz.
2884
2885 ** Link libgcrypt explicitly to certtool, gnutls-cli, gnutls-serv.
2886
2887 ** Fix --disable-valgrind-tests.
2888 Reported by Ingmar Vanhassel in
2889 <https://savannah.gnu.org/support/?107029>.
2890
2891 ** examples: Use the new APIs for printing X.509 certificate information.
2892
2893 ** Fix build failures on Solaris.
2894 Thanks to Dagobert Michelsen <dam@opencsw.org>.
2895
2896 ** i18n: Updated Czech, Dutch, French, Polish, Swedish and Vietnamese
2897 ** translations.  Added Simplified Chinese translation.
2898
2899 ** API and ABI modifications:
2900 No changes since last version.
2901
2902 * Version 2.8.5 (released 2009-11-02)
2903
2904 ** libgnutls: In server side when resuming a session do not overwrite the 
2905 ** initial session data with the resumed session data.
2906
2907 ** libgnutls: Fix PKCS#12 encoding.
2908 The error you would get was "The OID is not supported.".  Problem
2909 introduced for the v2.8.x branch in 2.7.6.
2910
2911 ** guile: Compatibility with guile 2.x.
2912 By Ludovic Courtes <ludovic.courtes@laas.fr>.
2913
2914 ** tests: Fix expired cert in chainverify self-test.
2915
2916 ** tests: Fix time bomb in chainverify self-test.
2917 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
2918 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3925>.
2919
2920 ** API and ABI modifications:
2921 No changes since last version.
2922
2923 * Version 2.8.4 (released 2009-09-18)
2924
2925 ** libgnutls: Enable Camellia ciphers by default.
2926
2927 ** libgnutls: Make OpenPGP hostname checking work again.
2928 The patch to resolve the X.509 CN/SAN issue accidentally broken
2929 OpenPGP hostname comparison.
2930
2931 ** libgnutls: When printing X.509 certificates, handle XMPP SANs better.
2932 Reported by Howard Chu <hyc@symas.com> in
2933 <https://savannah.gnu.org/support/?106975>.
2934
2935 ** API and ABI modifications:
2936 No changes since last version.
2937
2938 * Version 2.8.3 (released 2009-08-13)
2939
2940 ** libgnutls: Fix patch for NUL in CN/SAN in last release.
2941 Code intended to be removed would lead to an read-out-bound error in
2942 some situations.  Reported by Tomas Hoger <thoger@redhat.com>.  A CVE
2943 code have been allocated for the vulnerability: [CVE-2009-2730].
2944
2945 ** libgnutls: Fix rare failure in gnutls_x509_crt_import.
2946 The function may fail incorrectly when an earlier certificate was
2947 imported to the same gnutls_x509_crt_t structure.
2948
2949 ** libgnutls-extra, libgnutls-openssl: Fix MinGW cross-compiling build error.
2950
2951 ** tests: Made self-test mini-eagain take less time.
2952
2953 ** doc: Typo fixes.
2954
2955 ** API and ABI modifications:
2956 No changes since last version.
2957
2958 * Version 2.8.2 (released 2009-08-10)
2959
2960 ** libgnutls: Fix problem with NUL bytes in X.509 CN and SAN fields.
2961 By using a NUL byte in CN/SAN fields, it was possible to fool GnuTLS
2962 into 1) not printing the entire CN/SAN field value when printing a
2963 certificate and 2) cause incorrect positive matches when matching a
2964 hostname against a certificate.  Some CAs apparently have poor
2965 checking of CN/SAN values and issue these (arguable invalid)
2966 certificates.  Combined, this can be used by attackers to become a
2967 MITM on server-authenticated TLS sessions.  The problem is mitigated
2968 since attackers needs to get one certificate per site they want to
2969 attack, and the attacker reveals his tracks by applying for a
2970 certificate at the CA.  It does not apply to client authenticated TLS
2971 sessions.  Research presented independently by Dan Kaminsky and Moxie
2972 Marlinspike at BlackHat09.  Thanks to Tomas Hoger <thoger@redhat.com>
2973 for providing one part of the patch.  [GNUTLS-SA-2009-4].
2974
2975 ** libgnutls: Fix return value of gnutls_certificate_client_get_request_status.
2976 Before it always returned false.  Reported by Peter Hendrickson
2977 <pdh@wiredyne.com> in
2978 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3668>.
2979
2980 ** libgnutls: Fix off-by-one size computation error in unknown DN printing.
2981 The error resulted in truncated strings when printing unknown OIDs in
2982 X.509 certificate DNs.  Reported by Tim Kosse
2983 <tim.kosse@filezilla-project.org> in
2984 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3651>.
2985
2986 ** libgnutls: Return correct bit lengths of some MPIs.
2987 gnutls_dh_get_prime_bits, gnutls_rsa_export_get_modulus_bits, and
2988 gnutls_dh_get_peers_public_bits.  Before the reported value was
2989 overestimated.  Reported by Peter Hendrickson <pdh@wiredyne.com> in
2990 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3607>.
2991
2992 ** libgnutls: Avoid internal error when invoked after GNUTLS_E_AGAIN.
2993 Report and patch by Tim Kosse <tim.kosse@filezilla-project.org> in
2994 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3671>
2995 and
2996 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3670>.
2997
2998 ** libgnutls: Relax checking of required libtasn1/libgcrypt versions.
2999 Before we required that the runtime library used the same (or more
3000 recent) libgcrypt/libtasn1 as it was compiled with.  Now we just check
3001 that the runtime usage is above the minimum required.  Reported by
3002 Marco d'Itri <md@linux.it> via Andreas Metzler
3003 <ametzler@downhill.at.eu.org> in <http://bugs.debian.org/540449>.
3004
3005 ** minitasn1: Internal copy updated to libtasn1 v2.3.
3006
3007 ** tests: Fix failure in "chainverify" because a certificate have expired.
3008
3009 ** API and ABI modifications:
3010 No changes since last version.
3011
3012 * Version 2.8.1 (released 2009-06-10)
3013
3014 ** libgnutls: Fix crash in gnutls_global_init after earlier init/deinit cycle.
3015 Forwarded by Martin von Gagern <Martin.vGagern@gmx.net> from
3016 <http://bugs.gentoo.org/272388>.
3017
3018 ** libgnutls: Fix PKCS#12 decryption from password.
3019 The encryption key derived from the password was incorrect for (on
3020 average) 1 in every 128 input for random inputs.  Reported by "Kukosa,
3021 Tomas" <tomas.kukosa@siemens-enterprise.com> in
3022 <http://permalink.gmane.org/gmane.network.gnutls.general/1663>.
3023
3024 ** API and ABI modifications:
3025 No changes since last version.
3026
3027 * Version 2.8.0 (released 2009-05-27)
3028
3029 ** doc: Fix gnutls_dh_get_prime_bits.  Fix error codes and algorithm lists.
3030
3031 ** Major changes compared to the v2.4 branch:
3032
3033 *** lib: Linker version scripts reduces number of exported symbols.
3034
3035 *** lib: Limit exported symbols on systems without LD linker scripts.
3036
3037 *** libgnutls: Fix namespace issue with version symbols.
3038
3039 *** libgnutls: Add functions to verify a hash against a certificate.
3040 gnutls_x509_crt_verify_hash: ADDED
3041 gnutls_x509_crt_get_verify_algorithm: ADDED
3042
3043 *** gnutls-serv: Listen on all interfaces, including both IPv4 and IPv6.
3044
3045 *** i18n: The GnuTLS gettext domain is now 'libgnutls' instead of 'gnutls'.
3046
3047 *** certtool: Query for multiple dnsName subjectAltName in interactive mode.
3048
3049 *** gnutls-cli: No longer accepts V1 CAs by default during X.509 chain verify.
3050
3051 *** gnutls-serv: No longer disable MAC padding by default.
3052
3053 *** gnutls-cli: Certificate information output format changed.
3054
3055 *** libgnutls: New priority strings %VERIFY_ALLOW_SIGN_RSA_MD5
3056 *** and %VERIFY_ALLOW_X509_V1_CA_CRT.
3057
3058 *** libgnutls: gnutls_x509_crt_print prints signature algorithm in oneline mode.
3059
3060 *** libgnutls: gnutls_openpgp_crt_print supports oneline mode.
3061
3062 *** libgnutls: gnutls_handshake when sending client hello during a
3063 rehandshake, will not offer a version number larger than the current.
3064
3065 *** libgnutls: New interface to get key id for certificate requests.
3066 gnutls_x509_crq_get_key_id: ADDED.
3067
3068 *** libgnutls: gnutls_x509_crq_print will now also print public key id.
3069
3070 *** certtool: --verify-chain now prints results of using library verification.
3071
3072 *** libgnutls: Libgcrypt initialization changed.
3073
3074 *** libgnutls: Small byte reads via gnutls_record_recv() optimized.
3075
3076 *** gnutls-cli: Return non-zero exit code on error conditions.
3077
3078 *** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
3079
3080 *** certtool: allow setting arbitrary key purpose object identifiers.
3081
3082 *** libgnutls: Change detection of when to use a linker version script.
3083 Use --enable-ld-version-script or --disable-ld-version-script to
3084 override auto-detection logic.
3085
3086 *** Fix warnings and build GnuTLS with more warnings enabled.
3087
3088 *** New API to set X.509 credentials from PKCS#12 memory structure.
3089 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
3090
3091 *** Old libgnutls.m4 and libgnutls-config scripts removed.
3092 Please use pkg-config instead.
3093
3094 *** libgnutls: Added functions to handle CRL extensions.
3095 gnutls_x509_crl_get_authority_key_id: ADDED
3096 gnutls_x509_crl_get_number: ADDED
3097 gnutls_x509_crl_get_extension_oid: ADDED
3098 gnutls_x509_crl_get_extension_info: ADDED
3099 gnutls_x509_crl_get_extension_data: ADDED
3100 gnutls_x509_crl_set_authority_key_id: ADDED
3101 gnutls_x509_crl_set_number: ADDED
3102
3103 *** libgnutls: Added functions to handle X.509 extensions in Certificate
3104 Requests.
3105 gnutls_x509_crq_get_key_rsa_raw: ADDED
3106 gnutls_x509_crq_get_attribute_info: ADDED
3107 gnutls_x509_crq_get_attribute_data: ADDED
3108 gnutls_x509_crq_get_extension_info: ADDED
3109 gnutls_x509_crq_get_extension_data: ADDED
3110 gnutls_x509_crq_get_key_usage: ADDED
3111 gnutls_x509_crq_get_basic_constraints: ADDED
3112 gnutls_x509_crq_get_subject_alt_name: ADDED
3113 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
3114 gnutls_x509_crq_get_extension_by_oid: ADDED
3115 gnutls_x509_crq_set_subject_alt_name: ADDED
3116 gnutls_x509_crq_set_basic_constraints: ADDED
3117 gnutls_x509_crq_set_key_usage: ADDED
3118 gnutls_x509_crq_get_key_purpose_oid: ADDED
3119 gnutls_x509_crq_set_key_purpose_oid: ADDED
3120 gnutls_x509_crq_print: ADDED
3121 gnutls_x509_crt_set_crq_extensions: ADDED
3122
3123 *** certtool: Print and set CRL and CRQ extensions.
3124
3125 *** minitasn1: Internal copy updated to libtasn1 v2.1.
3126
3127 *** examples: Now released into the public domain.
3128
3129 *** The Texinfo and GTK-DOC manuals were improved.
3130
3131 *** Several self-tests were added and others improved.
3132
3133 *** API/ABI changes in GnuTLS 2.8 compared to GnuTLS 2.6.x
3134 No offically supported interfaces have been modified or removed.  The
3135 library should be completely backwards compatible on both the source
3136 and binary level.
3137
3138 The shared library no longer exports some symbols that have never been
3139 officially supported, i.e., not mentioned in any of the header files.
3140 The symbols are:
3141
3142   _gnutls*
3143   gnutls_asn1_tab
3144   
3145 Normally when symbols are removed, the shared library version has to
3146 be incremented.  This leads to a significant cost for everyone using
3147 the library.  Because none of the above symbols have ever been
3148 intended for use by well-behaved applications, we decided that the it
3149 would be better for those applications to pay the price rather than
3150 incurring problems on the majority of applications.
3151
3152 If it turns out that applications have been using unofficial
3153 interfaces, we will need to release a follow-on release on the v2.8
3154 branch to exports additional interfaces.  However, initial testing
3155 suggests that few if any applications have been using any of the
3156 internal symbols.
3157
3158 Although not a new change compared to 2.6.x, we'd like to remind you
3159 interfaces have been modified so that X.509 chain verification now
3160 also checks activation/expiration times on certificates.  The affected
3161 functions are:
3162
3163 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
3164 gnutls_certificate_verify_peers: Likewise.
3165 gnutls_certificate_verify_peers2: Likewise.
3166 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
3167 GNUTLS_CERT_EXPIRED: ADDED.
3168 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
3169
3170 This change in behaviour was made during the GnuTLS 2.6.x cycle, and
3171 we gave our rationale for it in earlier release notes.
3172
3173 The following symbols have been added to the library:
3174
3175 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
3176 gnutls_x509_crl_get_authority_key_id: ADDED
3177 gnutls_x509_crl_get_extension_data: ADDED
3178 gnutls_x509_crl_get_extension_info: ADDED
3179 gnutls_x509_crl_get_extension_oid: ADDED
3180 gnutls_x509_crl_get_number: ADDED
3181 gnutls_x509_crl_set_authority_key_id: ADDED
3182 gnutls_x509_crl_set_number: ADDED
3183 gnutls_x509_crq_get_attribute_data: ADDED
3184 gnutls_x509_crq_get_attribute_info: ADDED
3185 gnutls_x509_crq_get_basic_constraints: ADDED
3186 gnutls_x509_crq_get_extension_by_oid: ADDED
3187 gnutls_x509_crq_get_extension_data: ADDED
3188 gnutls_x509_crq_get_extension_info: ADDED
3189 gnutls_x509_crq_get_key_id: ADDED.
3190 gnutls_x509_crq_get_key_purpose_oid: ADDED
3191 gnutls_x509_crq_get_key_rsa_raw: ADDED
3192 gnutls_x509_crq_get_key_usage: ADDED
3193 gnutls_x509_crq_get_subject_alt_name: ADDED
3194 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
3195 gnutls_x509_crq_print: ADDED
3196 gnutls_x509_crq_set_basic_constraints: ADDED
3197 gnutls_x509_crq_set_key_purpose_oid: ADDED
3198 gnutls_x509_crq_set_key_usage: ADDED
3199 gnutls_x509_crq_set_subject_alt_name: ADDED
3200 gnutls_x509_crt_get_verify_algorithm: ADDED
3201 gnutls_x509_crt_set_crq_extensions: ADDED
3202 gnutls_x509_crt_verify_hash: ADDED
3203
3204 The following interfaces have been added to the header files:
3205
3206 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_VERSION.
3207 GNUTLS_VERSION_MAJOR: ADDED, replaces LIBGNUTLS_VERSION_MAJOR.
3208 GNUTLS_VERSION_MINOR: ADDED, replaces LIBGNUTLS_VERSION_MINOR.
3209 GNUTLS_VERSION_PATCH: ADDED, replaces LIBGNUTLS_VERSION_PATCH.
3210 GNUTLS_VERSION_NUMBER: ADDED, replaces LIBGNUTLS_VERSION_NUMBER.
3211 GNUTLS_EXTRA_VERSION: ADDED, replaces LIBGNUTLS_EXTRA_VERSION.
3212
3213 The following interfaces have been deprecated:
3214
3215 LIBGNUTLS_VERSION: DEPRECATED.
3216 LIBGNUTLS_VERSION_MAJOR: DEPRECATED.
3217 LIBGNUTLS_VERSION_MINOR: DEPRECATED.
3218 LIBGNUTLS_VERSION_PATCH: DEPRECATED.
3219 LIBGNUTLS_VERSION_NUMBER: DEPRECATED.
3220 LIBGNUTLS_EXTRA_VERSION: DEPRECATED.
3221
3222 * Version 2.7.14 (released 2009-05-26)
3223
3224 ** libgnutls: Fix namespace issue with version symbol for libgnutls-extra.
3225 The symbol LIBGNUTLS_EXTRA_VERSION were renamed to
3226 GNUTLS_EXTRA_VERSION.  The old symbol will continue to work but is
3227 deprecated.
3228
3229 ** Doc: Several typo fixes in documentation.
3230 Reported by Peter Hendrickson <pdh@wiredyne.com>.
3231
3232 ** API and ABI modifications:
3233 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_EXTRA_VERSION.
3234 LIBGNUTLS_EXTRA_VERSION: DEPRECATED.
3235
3236 * Version 2.7.13 (released 2009-05-25)
3237
3238 ** libgnutls: Fix version of some exported symbols in the shared library.
3239 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
3240 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3576>.
3241
3242 ** tests: Handle recently expired certificates in chainverify self-test.
3243 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
3244 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3580>.
3245
3246 ** API and ABI modifications:
3247 No changes since last version.
3248
3249 * Version 2.7.12 (released 2009-05-20)
3250
3251 ** gnutls-serv, gnutls-cli-debug: Make them work on Windows.
3252
3253 ** tests/crq_key_id: Don't read entropy from /dev/random in self-test.
3254 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
3255 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3570>.
3256
3257 ** Fix build failures.
3258 Missing sa_family_t and vsnprintf on IRIX.  Reported by "Tom
3259 G. Christensen" <tgc@jupiterrise.com> in
3260 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3571>.
3261
3262 ** minitasn1: Internal copy updated to libtasn1 v2.2.
3263 GnuTLS should work fine with libtasn1 v1.x and that is still
3264 supported.
3265
3266 ** API and ABI modifications:
3267 No changes since last version.
3268
3269 * Version 2.7.11 (released 2009-05-18)
3270
3271 ** minitasn1: Fix build failure when using internal libtasn1.
3272 Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
3273 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3548>.
3274
3275 ** libgnutls: Fix build failure with --disable-cxx.
3276 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
3277 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3557>.
3278
3279 ** gnutls-serv: Fix build failure for unportable NI_MAXHOST/NI_MAXSERV.
3280 Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
3281 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3560>
3282
3283 ** Building with many warning flags now requires --enable-gcc-warnings.
3284 This avoids crying wolf for normal compiles.
3285
3286 ** API and ABI modifications:
3287 No changes since last version.
3288
3289 * Version 2.7.10 (released 2009-05-13)
3290
3291 ** examples: Now released into the public domain.
3292 This makes the license of the example code compatible with more
3293 licenses, including the (L)GPL.
3294
3295 ** minitasn1: Internal copy updated to libtasn1 v2.1.
3296 GnuTLS should work fine with libtasn1 v1.x and that is still
3297 supported.
3298
3299 ** libgnutls: Fix crash in signature verification
3300 The fix for the CVE-2009-1415 problem wasn't merged completely.
3301
3302 ** doc: Fixes for GTK-DOC output.
3303
3304 ** API and ABI modifications:
3305 No changes since last version.
3306
3307 * Version 2.7.9 (released 2009-05-11)
3308
3309 ** doc: Fix strings in man page of gnutls_priority_init.
3310
3311 ** doc: Fix tables of error codes and supported algorithms.
3312
3313 ** Fix build failure when cross-compiled using MinGW.
3314
3315 ** Fix build failure when LZO is enabled.
3316 Reported by Arfrever Frehtes Taifersar Arahesis
3317 <arfrever.fta@gmail.com> in
3318 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3522>.
3319
3320 ** Fix build failure on systems without AF_INET6, e.g., Solaris 2.6.
3321 Reported by "Tom G. Christensen" <tgc@jupiterrise.com> in
3322 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3524>.
3323
3324 ** Fix warnings in self-tests.
3325
3326 ** API and ABI modifications:
3327 No changes since last version.
3328
3329 * Version 2.7.8 (released 2009-05-03)
3330
3331 ** libgnutls: Fix DSA key generation.
3332 Merged from stable branch.  [GNUTLS-SA-2009-2] [CVE-2009-1416]
3333
3334 ** libgnutls: Check expiration/activation time on untrusted certificates.
3335 Merged from stable branch.  Reported by Romain Francoise
3336 <romain@orebokech.com>.  This changes the semantics of
3337 gnutls_x509_crt_list_verify, which in turn is used by
3338 gnutls_certificate_verify_peers and gnutls_certificate_verify_peers2.
3339 We add two new gnutls_certificate_status_t codes for reporting the new
3340 error condition, GNUTLS_CERT_NOT_ACTIVATED and GNUTLS_CERT_EXPIRED.
3341 We also add a new gnutls_certificate_verify_flags flag,
3342 GNUTLS_VERIFY_DISABLE_TIME_CHECKS, that can be used to disable the new
3343 behaviour.  [GNUTLS-SA-2009-3] [CVE-2009-1417]
3344
3345 ** lib: Linker version scripts reduces number of exported symbols.
3346 The linker version script now lists all exported ABIs explicitly, to
3347 avoid accidentally exporting unintended functions.  Compared to
3348 before, most symbols beginning with _gnutls* are no longer exported.
3349 These functions have never been intended for use by applications, and
3350 there were no prototypes for these function in the public header
3351 files.  Thus we believe it is possible to do this without incrementing
3352 the library ABI version which normally has to be done when removing an
3353 interface.
3354
3355 ** lib: Limit exported symbols on systems without LD linker scripts.
3356 Before all symbols were exported.  Now we limit the exported symbols
3357 to (for libgnutls and libgnutls-extra) gnutls* and (for libgnutls)
3358 _gnutls*.  This is a superset of the actual supported ABI, but still
3359 an improvement compared to before.  This is implemented using Libtool
3360 -export-symbols-regex.  It is more portable than linker version
3361 scripts.
3362
3363 ** libgnutls: Incremented CURRENT/AGE libtool version to reflect new symbols.
3364 This should have been done in the last release.
3365
3366 ** gnutls-serv: Listen on all interfaces, including both IPv4 and IPv6.
3367 Reported by Peter Hendrickson <pdh@wiredyne.com> in
3368 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3476>.
3369
3370 ** doc: Improved sections for the info manual.
3371 We now follow the advice given by the texinfo manual on which
3372 directory categories to use.  In particular, libgnutls moved from the
3373 'GNU Libraries' section to the 'Software libraries' and the command
3374 line tools moved from 'Network Applications' to 'System
3375 Administration'.
3376
3377 ** API and ABI modifications:
3378 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
3379 gnutls_certificate_verify_peers: Likewise.
3380 gnutls_certificate_verify_peers2: Likewise.
3381 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
3382 GNUTLS_CERT_EXPIRED: ADDED.
3383 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
3384
3385 * Version 2.7.7 (released 2009-04-20)
3386
3387 ** libgnutls: Applied patch by Cedric Bail to add functions
3388 gnutls_x509_crt_verify_hash() and gnutls_x509_crt_get_verify_algorithm().
3389
3390 ** gnutls.pc: Add -ltasn1 to 'pkg-config --libs --static gnutls' output.
3391 Reported by Andreas Metzler <ametzler@downhill.at.eu.org> in
3392 <http://article.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3467>.
3393
3394 ** minitasn1: Internal copy updated to libtasn1 v1.8.
3395 GnuTLS is also internally ready to be used with libtasn1 v2.0.
3396
3397 ** doc: Fix build failure of errcodes/printlist.
3398 Reported by Roman Bogorodskiy <novel@FreeBSD.org> in
3399 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3435>.
3400
3401 ** i18n: The GnuTLS gettext domain is now 'libgnutls' instead of 'gnutls'.
3402 It is currently only used by the core library.  This will enable a new
3403 domain 'gnutls' for translations of the command line tools.
3404
3405 ** Corrected possible memory corruption on signature verification failure. 
3406 Reported by Miroslav Kratochvil <exa.exa@gmail.com>
3407
3408 ** API and ABI modifications:
3409 gnutls_x509_crt_verify_hash: ADDED
3410 gnutls_x509_crt_get_verify_algorithm: ADDED
3411
3412 * Version 2.7.6 (released 2009-02-27)
3413
3414 ** certtool: Query for multiple dnsName subjectAltName in interactive mode.
3415 This applies both to generating certificates and certificate requests.
3416
3417 ** pkix.asn: Removed unneeded definitions to reduce memory usage.
3418
3419 ** gnutls-cli: No longer accepts V1 CAs by default during X.509 chain verify.
3420 Use --priority NORMAL:%VERIFY_ALLOW_X509_V1_CA_CRT to permit V1 CAs to
3421 be used for chain verification.
3422
3423 ** gnutls-serv: No longer disable MAC padding by default.
3424 Use --priority NORMAL:%COMPAT to disable MAC padding again.
3425
3426 ** gnutls-cli: Certificate information output format changed.
3427 The tool now uses libgnutls' functions to print certificate
3428 information.  This avoids code duplication.
3429
3430 ** libgnutls: New priority strings %VERIFY_ALLOW_SIGN_RSA_MD5
3431 ** and %VERIFY_ALLOW_X509_V1_CA_CRT.
3432 They can be used to override the default certificate chain validation
3433 behaviour.
3434
3435 ** libgnutls: Added %SSL3_RECORD_VERSION priority string that allows to 
3436 specify the client hello message record version. Used to overcome buggy 
3437 TLS servers. Report by Martin von Gagern.
3438
3439 ** libgnutls: gnutls_x509_crt_print prints signature algorithm in oneline mode.
3440
3441 ** libgnutls: gnutls_openpgp_crt_print supports oneline mode.
3442
3443 ** doc: Update gnutls-cli and gnutls-serv --help output descriptions.
3444
3445 ** API and ABI modifications:
3446 No changes since last version.
3447
3448 * Version 2.7.5 (released 2009-02-06)
3449
3450 ** libgnutls: Accept chains where intermediary certs are trusted.
3451 Before GnuTLS needed to validate the entire chain back to a
3452 self-signed certificate.  GnuTLS will now stop looking when it has
3453 found an intermediary trusted certificate.  The new behaviour is
3454 useful when chains, for example, contains a top-level CA, an
3455 intermediary CA signed using RSA-MD5, and an end-entity certificate.
3456 To avoid chain validation errors due to the RSA-MD5 cert, you can
3457 explicitly add the intermediary RSA-MD5 cert to your trusted certs.
3458 The signature on trusted certificates are not checked, so the chain
3459 has a chance to validate correctly.  Reported by "Douglas E. Engert"
3460 <deengert@anl.gov> in
3461 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
3462
3463 ** libgnutls: result_size in gnutls_hex_encode now holds
3464 the size of the result. Report by John Brooks <special@dereferenced.net>.
3465
3466 ** libgnutls: gnutls_handshake when sending client hello during a
3467 rehandshake, will not offer a version number larger than the current.
3468 Reported by Tristan Hill <stan@saticed.me.uk>.
3469
3470 ** libgnutls: Permit V1 Certificate Authorities properly.
3471 Before they were mistakenly rejected even though
3472 GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT and/or
3473 GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT were supplied.  Reported by
3474 "Douglas E. Engert" <deengert@anl.gov> in
3475 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
3476
3477 ** API and ABI modifications:
3478 No changes since last version.
3479
3480 * Version 2.7.4 (released 2009-01-07)
3481
3482 ** libgnutls: deprecate X.509 validation chains using MD5 and MD2 signatures.
3483 This is a bugfix -- the previous attempt to do this from internal x509
3484 certificate verification procedures did not return the correct value
3485 for certificates using a weak hash.  Reported by Daniel Kahn Gillmor
3486 <dkg@fifthhorseman.net> in
3487 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3332>,
3488 debugged and patch by Tomas Mraz <tmraz@redhat.com> and Daniel Kahn
3489 Gillmor <dkg@fifthhorseman.net>.
3490
3491 ** libgnutls: New interface to get key id for certificate requests.
3492 Patch from David Marín Carreño <davefx@gmail.com> in
3493 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3321>.
3494
3495 ** libgnutls: gnutls_x509_crq_print will now also print public key id.
3496
3497 ** certtool: --verify-chain now prints results of using library verification.
3498 Earlier, certtool --verify-chain used its own validation algorithm
3499 which wasn't guaranteed to give the same result as the libgnutls
3500 internal validation algorithm.  Now this command print a new final
3501 line with header 'Chain verification output:' that contains the result
3502 from using the internal verification algorithm on the same chain.
3503
3504 ** tests: Add crq_key_id self-test of gnutls_x509_crq_get_key_id.
3505
3506 ** API and ABI modifications:
3507 gnutls_x509_crq_get_key_id: ADDED.
3508
3509 * Version 2.7.3 (released 2008-12-10)
3510
3511 ** libgnutls: Fix chain verification for chains that ends with RSA-MD2 CAs.
3512 Reported by Michael Kiefer <Michael-Kiefer@web.de> in
3513 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507633> forwarded by
3514 Andreas Metzler <ametzler@downhill.at.eu.org> in
3515 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3309>.
3516
3517 ** libgnutls: Libgcrypt initialization changed.
3518 If libgcrypt has not already been initialized, GnuTLS will now
3519 initialize libgcrypt with disabled secure memory.  Initialize
3520 libgcrypt explicitly in your application if you want to enable secure
3521 memory.  Before GnuTLS initialized libgcrypt to use GnuTLS's memory
3522 allocation functions, which doesn't use secure memory, so there is no
3523 real change in behaviour.
3524
3525 ** libgnutls: Fix memory leak in PSK authentication.
3526 Reported by Michael Weiser <michael@weiser.dinsnail.net> in
3527 <http://permalink.gmane.org/gmane.network.gnutls.general/1465>.
3528
3529 ** libgnutls: Small byte reads via gnutls_record_recv() optimized.
3530
3531 ** certtool: Move gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0) call earlier.
3532 It needs to be invoked before libgcrypt is initialized.
3533
3534 ** gnutls-cli: Return non-zero exit code on error conditions.
3535
3536 ** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
3537
3538 ** tests: Added chainverify self-test that tests X.509 chain verifications.
3539
3540 ** API and ABI modifications:
3541 No changes since last version.
3542
3543 * Version 2.7.2 (released 2008-11-18)
3544
3545 ** libgnutls: Fix X.509 certificate chain validation error. [GNUTLS-SA-2008-3]
3546 The flaw makes it possible for man in the middle attackers (i.e.,
3547 active attackers) to assume any name and trick GnuTLS clients into
3548 trusting that name.  Thanks for report and analysis from Martin von
3549 Gagern <Martin.vGagern@gmx.net>.  [CVE-2008-4989]
3550
3551 Any updates with more details about this vulnerability will be added
3552 to <http://www.gnu.org/software/gnutls/security.html>
3553
3554 ** libgnutls: Fix namespace issue with version symbols.
3555 The symbols LIBGNUTLS_VERSION, LIBGNUTLS_VERSION_MAJOR,
3556 LIBGNUTLS_VERSION_MINOR, LIBGNUTLS_VERSION_PATCH, and
3557 LIBGNUTLS_VERSION_NUMBER were renamed to GNUTLS_VERSION_NUMBER,
3558 GNUTLS_VERSION_MAJOR, GNUTLS_VERSION_MINOR, GNUTLS_VERSION_PATCH, and
3559 GNUTLS_VERSION_NUMBER respectively.  The old symbols will continue to
3560 work but are deprecated.
3561
3562 ** certtool: allow setting arbitrary key purpose object identifiers.
3563
3564 ** libgnutls: Fix detection of C99 macros, to make debug logging work again.
3565
3566 ** libgnutls: Add missing prototype for gnutls_srp_set_prime_bits.
3567 Reported by Kevin Quick <quick@sparq.org> in
3568 <https://savannah.gnu.org/support/index.php?106454>.
3569
3570 ** libgnutls-extra: Make building with LZO compression work again.
3571 Build failure reported by Arfrever Frehtes Taifersar Arahesis
3572 <arfrever.fta@gmail.com> in
3573 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3194>.
3574
3575 ** libgnutls: Change detection of when to use a linker version script.
3576 Use --enable-ld-version-script or --disable-ld-version-script to
3577 override auto-detection logic.
3578
3579 ** doc: Change license on the manual to GFDLv1.3+.
3580
3581 ** doc: GTK-DOC fixes for new splitted configuration system.
3582
3583 ** doc: Texinfo stylesheet uses white background.
3584
3585 ** tests: Add cve-2008-4989.c self-test.
3586 Tests regressions of the GNUTLS-SA-2008-3 security problem, and the
3587 follow-on problem with crashes on length 1 certificate chains.
3588
3589 ** gnulib: Deprecated modules removed.
3590 Modules include memchr and memcmp.
3591
3592 ** Fix warnings and build GnuTLS with more warnings enabled.
3593
3594 ** minitasn1: Internal copy updated to libtasn1 v1.7.
3595
3596 ** API and ABI modifications:
3597 gnutls_certificate_set_x509_simple_pkcs12_mem: ADDED
3598 GNUTLS_VERSION: ADDED, replaces LIBGNUTLS_VERSION.
3599 GNUTLS_VERSION_MAJOR: ADDED, replaces LIBGNUTLS_VERSION_MAJOR.
3600 GNUTLS_VERSION_MINOR: ADDED, replaces LIBGNUTLS_VERSION_MINOR.
3601 GNUTLS_VERSION_PATCH: ADDED, replaces LIBGNUTLS_VERSION_PATCH.
3602 GNUTLS_VERSION_NUMBER: ADDED, replaces LIBGNUTLS_VERSION_NUMBER.
3603 LIBGNUTLS_VERSION: DEPRECATED.
3604 LIBGNUTLS_VERSION_MAJOR: DEPRECATED.
3605 LIBGNUTLS_VERSION_MINOR: DEPRECATED.
3606 LIBGNUTLS_VERSION_PATCH: DEPRECATED.
3607 LIBGNUTLS_VERSION_NUMBER: DEPRECATED.
3608
3609 * Version 2.7.1 (released 2008-10-31)
3610
3611 ** certtool: print a PKCS #8 key even if it is not encrypted.
3612
3613 ** Old libgnutls.m4 and libgnutls-config scripts removed.
3614 Please use pkg-config instead.
3615
3616 ** Configuration system modified.
3617 There is now a configure script in lib/ and libextra/ as well, because
3618 gnulib works better with a config.h per gnulib directory.
3619
3620 ** API and ABI modifications:
3621 No changes since last version.
3622
3623 * Version 2.7.0 (released 2008-10-16)
3624
3625 ** libgnutls: Added functions to handle CRL extensions.
3626
3627 ** libgnutls: Added functions to handle X.509 extensions in Certificate
3628 Requests.
3629
3630 ** libgnutls: Improved error string for GNUTLS_E_AGAIN.
3631 Suggested by "Lavrentiev, Anton (NIH/NLM/NCBI) [C]" <lavr@ncbi.nlm.nih.gov>.
3632
3633 ** certtool: Print and set CRL and CRQ extensions.
3634
3635 ** libgnutls-extra: Protect internal symbols with static.
3636 Fixes problem when linking certtool statically.  Tiny patch from Aaron
3637 Ucko <ucko@ncbi.nlm.nih.gov>.
3638
3639 ** libgnutls-openssl: fix out of bounds access.
3640 Problem in X509_get_subject_name and X509_get_issuer_name.  Tiny patch
3641 from Thomas Viehmann <tv@beamnet.de>.
3642
3643 ** libgnutlsxx: Define server_session::get_srp_username even if no SRP.
3644
3645 ** tests: Make tests compile when using internal libtasn1.
3646 Patch by ludo@gnu.org (Ludovic Courtès).
3647
3648 ** Changed detection of libtasn1 and libgcrypt to avoid depending on *-config.
3649 We now require a libgcrypt that has Camellia constants declared in
3650 gcrypt.h, which means v1.3.0 or later.
3651
3652 ** API and ABI modifications:
3653 gnutls_x509_crl_get_authority_key_id: ADDED
3654 gnutls_x509_crl_get_number: ADDED
3655 gnutls_x509_crl_get_extension_oid: ADDED
3656 gnutls_x509_crl_get_extension_info: ADDED
3657 gnutls_x509_crl_get_extension_data: ADDED
3658 gnutls_x509_crl_set_authority_key_id: ADDED
3659 gnutls_x509_crl_set_number: ADDED
3660 gnutls_x509_crq_get_key_rsa_raw: ADDED
3661 gnutls_x509_crq_get_attribute_info: ADDED
3662 gnutls_x509_crq_get_attribute_data: ADDED
3663 gnutls_x509_crq_get_extension_info: ADDED
3664 gnutls_x509_crq_get_extension_data: ADDED
3665 gnutls_x509_crq_get_key_usage: ADDED
3666 gnutls_x509_crq_get_basic_constraints: ADDED
3667 gnutls_x509_crq_get_subject_alt_name: ADDED
3668 gnutls_x509_crq_get_subject_alt_othername_oid: ADDED
3669 gnutls_x509_crq_get_extension_by_oid: ADDED
3670 gnutls_x509_crq_set_subject_alt_name: ADDED
3671 gnutls_x509_crq_set_basic_constraints: ADDED
3672 gnutls_x509_crq_set_key_usage: ADDED
3673 gnutls_x509_crq_get_key_purpose_oid: ADDED
3674 gnutls_x509_crq_set_key_purpose_oid: ADDED
3675 gnutls_x509_crq_print: ADDED
3676 gnutls_x509_crt_set_crq_extensions: ADDED
3677
3678 * Version 2.6.6 (released 2009-04-30)
3679
3680 ** libgnutls: Corrected double free on signature verification failure.
3681 Reported by Miroslav Kratochvil <exa.exa@gmail.com>.  See the advisory
3682 for more details.  [GNUTLS-SA-2009-1] [CVE-2009-1415]
3683
3684 ** libgnutls: Fix DSA key generation.
3685 Noticed when investigating the previous GNUTLS-SA-2009-1 problem.  All
3686 DSA keys generated using GnuTLS 2.6.x are corrupt.  See the advisory
3687 for more details.  [GNUTLS-SA-2009-2] [CVE-2009-1416]
3688
3689 ** libgnutls: Check expiration/activation time on untrusted certificates.
3690 Reported by Romain Francoise <romain@orebokech.com>.  Before the
3691 library did not check activation/expiration times on certificates, and
3692 was documented as not doing so.  We have realized that many
3693 applications that use libgnutls, including gnutls-cli, fail to perform
3694 proper checks.  Implementing similar logic in all applications leads
3695 to code duplication.  Hence, we decided to check whether the current
3696 time (as reported by the time function) is within the
3697 activation/expiration period of certificates when verifying untrusted
3698 certificates.
3699
3700 This changes the semantics of gnutls_x509_crt_list_verify, which in
3701 turn is used by gnutls_certificate_verify_peers and
3702 gnutls_certificate_verify_peers2.  We add two new
3703 gnutls_certificate_status_t codes for reporting the new error
3704 condition, GNUTLS_CERT_NOT_ACTIVATED and GNUTLS_CERT_EXPIRED.  We also
3705 add a new gnutls_certificate_verify_flags flag,
3706 GNUTLS_VERIFY_DISABLE_TIME_CHECKS, that can be used to disable the new
3707 behaviour.
3708
3709 More details about the vulnerabilities will be posted at
3710 <http://www.gnu.org/software/gnutls/security.html>.
3711
3712 ** gnutls-cli, gnutls-cli-debug: Fix AIX build problem.
3713 Reported by LAUPRETRE François (P) <francois.laupretre@ratp.fr> in
3714 <http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3468>.
3715
3716 ** tests: Fix linking of tests/openpgp/keyring self-test.
3717 Reported by Daniel Black in <https://savannah.gnu.org/support/?106543>.
3718
3719 ** API and ABI modifications:
3720 gnutls_x509_crt_list_verify: CHANGED, checks activation/expiration times.
3721 gnutls_certificate_verify_peers: Likewise.
3722 gnutls_certificate_verify_peers2: Likewise.
3723 GNUTLS_CERT_NOT_ACTIVATED: ADDED.
3724 GNUTLS_CERT_EXPIRED: ADDED.
3725 GNUTLS_VERIFY_DISABLE_TIME_CHECKS: ADDED.
3726
3727 * Version 2.6.5 (released 2009-04-11)
3728
3729 ** libgnutls: Added %SSL3_RECORD_VERSION priority string that allows to
3730 specify the client hello message record version. Used to overcome buggy
3731 TLS servers. Report by Martin von Gagern.
3732
3733 ** GnuTLS no longer uses the libtasn1-config script to find libtasn1.
3734 Libtasn1 0.3.4 or later is required.  This is to align with the
3735 upcoming libtasn1 v2.0 release that doesn't have a libtasn1-script.
3736
3737 ** API and ABI modifications:
3738 No changes since last version.
3739
3740 * Version 2.6.4 (released 2009-02-06)
3741
3742 ** libgnutls: Accept chains where intermediary certs are trusted.
3743 Before GnuTLS needed to validate the entire chain back to a
3744 self-signed certificate.  GnuTLS will now stop looking when it has
3745 found an intermediary trusted certificate.  The new behaviour is
3746 useful when chains, for example, contains a top-level CA, an
3747 intermediary CA signed using RSA-MD5, and an end-entity certificate.
3748 To avoid chain validation errors due to the RSA-MD5 cert, you can
3749 explicitly add the intermediary RSA-MD5 cert to your trusted certs.
3750 The signature on trusted certificates are not checked, so the chain
3751 has a chance to validate correctly.  Reported by "Douglas E. Engert"
3752 <deengert@anl.gov> in
3753 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
3754
3755 ** libgnutls: result_size in gnutls_hex_encode now holds
3756 the size of the result. Report by John Brooks <special@dereferenced.net>.
3757
3758 ** libgnutls: gnutls_handshake when sending client hello during a
3759 rehandshake, will not offer a version number larger than the current.
3760 Reported by Tristan Hill <stan@saticed.me.uk>.
3761
3762 ** libgnutls: Permit V1 Certificate Authorities properly.
3763 Before they were mistakenly rejected even though
3764 GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT and/or
3765 GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT were supplied.  Reported by
3766 "Douglas E. Engert" <deengert@anl.gov> in
3767 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3351>.
3768
3769 ** libgnutls: deprecate X.509 validation chains using MD5 and MD2 signatures.
3770 This is a bugfix -- the previous attempt to do this from internal x509
3771 certificate verification procedures did not return the correct value
3772 for certificates using a weak hash.  Reported by Daniel Kahn Gillmor
3773 <dkg@fifthhorseman.net> in
3774 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3332>,
3775 debugged and patch by Tomas Mraz <tmraz@redhat.com> and Daniel Kahn
3776 Gillmor <dkg@fifthhorseman.net>.
3777
3778 ** libgnutls: Fix compile error with Sun CC.
3779 Reported by Jeff Cai <jeff.cai@sun.com> in
3780 <https://savannah.gnu.org/support/?106549>.
3781
3782 ** API and ABI modifications:
3783 No changes since last version.
3784
3785 * Version 2.6.3 (released 2008-12-12)
3786
3787 ** libgnutls: Fix chain verification for chains that ends with RSA-MD2 CAs.
3788 Reported by Michael Kiefer <Michael-Kiefer@web.de> in
3789 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507633> forwarded by
3790 Andreas Metzler <ametzler@downhill.at.eu.org> in
3791 <http://thread.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/3309>.
3792
3793 ** libgnutls: Fix memory leak in PSK authentication.
3794 Reported by Michael Weiser <michael@weiser.dinsnail.net> in
3795 <http://permalink.gmane.org/gmane.network.gnutls.general/1465>.
3796
3797 ** certtool: Move gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0) call earlier.
3798 It needs to be invoked before libgcrypt is initialized.
3799
3800 ** gnutls-cli: Return non-zero exit code on error conditions.
3801
3802 ** gnutls-cli: Corrected bug which caused a rehandshake request to be ignored.
3803
3804 ** API and ABI modifications:
3805 No changes since last version.
3806
3807 * Version 2.6.2 (released 2008-11-12)
3808
3809 ** libgnutls: Fix crash in X.509 validation code for self-signed certificates.
3810 The patch to fix the security problem GNUTLS-SA-2008-3 introduced a
3811 problem for certificate chains that contained just one self-signed
3812 certificate.  Reported by Michael Meskes <meskes@debian.org> in
3813 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505279>.
3814
3815 ** API and ABI modifications:
3816 No changes since last version.
3817
3818 * Version 2.6.1 (released 2008-11-10)
3819
3820 ** libgnutls: Fix X.509 certificate chain validation error. [GNUTLS-SA-2008-3]
3821 The flaw makes it possible for man in the middle attackers (i.e.,
3822 active attackers) to assume any name and trick GnuTLS clients into
3823 trusting that name.  Thanks for report and analysis from Martin von
3824 Gagern <Martin.vGagern@gmx.net>.  [CVE-2008-4989]
3825
3826 Any updates with more details about this vulnerability will be added
3827 to <http://www.gnu.org/software/gnutls/security.html>
3828
3829 ** libgnutls: Add missing prototype for gnutls_srp_set_prime_bits.
3830 Reported by Kevin Quick <quick@sparq.org> in
3831 <https://savannah.gnu.org/support/index.php?106454>.
3832
3833 ** libgnutls-extra: Protect internal symbols with static.
3834 Fixes problem when linking certtool statically.  Tiny patch from Aaron
3835 Ucko <ucko@ncbi.nlm.nih.gov>.
3836
3837 ** libgnutls-openssl: Fix patch against X509_get_issuer_name.
3838 It incorrectly returned the subject DN instead of issuer DN in v2.6.0.
3839 Thanks to Thomas Viehmann <tv@beamnet.de> for report.
3840
3841 ** certtool: Print a PKCS #8 key even if it is not encrypted.
3842
3843 ** tests: Make tests compile when using internal libtasn1.
3844 Patch by ludo@gnu.org (Ludovic Courtès).
3845
3846 ** API and ABI modifications:
3847 No changes since last version.
3848
3849 * Version 2.6.0 (released 2008-10-06)
3850
3851 ** libgnutls: Correct printing and parsing of IPv6 addresses.
3852
3853 ** libgnutls-openssl: fix out of bounds access.
3854 Problem in X509_get_subject_name and X509_get_issuer_name.  Tiny patch
3855 from Thomas Viehmann <tv@beamnet.de>.
3856
3857 ** certtool: Use inet_pton for parsing IPv6 addresses.
3858
3859 ** Major changes compared to the v2.4 branch:
3860
3861 *** Added API to replace and update the crypto backend.
3862
3863 *** certtool: can add several subject alternative names via template file.
3864
3865 *** opencdk: Parse (but not decrypt) encrypted secret keys.
3866
3867 *** libgnutls: gnutls_x509_crt_set_subject_alt_name() was added that can
3868 either set or append alternative names. It can also handle binary structures
3869 such as IP addresses.
3870
3871 *** libgnutls: New function to set minimum acceptable SRP bits.
3872 The function is gnutls_srp_set_prime_bits.