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