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