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