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