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