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