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