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