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