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