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