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