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