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