[gnutls-devel] gnutls 3.6.3

Nikos Mavrogiannopoulos nmav at gnutls.org
Mon Jul 16 08:51:21 CEST 2018

 I've just released gnutls 3.6.3. This is the first release which adds
full support of TLS1.3 (draft28), and several other features on the
3.6.x branch. 

* Version 3.6.3 (released 2018-07-16)

** libgnutls: Introduced support for draft-ietf-tls-tls13-28. It includes version
   negotiation, post handshake authentication, length hiding, multiple OCSP support,
   consistent ciphersuite support across protocols, hello retry requests, ability
   to adjust key shares via gnutls_init() flags, certificate authorities extension,
   and key usage limits. TLS1.3 draft-28 support can be enabled by default if
   the option --enable-tls13-support is given to configure script.

** libgnutls: Apply compatibility settings for existing applications running with TLS1.2 or
   earlier and TLS 1.3. When SRP or NULL ciphersuites are specified in priority strings
   TLS 1.3 is will be disabled. When Anonymous ciphersuites are specified in priority
   strings, then TLS 1.3 negotiation will be disabled if the session is associated
   only with an anonymous credentials structure.

** Added support for Russian Public Key Infrastructure according to RFCs 4491/4357/7836.
   This adds support for using GOST keys for digital signatures and under PKCS#7, PKCS#12,
   and PKCS#8 standards. In particular added elliptic curves GOST R 34.10-2001 CryptoProA
   256-bit curve (RFC 4357), GOST R 34.10-2001 CryptoProXchA 256-bit curve (RFC 4357),
   and GOST R 34.10-2012 TC26-512-A 512-bit curve (RFC 7836).

** Provide a uniform cipher list across supported TLS protocols; the CAMELLIA ciphers
   as well as ciphers utilizing HMAC-SHA384 and SHA256 have been removed from the default
   priority strings, as they are undefined under TLS1.3 and they provide not advantage
   over other options in earlier protocols.

** The SSL 3.0 protocol is disabled on compile-time by default. It can be re-enabled
   by specifying --enable-ssl3-support on configure script.

** libgnutls: Introduced function to switch the current FIPS140-2 operational
   mode, i.e., strict vs a more lax mode which will allow certain non FIPS140-2

** libgnutls: Introduced low-level function to assist applications attempting client
   hello extension parsing, prior to GnuTLS' parsing of the message.

** libgnutls: When exporting an X.509 certificate avoid re-encoding if there are no
   modifications to the certificate. That prevents DER re-encoding issues with incorrectly
   encoded certificates, or other DER incompatibilities to affect a TLS session.
   Relates with #403

** libgnutls: on group exchange honor the %SERVER_PRECEDENCE and select the groups
   which are preferred by the server. That unfortunately has complicated semantics
   as TLS1.2 requires specific ordering of the groups based on the ciphersuite ordering,
   which could make group order unpredictable if TLS1.3 is negotiated.

** Improved counter-measures for TLS CBC record padding. Kenny Paterson, Eyal Ronen
   and Adi Shamir reported that the existing counter-measures had certain issues and
   were insufficient when the attacker has additional access to the CPU cache and 
   performs a chosen-plaintext attack. This affected the legacy CBC ciphersuites. [CVSS: medium]

** Introduced the %FORCE_ETM priority string option. This option prevents the negotiation
   of legacy CBC ciphersuites unless encrypt-then-mac is negotiated.

** libgnutls: gnutls_privkey_import_ext4() was enhanced with the

** libgnutls: gnutls_pkcs11_copy_secret_key, gnutls_pkcs11_copy_x509_privkey2,
   gnutls_pkcs11_privkey_generate3 will mark objects as sensitive by default
   unless GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE is specified. This is an API
   change for these functions which make them err towards safety.

** libgnutls: improved aarch64 cpu features detection by using getauxval().

** certtool: It is now possible to specify certificate and serial CRL numbers greater
   than 2**63-2 as a hex-encoded string both when prompted and in a template file.
   Default certificate serial numbers are now fully random. Default CRL
   numbers include more random bits and are larger than in previous GnuTLS versions.
   Since CRL numbers are required to be monotonic, specify suitable CRL numbers manually
   if you intend to later downgrade to previous versions as it was not possible
   to specify large CRL numbers in previous versions of certtool.

** API and ABI modifications:
gnutls_fips140_set_mode: Added
gnutls_session_key_update: Added
gnutls_ext_get_current_msg: Added
gnutls_reauth: Added
gnutls_ocsp_status_request_get2: Added
gnutls_ocsp_resp_import2: Added
gnutls_ocsp_resp_export2: Added
gnutls_ocsp_resp_list_import2: Added
gnutls_certificate_set_retrieve_function3: Added
gnutls_certificate_set_ocsp_status_request_file2: Added
gnutls_certificate_set_ocsp_status_request_mem: Added
gnutls_certificate_get_ocsp_expiration: Added
gnutls_record_send2: Added
gnutls_ext_raw_parse: Added
gnutls_x509_crt_list_import_url: Added
gnutls_pcert_list_import_x509_file: Added
gnutls_pkcs11_token_get_ptr: Added
gnutls_pkcs11_obj_get_ptr: Added
gnutls_session_ticket_send: Added
gnutls_aead_cipher_encryptv: Added
gnutls_gost_paramset_get_name: Added
gnutls_gost_paramset_get_oid: Added
gnutls_oid_to_gost_paramset: Added
gnutls_decode_gost_rs_value: Added
gnutls_encode_gost_rs_value: Added
gnutls_pubkey_export_gost_raw2: Added
gnutls_pubkey_import_gost_raw: Added
gnutls_x509_crt_get_pk_gost_raw: Added
gnutls_privkey_export_gost_raw2: Added
gnutls_privkey_import_gost_raw: Added
gnutls_x509_privkey_export_gost_raw: Added
gnutls_x509_privkey_import_gost_raw: Added
gnutls_set_default_priority_append: Added
gnutls_priority_init2: Added

Getting the Software

GnuTLS may be downloaded directly from
<ftp://ftp.gnutls.org/gcrypt/gnutls/>.  A list of GnuTLS mirrors can be
found at <http://www.gnutls.org/download.html>.

Here are the XZ compressed sources:


Here are OpenPGP detached signatures signed using key 0x96865171:


Note that it has been signed with my openpgp key:
pub   3104R/96865171 2008-05-04 [expires: 2028-04-29]
uid                  Nikos Mavrogiannopoulos <nmav <at> gnutls.org>
uid                  Nikos Mavrogiannopoulos <n.mavrogiannopoulos <at>
sub   2048R/9013B842 2008-05-04 [expires: 2018-05-02]
sub   2048R/1404A91D 2008-05-04 [expires: 2018-05-02]


More information about the Gnutls-devel mailing list