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