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