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