./security/gnutls, GNU Transport Layer Security library

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.6.0, Package name: gnutls-3.6.0, Maintainer: pkgsrc-users

GnuTLS is a portable ANSI C based library which implements the TLS 1.0 and SSL
3.0 protocols. The library does not include any patented algorithms and is
available under the GNU Lesser GPL license.

Important features of the GnuTLS library include:
- Thread safety
- Support for both TLS 1.0 and SSL 3.0 protocols
- Support for both X.509 and OpenPGP certificates
- Support for basic parsing and verification of certificates
- Support for SRP for TLS authentication
- Support for TLS Extension mechanism
- Support for TLS Compression Methods

Additionally GnuTLS provides an emulation API for the widely used OpenSSL
library, to ease integration with existing applications.


Required to run:
[archivers/lzo] [security/libtasn1] [devel/gmp] [devel/libcfg+] [devel/autogen] [security/nettle] [textproc/libunistring]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 7526804877a555b0bd136dfaa8a2ade738018301
RMD160: e2346506096e63a5a622a18c72c4269302ec4003
Filesize: 7836.887 KB

Version history: (Expand)


CVS history: (Expand)


   2017-09-06 15:41:26 by Thomas Klausner | Files touched by this commit (8) | Package updated
Log message:
Updated gnutls to 3.6.0.

* Version 3.6.0 (released 2017-08-21)

** libgnutls: tlsfuzzer is part of the CI testsuite. This is a TLS testing and
   fuzzying toolkit, allowing for corner case testing, and ensuring that the
   behavior of the library will not change across releases.
   https://github.com/tomato42/tlsfuzzer

** libgnutls: Introduced a lock-free random generator which operates per-thread
   and eliminates random-generator related bottlenecks in multi-threaded operation.
   Resolves gitlab issue #141.
   http://nmav.gnutls.org/2017/03/improvin … -prng.html

** libgnutls: Replaced the Salsa20 random generator with one based on CHACHA.
   The goal is to reduce code needed in cache (CHACHA is also used for TLS),
   and the number of primitives used by the library. That does not affect the
   AES-DRBG random generator used in FIPS140-2 mode.

** libgnutls: Added support for RSA-PSS key type as well as signatures in
   certificates, and TLS key exchange. Contributed by Daiki Ueno.
   RSA-PSS signatures can be generated by RSA-PSS keys and normal RSA keys,
   but not vice-versa.  The feature includes:
     * RSA-PSS key generation and key handling (in PKCS#8 form)
     * RSA-PSS key generation and key handling from PKCS#11 (with \ 
CKM_RSA_PKCS_PSS mech)
     * Handling of RSA-PSS subjectPublicKeyInfo parameters, when present
       in either the private key or certificate.
     * RSA-PSS signing and verification of PKIX certificates
     * RSA-PSS signing and verification of TLS 1.2 handshake
     * RSA-PSS signing and verification of PKCS#7 structures
     * RSA-PSS and RSA key combinations for TLS credentials. That is, when
       multiple keys are supplied, RSA-PSS keys are preferred over RSA for RSA-PSS
       TLS signatures, to contain risks of cross-protocol attacks between the \ 
algorithms.
     * RSA-PSS key conversion to RSA PKCS#1 form (certtool --to-rsa)
   Note that RSA-PSS signatures with SHA1 are (intentionally) not supported.

** libgnutls: Added support for Ed25519 signing in certificates and TLS key
   exchange following draft-ietf-tls-rfc4492bis-17.  The feature includes:
     * Ed25519 key generation and key handling (in PKCS#8 form)
     * Ed25519 signing and verification of PKIX certificates
     * Ed25519 signing and verification of TLS 1.2 handshake
     * Ed25519 signing and verification of PKCS#7 structures

** libgnutls: Enabled X25519 key exchange by default, following \ 
draft-ietf-tls-rfc4492bis-17.

** libgnutls: Added support for Diffie-Hellman group negotiation following RFC7919.
   That makes the DH parameters negotiation more robust and less prone to errors
   due to insecure parameters. Servers are no longer required to specific explicit
   DH parameters, though if they do these parameters will be used. Group
   selection can be done via priority strings. The introduced strings are
   GROUP-ALL, GROUP-FFDHE2048, GROUP-FFDHE3072, GROUP-FFDHE4096 and
   GROUP-FFDHE8192, as well as the corresponding to curves groups. Note that
   the 6144 group from RFC7919 is not supported.

** libgnutls: Introduced various sanity checks on certificate import. Refuse
   to import certificates which have fractional seconds in Time fields, X.509v1
   certificates which have the unique identifiers set, and certificates with illegal
   version numbers. All of these are prohibited by RFC5280.

** libgnutls: Introduced gnutls_x509_crt_set_flags(). This function can set flags
   in the crt structure. The only flag supported at the moment is
   GNUTLS_X509_CRT_FLAG_IGNORE_SANITY which skips the certificate sanity
   checks on import.

** libgnutls: PKIX certificates with unknown critical extensions are rejected
   on verification with status GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS. This
   behavior can be overriden by providing the flag \ 
GNUTLS_VERIFY_IGNORE_UNKNOWN_CRIT_EXTENSIONS
   to verification functions. Resolves gitlab issue #177.

** libgnutls: Refuse to generate a certificate with an illegal version, or an
   illegal serial number. That is, gnutls_x509_crt_set_version() and
   gnutls_x509_crt_set_serial(), will fail on input considered to be invalid
   in RFC5280.

** libgnutls: Calls to gnutls_record_send() and gnutls_record_recv()
   prior to handshake being complete are now refused. Addresses gitlab issue #158.

** libgnutls: Added support for PKCS#12 files with no salt (zero length) in their
   password encoding, and PKCS#12 files using SHA384 and SHA512 as MAC.

** libgnutls: Exported functions to encode and decode DSA and ECDSA r,s values.

** libgnutls: Added new callback setting function to gnutls_privkey_t for external
   keys. The new function (gnutls_privkey_import_ext4), allows signing in addition
   to previous algorithms (RSA PKCS#1 1.5, DSA, ECDSA), with RSA-PSS and Ed25519
   keys.

** libgnutls: Introduced the %VERIFY_ALLOW_BROKEN and %VERIFY_ALLOW_SIGN_WITH_SHA1
   priority string options. These allows enabling all broken and SHA1-based signature
   algorithms in certificate verification, respectively.

** libgnutls: 3DES-CBC is no longer included in the default priorities
   list. It has to be explicitly enabled, e.g., with a string like
   "NORMAL:+3DES-CBC".

** libgnutls: SHA1 was marked as insecure for signing certificates. Verification
   of certificates signed with SHA1 is now considered insecure and will
   fail, unless flags intended to enable broken algorithms are set. Other uses
   of SHA1 are still allowed. This can be reverted on compile time with the configure
   flag --enable-sha1-support.

** libgnutls: RIPEMD160 was marked as insecure for certificate signatures. \ 
Verification
   of certificates signed with RIPEMD160 hash algorithm is now considered \ 
insecure and
   will fail, unless flags intended to enable broken algorithms are set.

** libgnutls: No longer enable SECP192R1 and SECP224R1 by default on TLS handshakes.
   These curves were rarely used for that purpose, provide no advantage over
   x25519 and were deprecated by TLS 1.3.

** libgnutls: Removed support for DEFLATE, or any other compression method.

** libgnutls: OpenPGP authentication was removed; the resulting library is ABI
   compatible, with the openpgp related functions being stubs that fail
   on invocation.

** libgnutls: Removed support for libidn (i.e., IDNA2003); gnutls can now be compiled
   only with libidn2 which provides IDNA2008.

** certtool: The option '--load-ca-certificate' can now accept PKCS#11
   URLs in addition to files.

** certtool: The option '--load-crl' can now be used when generating PKCS#12
   files (i.e., in conjunction with '--to-p12' option).

** certtool: Keys with provable RSA and DSA parameters are now only read and
   exported from PKCS#8 form, following \ 
draft-mavrogiannopoulos-pkcs8-validated-parameters-00.txt.
   This removes support for the previous a non-standard key format.

** certtool: Added support for generating, printing and handling RSA-PSS and
   Ed25519 keys and certificates.

** certtool: the parameters --rsa, --dsa and --ecdsa to --generate-privkey are now
   deprecated, replaced by the --key-type option.

** p11tool: The --generate-rsa, --generate-ecc and --generate-dsa options were
   replaced by the --generate-privkey option.

** psktool: Generate 256-bit keys by default.

** gnutls-server: Increase request buffer size to 16kb, and added the --alpn and
   --alpn-fatal options, allowing testing of ALPN negotiation.

** API and ABI modifications:
gnutls_encode_rs_value: Added
gnutls_decode_rs_value: Added
gnutls_base64_encode2: Added
gnutls_base64_decode2: Added
gnutls_x509_crt_set_flags: Added
gnutls_x509_crt_check_ip: Added
gnutls_x509_ext_import_inhibit_anypolicy: Added
gnutls_x509_ext_export_inhibit_anypolicy: Added
gnutls_x509_crt_get_inhibit_anypolicy: Added
gnutls_x509_crt_set_inhibit_anypolicy: Added
gnutls_pubkey_export_rsa_raw2: Added
gnutls_pubkey_export_dsa_raw2: Added
gnutls_pubkey_export_ecc_raw2: Added
gnutls_privkey_export_rsa_raw2: Added
gnutls_privkey_export_dsa_raw2: Added
gnutls_privkey_export_ecc_raw2: Added
gnutls_x509_spki_init: Added
gnutls_x509_spki_deinit: Added
gnutls_x509_spki_get_pk_algorithm: Added
gnutls_x509_spki_set_pk_algorithm: Added
gnutls_x509_spki_get_digest_algorithm: Added
gnutls_x509_spki_set_digest_algorithm: Added
gnutls_x509_spki_get_salt_size: Added
gnutls_x509_spki_set_salt_size: Added
gnutls_x509_crt_set_spki: Added
gnutls_x509_crt_get_spki: Added
gnutls_x509_privkey_get_spki: Added
gnutls_x509_privkey_set_spki: Added
gnutls_x509_crq_get_spki: Added
gnutls_x509_crq_set_spki: Added
gnutls_pubkey_set_spki: Added
gnutls_pubkey_get_spki: Added
gnutls_privkey_set_spki: Added
gnutls_privkey_get_spki: Added
gnutls_privkey_import_ext4: Added
GNUTLS_EXPORT_FLAG_NO_LZ: Added
GNUTLS_DT_IP_ADDRESS: Added
GNUTLS_X509_CRT_FLAG_IGNORE_SANITY: Added
GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS: Added
GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1: Added
GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES: Added
GNUTLS_VERIFY_IGNORE_UNKNOWN_CRIT_EXTENSIONS: Added
GNUTLS_SFLAGS_RFC7919: Added
   2017-08-22 14:05:45 by Jared D. McNeill | Files touched by this commit (1)
Log message:
Make sure the configure script picks up the correct copy of libintl
   2017-08-08 18:38:41 by Johnny C. Lam | Files touched by this commit (2)
Log message:
DOCDIR is not defined anywhere in the Makefile.
   2017-06-30 08:15:44 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
Updated gnutls to 3.5.13.

While here, remove empty line from PLIST.

* Version 3.5.13 (released 2017-06-07)

** libgnutls: fixed issue with AES-GCM in-place encryption and decryption in
   aarch64. Resolves gitlab issue #204.

** libgnutls: no longer parse the ResponseID field of the status response
   TLS extension. The field is not used by GnuTLS nor is made available to
   calling applications. That addresses a null pointer dereference on server
   side caused by packets containing the ResponseID field. Reported
   by Hubert Kario. [GNUTLS-SA-2017-4]

** libgnutls: tolerate certificates which do not have strict DER time encoding.
   It is possible using 3rd party tools to generate certificates with time fields
   that do not conform to DER requirements. Since 3.4.x these certificates were \ 
rejected
   and cannot be used with GnuTLS, however that caused problems with existing private
   certificate infrastructures, which were relying on such certificates (see gitlab
   issue #196). Tolerate reading and using these certificates.

** minitasn1: updated to libtasn1 4.11.

** certtool: allow multiple certificates to be used in --p7-sign with
   the --load-certificate option. Patch by Karl Tarbe.
   2017-05-18 09:54:26 by Havard Eidnes | Files touched by this commit (3) | Package updated
Log message:
Update to GnuTLS 3.5.12.

Pkgsrc changes:
Adapt PLIST.

Upstream changes:

* Version 3.5.12 (released 2017-05-11)

** libgnutls: enabled TCP Fast open for MacOSX. Patch by Tim Ruehsen.

** libgnutls: gnutls_x509_crt_check_hostname2() no longer matches IP addresses
   against DNS fields of certificate (CN or DNSname). The previous behavior
   was to tolerate some misconfigured servers, but that was non-standard
   and skipped any IP constraints present in higher level certificates.

** libgnutls: when converting to IDNA2008, fallback to IDNA2003
   (i.e., transitional encoding) if the domain cannot be converted.
   That provides maximum compatibility with browsers like firefox
   that perform the same conversion.

** libgnutls: fix issue in RSA-PSK client callback which resulted
   in no username being sent to the peer. Patch by Nicolas Dufresne.

** libgnutls: fix regression causing stapled extensions in trust modules not
   to be considered.

** certtool: introduced the email_protection_key option.  This
   option was introduced in documentation for certtool without an
   implementation of it.  It is a shortcut for option 'key_purpose_oid
   = 1.3.6.1.5.5.7.3.4'.

** certtool: made printing of key ID and key PIN consistent between
   certificates, public keys, and private keys. That is the private
   key printing now uses the same format as the rest.

** gnutls-cli: introduced the --sni-hostname option. This allows overriding the
   hostname advertised to the peer.

** API and ABI modifications:
No changes since last version.

* Version 3.5.11 (released 2017-04-07)

** gnutls.pc: do not include libtool options into Libs.private.

** libgnutls: Fixed issue when rehandshaking without a client certificate in
   a session which initially used one. Reported by Frantisek Sumsal.

** libgnutls: Addressed read of 4 bytes past the end of buffer in OpenPGP
   certificate parsing. Issues found using oss-fuzz project and were fixed
   by Alex Gaynor:
   https://bugs.chromium.org/p/oss-fuzz/is … ail?id=737
   https://bugs.chromium.org/p/oss-fuzz/is … ail?id=824

** libgnutls: Introduced locks in gnutls_pkcs11_privkey_t structure access.
   That allows PKCS#11 operations such as signing to be performed with the
   same object from multiple threads.

** libgnutls: Added support for MacOSX key chain for obtaining
   trust store's root CA certificates. That is,
   gnutls_x509_trust_list_add_system_trust() and
   gnutls_certificate_set_x509_system_trust() will load the certificates
   from the key chain. That also means that we no longer check for a
   default trust store file in configure when building on MacOSX (unless
   explicitly asked to).  Patch by David Caldwell.

** libgnutls: when disabling OpenPGP authentication, the resulting library
   is ABI compatible (with openpgp related functions being stubs that fail
   on invocation).

** API and ABI modifications:
No changes since last version.

* Version 3.5.10 (released 2017-03-06)

** gnutls.pc: do not include libidn2 in Requires.private. The
   libidn2 versions available do not include libidn2.pc, thus the
   inclusion was causing pkg-config issues. Instead we include
   -lidn2 in Libs.private when compile against libidn2.

** libgnutls: optimized access to subject alternative names (SANs)
   in parsed certificates. The previous implementation assumed a
   small number of SANs in a certificate, with repeated calls to
   ASN.1 decoding of the extension without any intermediate caching.
   That caused delays in certificates with a long list of names in
   functions such as gnutls_x509_crt_check_hostname().  With the
   current code, the SANs are parsed once on certificate import.
   Resolves gitlab issue #165.

** libgnutls: Addressed integer overflow resulting to invalid memory
   write in OpenPGP certificate parsing. Issue found using oss-fuzz
   project:  https://bugs.chromium.org/p/oss-fuzz/is … ail?id=420
   [GNUTLS-SA-2017-3A]

** libgnutls: Addressed read of 1 byte past the end of buffer in OpenPGP
   certificate parsing. Issue found using oss-fuzz project:
   https://bugs.chromium.org/p/oss-fuzz/is … ail?id=391

** libgnutls: Addressed crashes in OpenPGP certificate parsing, related
   to private key parser. No longer allow OpenPGP certificates (public keys)
   to contain private key sub-packets. Issue found using oss-fuzz project:
   https://bugs.chromium.org/p/oss-fuzz/is … ail?id=354
   https://bugs.chromium.org/p/oss-fuzz/is … ail?id=360 [GNUTLS-SA-2017-3B]

** libgnutls: Addressed large allocation in OpenPGP certificate parsing, that
   could lead in out-of-memory condition. Issue found using oss-fuzz project,
   and was fixed by Alex Gaynor:
   https://bugs.chromium.org/p/oss-fuzz/is … ail?id=392 [GNUTLS-SA-2017-3C]

** libgnutls: Print the key PIN value used by the HPKP protocol as per RFC7469
   when printing certificate information.

** libgnutls: gnutls_ocsp_resp_verify_direct() and gnutls_ocsp_resp_verify()
   flags can be set from the gnutls_certificate_verify_flags enumeration.
   This allows the functions to pass the same flags available for certificates
   to the verification function (e.g., GNUTLS_VERIFY_DISABLE_TIME_CHECKS or
   GNUTLS_VERIFY_ALLOW_BROKEN).

** libgnutls: gnutls_store_commitment() can accept flag
   GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN. This is to allow the function to operate
   in applications which use SHA1 for example, after SHA1 is deprecated.

** certtool: No longer ignore the 'add_critical_extension' template option if
   the 'add_extension' option is not present.

** gnutls-cli: Added LMTP, POP3, NNTP, Sieve and PostgreSQL support to the
   starttls-proto command. Patch by Robert Scheck.

** API and ABI modifications:
No changes since last version.
   2017-04-10 12:43:49 by Jonathan Perkin | Files touched by this commit (2)
Log message:
Avoid unsupported xgetbv instruction on older Darwin assemblers.
   2017-02-26 10:19:56 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
* Version 3.5.9 (released 2017-02-12)

** libgnutls: Removed any references to OpenPGP functionality in documentation,
   and marked all functions in openpgp.h as deprecated. That functionality
   is considered deprecated and should not be used for other reason than
   backwards compatibility.

** libgnutls: Improve detection of AVX support. In certain cases when
   when the instruction was available on the host, but not on a VM running
   gnutls, detection could fail causing illegal instruction usage.

** libgnutls: Added support for IDNA2008 for internationalized DNS names.
   If gnutls is compiled using libidn2 (the latest version is recommended),
   it will support IDNA2008 instead of the now obsolete IDNA2003 standard.
   Resolves gitlab issue 150. Based on patch by Tim Ruehsen.

** p11tool: re-use ID from corresponding objects when writing certificates.
   That is, when writing a certificate which has a corresponding public key,
   or private key in the token, ensure that we use the same ID for the
   certificate.

** API and ABI modifications:
gnutls_idna_map: Added
gnutls_idna_reverse_map: Added
   2017-01-11 18:06:52 by Thomas Klausner | Files touched by this commit (1)
Log message:
Add libunistring to bl3.mk, it's linked into libgnutls{,xx}.so.

PR 51830