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