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