]> git.ipfire.org Git - thirdparty/gnutls.git/log
thirdparty/gnutls.git
8 years agoFixed some spelling issues. [ci skip]
Tom Vrancken [Tue, 22 May 2018 09:22:42 +0000 (11:22 +0200)] 
Fixed some spelling issues. [ci skip]

Signed-off-by: Tom Vrancken <dev@tomvrancken.nl>
8 years agoAdded extra extension flag to docs.
Tom Vrancken [Mon, 21 May 2018 19:58:55 +0000 (21:58 +0200)] 
Added extra extension flag to docs.
Added description of default pack and unpack functions.

Signed-off-by: Tom Vrancken <dev@tomvrancken.nl>
8 years agoRemoved section about Heartbleed.
Tom Vrancken [Mon, 21 May 2018 07:44:16 +0000 (09:44 +0200)] 
Removed section about Heartbleed.
Referenced new functions _gnutls_hello_ext_set_datum / _gnutls_hello_ext_get_datum for manipulation extension data.

Signed-off-by: Tom Vrancken <dev@tomvrancken.nl>
8 years agoFixed typo and incorrect function references.
Tom Vrancken [Sun, 20 May 2018 08:23:36 +0000 (10:23 +0200)] 
Fixed typo and incorrect function references.

Signed-off-by: Tom Vrancken <dev@tomvrancken.nl>
8 years agoUpdated documentation on Hello extensions.
Tom Vrancken [Sat, 19 May 2018 20:22:29 +0000 (22:22 +0200)] 
Updated documentation on Hello extensions.

Signed-off-by: Tom Vrancken <dev@tomvrancken.nl>
8 years agoMerge branch 'tmp-pkcs11-raw' into 'master'
Nikos Mavrogiannopoulos [Mon, 21 May 2018 11:45:11 +0000 (11:45 +0000)] 
Merge branch 'tmp-pkcs11-raw' into 'master'

gnutls_pkcs11_token_get_ptr, gnutls_pkcs11_obj_get_ptr: introduced

See merge request gnutls/gnutls!640

8 years agopkcs11: consistent/clear naming of find obj callbacks and structs
Nikos Mavrogiannopoulos [Sat, 19 May 2018 09:30:35 +0000 (11:30 +0200)] 
pkcs11: consistent/clear naming of find obj callbacks and structs

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Fri, 18 May 2018 09:04:34 +0000 (11:04 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agognutls_pkcs11_token_get_ptr, gnutls_pkcs11_obj_get_ptr: introduced
Nikos Mavrogiannopoulos [Fri, 18 May 2018 07:19:16 +0000 (09:19 +0200)] 
gnutls_pkcs11_token_get_ptr, gnutls_pkcs11_obj_get_ptr: introduced

This allows an application to open a PKCS#11 token using a URI,
and use it directly, bypassing gnutls. That is useful to take
advantage of PKCS#11 functionality not wrapped by gnutls but
still use PKCS#11 URIs to identify the token.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoCONTRIBUTING.md: document why gnulib is kept separate [ci skip]
Nikos Mavrogiannopoulos [Sat, 19 May 2018 10:47:16 +0000 (12:47 +0200)] 
CONTRIBUTING.md: document why gnulib is kept separate [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agocerttool: split long prompt for serial
Martin Sucha [Fri, 18 May 2018 16:52:41 +0000 (18:52 +0200)] 
certtool: split long prompt for serial

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agodoc: add note about CRL numbers to man page
Martin Sucha [Fri, 18 May 2018 11:00:43 +0000 (13:00 +0200)] 
doc: add note about CRL numbers to man page

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agocerttool: ask again until serial/crl number is valid
Martin Sucha [Fri, 18 May 2018 10:35:39 +0000 (12:35 +0200)] 
certtool: ask again until serial/crl number is valid

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agotests: remove check for broken datefudge
Martin Sucha [Fri, 18 May 2018 09:39:53 +0000 (11:39 +0200)] 
tests: remove check for broken datefudge

This check is not necessary with Fedora 28 build image
currently used for CI as it contains datefudge 1.22
as well.

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agocerttool: remove extra function
Martin Sucha [Fri, 18 May 2018 08:43:26 +0000 (10:43 +0200)] 
certtool: remove extra function

I did not notice strip_nl previously.

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agotests: add negative tests for certtool crl numbers
Martin Sucha [Fri, 18 May 2018 08:31:30 +0000 (10:31 +0200)] 
tests: add negative tests for certtool crl numbers

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agodoc: add NEWS about serial and CRL numbers
Martin Sucha [Sun, 13 May 2018 21:28:33 +0000 (23:28 +0200)] 
doc: add NEWS about serial and CRL numbers

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agodoc: add hex format to example template
Martin Sucha [Sun, 13 May 2018 21:04:29 +0000 (23:04 +0200)] 
doc: add hex format to example template

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agocerttool: use larger serial and CRL numbers
Martin Sucha [Thu, 17 May 2018 10:31:01 +0000 (12:31 +0200)] 
certtool: use larger serial and CRL numbers

Serial/CRL numbers can be up to 20 octets in length
as per RFC 5280, so it should be possible to use
such numbers as input to certtool. certtool
only allowed to specify 63-bit numbers in
template file or interactively (even though
it generated larger numbers in batch mode
by default).

This patch allows large numbers to be specified
as a hexadecimal string. Parsing of decimal numbers
larger than native integers would require adding
dependency on libgmp directly to certtool or
extending the API exposed by GnuTLS library with parsing
functions. Since most tools (including GnuTLS) display
serial numbers in hexadecimal, it is not worth the
trouble to support large decimal numbers.

Default values are unified between batch mode and
interactive input and their size is extended.

CA/Browser forum recommends CAs to include at least
64 bits of random data in the certificate serial
numbers in Baseline Requirements[1] section 7.1, but
gnutls adds only 32 bits. Some other
implementations generate default serial numbers
with more entropy as well, here is the current state
as of May 2018:

+----------------+-------------------------------+
| Implementation | Random bits in default serial |
+----------------+-------------------------------+
| OpenSSL [2]    | 159                           |
| CFSSL [3]      | 159                           |
| wolfSSL [4]    | 128                           |
| GnuTLS         | 32                            |
| Mbed TLS [5]   | 0 (defaults to 1)             |
+----------------+-------------------------------+

The 20 octet field size can fit numbers up to 159 bits
since the most significant bit must be zero as numbers
in DER encoding are in two's complement and the serial
and CRL numbers must be positive.

Default serial numbers are extended to full 159 bits
allowed by the field size and are completely random,
which matches other implementations.

CRL numbers have the same size requirements, but also
need to be monotonic (RFC 5280, section 5.2.3). That's
why timestamp is used in them. The timestamp portion
is extended from 31 bits to 39 bits as 31 bits will
overflow in year 2038. The rest of the available space
up to 159 bits allowed in the 20 octet limit is filled
with random bits.

Since the new CRL numbers are larger, the requirement for them
to be monotonically increasing is preserved when upgrading to a
newer version. This does not hold the other way around though,
so after using a newer version of certtool to generate a CRL
with default number and publishing it, it's not possible
to use older version anymore to generate subsequent CRLs.
Unfortunately, there is no easy workaround for users of older
certtool, since it is not possible to specify CRL numbers
greater than 63 bits manually prior to this change.
Users intending to downgrade to older version later are advised
to specify the CRL numbers in new version of certtool
manually with values they are smaller than what would get
generated by default in the old version.

grep does not recognize CRLF line endings generated
in tests using MinGW, so we need to convert those to
LF endings for $ in the regex to match test output
correctly.

datefudge 1.21 that is present in Fedora 26
image trims the timestamp to 32 bits. That bug was
fixed in datefudge 1.22 available in the Debian image,
so we check if datefudge behaves correctly
and skip the test that uses more than 32 bits if
datefudge is broken.

[1] https://cabforum.org/wp-content/uploads/CA-Browser-Forum-BR-1.4.2.pdf
[2] https://github.com/openssl/openssl/blob/6ebb49f3f9c9333611192561979bb799fa1eb76d/apps/apps.c#L1513
[3] https://github.com/cloudflare/cfssl/blob/5d63dbd981b5c408effbb58c442d54761ff94fbd/signer/local/local.go#L295
[4] https://github.com/wolfSSL/wolfssl/blob/d60b16c5b8c19cc61db4a5c3f5e085a7a158cd28/wolfcrypt/src/asn.c#L9791
[5] https://github.com/ARMmbed/mbedtls/blob/84a1107818aaddfd2abe4c5a3478cf84ab2e26b4/programs/x509/cert_write.c#L81

Signed-off-by: Martin Sucha <anty.sk+git@gmail.com>
8 years agoMerge branch 'tmp-prohibit-tls-dtls-mix' into 'master'
Nikos Mavrogiannopoulos [Fri, 18 May 2018 13:48:13 +0000 (13:48 +0000)] 
Merge branch 'tmp-prohibit-tls-dtls-mix' into 'master'

Added the notion of TLS-only and DTLS-only extensions

Closes #440

See merge request gnutls/gnutls!634

8 years agohandshake: do not send TLS extensions under DTLS and vice versa
Nikos Mavrogiannopoulos [Mon, 7 May 2018 07:52:32 +0000 (09:52 +0200)] 
handshake: do not send TLS extensions under DTLS and vice versa

That is, introduce the notion of TLS-only and DTLS-only extensions,
providing a framework to prevent sending extensions which are registered
for example for TLS 1.3, under DTLS and vice versa.

Resolves #440

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agognutls_ext_raw_parse: introduced GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO
Nikos Mavrogiannopoulos [Mon, 7 May 2018 09:51:41 +0000 (11:51 +0200)] 
gnutls_ext_raw_parse: introduced GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO

This allows parsing extensions from a DTLS client hello.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: fix serv location in testcompat-main-openssl
Nikos Mavrogiannopoulos [Wed, 16 May 2018 13:32:35 +0000 (15:32 +0200)] 
tests: fix serv location in testcompat-main-openssl

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests/suite: add missing file to dist
Andreas Metzler [Sun, 13 May 2018 12:39:14 +0000 (14:39 +0200)] 
tests/suite: add missing file to dist

Signed-off-by: Andreas Metzler <ametzler@bebt.de>
8 years agoAllow running of test against installed gnutls-serv
Andreas Metzler [Sun, 13 May 2018 12:33:17 +0000 (14:33 +0200)] 
Allow running of test against installed gnutls-serv

Signed-off-by: Andreas Metzler <ametzler@bebt.de>
8 years agognutls_certificate_set_retrieve_function3: updated documentation 628/head
Nikos Mavrogiannopoulos [Fri, 4 May 2018 12:55:21 +0000 (14:55 +0200)] 
gnutls_certificate_set_retrieve_function3: updated documentation

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Wed, 2 May 2018 12:30:24 +0000 (14:30 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agopcert: added functionality to retrieve lists
Nikos Mavrogiannopoulos [Sun, 29 Apr 2018 13:16:35 +0000 (15:16 +0200)] 
pcert: added functionality to retrieve lists

That introduces gnutls_pcert_list_import_x509_file() and
gnutls_x509_crt_list_import_url().

Resolves #373

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotests: sanity-cpp: fixes for win32
Nikos Mavrogiannopoulos [Sat, 12 May 2018 08:10:28 +0000 (10:10 +0200)] 
tests: sanity-cpp: fixes for win32

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years ago.gitlab-ci.yml: bumped version of cache due to addition of CXXFLAGS
Nikos Mavrogiannopoulos [Sat, 12 May 2018 07:51:59 +0000 (09:51 +0200)] 
.gitlab-ci.yml: bumped version of cache due to addition of CXXFLAGS

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotests: fix failures in cxx example
Nikos Mavrogiannopoulos [Sat, 12 May 2018 07:04:28 +0000 (09:04 +0200)] 
tests: fix failures in cxx example

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agocxx: bring few modern functions, and allow to get the raw session
Nikos Mavrogiannopoulos [Sat, 12 May 2018 06:47:15 +0000 (08:47 +0200)] 
cxx: bring few modern functions, and allow to get the raw session

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agoMerge branch 'master' into 'master'
Nikos Mavrogiannopoulos [Sat, 12 May 2018 06:55:32 +0000 (06:55 +0000)] 
Merge branch 'master' into 'master'

New C++ interfaces for passing flags while construction

Closes #438

See merge request gnutls/gnutls!637

8 years agoNew constructors for classes client_session() and server_session() provide passing...
Philippe Widmer [Thu, 10 May 2018 14:44:58 +0000 (16:44 +0200)] 
New constructors for classes client_session() and server_session() provide passing flags. Closes #438.

Signed-off-by: Philippe Widmer <pw@earthwave.ch>
8 years agotests: mini-record-timing: updated to work under newer gnutls [ci skip]
Nikos Mavrogiannopoulos [Thu, 10 May 2018 11:38:32 +0000 (13:38 +0200)] 
tests: mini-record-timing: updated to work under newer gnutls [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: key_update: improved error checking and increased timeout
Nikos Mavrogiannopoulos [Thu, 10 May 2018 03:49:07 +0000 (05:49 +0200)] 
tests: key_update: improved error checking and increased timeout

That is to avoid reaching the maximum number of key updates per second.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years ago.gitlab-ci.yml: moved fedora CI builds to F28
Nikos Mavrogiannopoulos [Sat, 5 May 2018 20:31:39 +0000 (22:31 +0200)] 
.gitlab-ci.yml: moved fedora CI builds to F28

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotests: testcompat-openssl: disable DSS ciphersuites under SSL3.0
Nikos Mavrogiannopoulos [Sat, 5 May 2018 21:21:16 +0000 (23:21 +0200)] 
tests: testcompat-openssl: disable DSS ciphersuites under SSL3.0

Previously if openssl wouldn't support DSS, we would only disable
DSS under TLS1.0 or later, not under SSL 3.0. This fixes interoperability
with Fedora28 openssl.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agoMakefile.am: optimized the abi-check configure step
Nikos Mavrogiannopoulos [Mon, 7 May 2018 06:12:12 +0000 (08:12 +0200)] 
Makefile.am: optimized the abi-check configure step

Also ensured that the same build flags are applied in both builds
for ABI checking.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoseveral updates to address issues found by clang static analyzer
Nikos Mavrogiannopoulos [Sat, 5 May 2018 21:15:06 +0000 (23:15 +0200)] 
several updates to address issues found by clang static analyzer

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agonettle: fix casts which result to warnings in newer gcc
Nikos Mavrogiannopoulos [Sat, 5 May 2018 20:51:26 +0000 (22:51 +0200)] 
nettle: fix casts which result to warnings in newer gcc

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotests: updated for GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER from handshake
Nikos Mavrogiannopoulos [Mon, 7 May 2018 19:58:30 +0000 (21:58 +0200)] 
tests: updated for GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER from handshake

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agohandshake: use GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER consistently
Nikos Mavrogiannopoulos [Mon, 7 May 2018 19:49:16 +0000 (21:49 +0200)] 
handshake: use GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER consistently

Also treat GNUTLS_E_ILLEGAL_PARAMETER as a synonym if returned during
a connection.

Relates #442

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agoCONTRIBUTING.md: documented status of C++ library [ci skip]
Nikos Mavrogiannopoulos [Mon, 7 May 2018 19:42:44 +0000 (21:42 +0200)] 
CONTRIBUTING.md: documented status of C++ library [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotests: cookie: fixed exit condition [ci skip]
Nikos Mavrogiannopoulos [Mon, 7 May 2018 08:50:30 +0000 (10:50 +0200)] 
tests: cookie: fixed exit condition [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agodoc update [ci skip]
Nikos Mavrogiannopoulos [Mon, 7 May 2018 13:39:30 +0000 (15:39 +0200)] 
doc update [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years ago.gitlab-ci.yml: fixes in win32 builds
Nikos Mavrogiannopoulos [Mon, 7 May 2018 06:17:09 +0000 (08:17 +0200)] 
.gitlab-ci.yml: fixes in win32 builds

Relates #439

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agocerttool: honor --ask-pass when loading a private key
Nikos Mavrogiannopoulos [Fri, 4 May 2018 06:39:30 +0000 (08:39 +0200)] 
certtool: honor --ask-pass when loading a private key

This also improves the password prompt when the password requested
is not for a smart card.

Resolves: #436

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years ago.gitlab-ci.yml: Disable full test suite for cross builds
Michael Weiser [Fri, 27 Apr 2018 13:35:30 +0000 (15:35 +0200)] 
.gitlab-ci.yml: Disable full test suite for cross builds

Disable the full test suite for cross CI builds to speed them up.

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
8 years ago.gitlab-ci.yml: Expire all build log artifacts
Michael Weiser [Wed, 25 Apr 2018 14:54:27 +0000 (16:54 +0200)] 
.gitlab-ci.yml: Expire all build log artifacts

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
8 years agoUse configured CC for pkg-config test
Michael Weiser [Wed, 28 Mar 2018 20:47:01 +0000 (22:47 +0200)] 
Use configured CC for pkg-config test

Using the configured compiler aids in running the test suite under qemu
or in a multlib scenario.

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
8 years agoAdd Debian-based qemu cross CI targets
Michael Weiser [Mon, 19 Mar 2018 18:02:12 +0000 (19:02 +0100)] 
Add Debian-based qemu cross CI targets

Signed-off-by: Michael Weiser <michael.weiser@gmx.de>
8 years agoupdated-auto-generated files
Nikos Mavrogiannopoulos [Sat, 5 May 2018 20:38:56 +0000 (22:38 +0200)] 
updated-auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agofuzzer: added fresh TLS1.3 server trace
Nikos Mavrogiannopoulos [Sat, 5 May 2018 20:17:15 +0000 (22:17 +0200)] 
fuzzer: added fresh TLS1.3 server trace

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agognutls-serv: all skipping DTLS cookie request
Nikos Mavrogiannopoulos [Sat, 5 May 2018 19:59:13 +0000 (21:59 +0200)] 
gnutls-serv: all skipping DTLS cookie request

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agognutls-cli: corrected data written by server trace
Nikos Mavrogiannopoulos [Sat, 5 May 2018 19:45:56 +0000 (21:45 +0200)] 
gnutls-cli: corrected data written by server trace

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotests: post handshake auth: test more combinations
Nikos Mavrogiannopoulos [Thu, 3 May 2018 09:53:51 +0000 (11:53 +0200)] 
tests: post handshake auth: test more combinations

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agopost_handshake_auth: send extension irrespective of certificates being present
Nikos Mavrogiannopoulos [Thu, 3 May 2018 09:48:46 +0000 (11:48 +0200)] 
post_handshake_auth: send extension irrespective of certificates being present

The feature does not necessarily require certificates to be present
and an empty cert can be presented. Furthermore, the certificates
can be set later on the credentials structure.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoMerge branch 'tmp-openssl-suite' into 'master'
Nikos Mavrogiannopoulos [Fri, 4 May 2018 10:29:10 +0000 (10:29 +0000)] 
Merge branch 'tmp-openssl-suite' into 'master'

Added testsuite for TLS1.3 interoperability with openssl

Closes #228 and #427

See merge request gnutls/gnutls!621

8 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Thu, 3 May 2018 11:48:52 +0000 (13:48 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: added interop tests with openssl under TLS1.3
Nikos Mavrogiannopoulos [Sun, 8 Apr 2018 16:38:47 +0000 (18:38 +0200)] 
tests: added interop tests with openssl under TLS1.3

This adds interoperability tests for:
 * PSK with elliptic curve DHE
 * RSA,RSA-PSS,secp256r1,ed25519 server certificate
 * RSA,RSA-PSS,secp256r1,ed25519 client certificate
 * X25519,SECP256R1 key share exchange
 * key share with HRR

Relates #328

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agodoc: clarified re-handshake details under TLS1.2 server
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 08:07:32 +0000 (10:07 +0200)] 
doc: clarified re-handshake details under TLS1.2 server

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotls13/certificate_request: corrected check of duplicate signature algorithms
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 07:09:41 +0000 (09:09 +0200)] 
tls13/certificate_request: corrected check of duplicate signature algorithms

Made the check local when parsing a certificate request, as we may
receive multiple requests when post-handshake authentication is
in place. Furthermore check whether this extension has been received
as this is a mandatory one. In addition handle a memory leak when
multiple peer certificates are set.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agognutls_reauth: doc update
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 06:41:22 +0000 (08:41 +0200)] 
gnutls_reauth: doc update

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agognutls-cli: enhanced tool for TLS1.3 options
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 19:35:52 +0000 (21:35 +0200)] 
gnutls-cli: enhanced tool for TLS1.3 options

This patch allows a client to enable post-handshake
authentication, perform re-key and restrict the sent key shares.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agotls13/certificate: send empty certificate instead of skipping
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 12:51:15 +0000 (14:51 +0200)] 
tls13/certificate: send empty certificate instead of skipping

According to TLS1.3 spec:
   The server's certificate_list MUST always be non-empty.  A client
   will send an empty certificate_list if it does not have an
   appropriate certificate to send in response to the server's
   authentication request.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years ago_gnutls_figure_common_ciphersuite: ignore certificate check if PSK is negotiated
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 11:47:57 +0000 (13:47 +0200)] 
_gnutls_figure_common_ciphersuite: ignore certificate check if PSK is negotiated

That is, if we are performing PSK under TLS1.3, don't bother
checking whether the certificate is compatible with the ciphersuite;
there isn't any.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotls13/certificate_verify: corrected context in signatures in client side
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 08:53:51 +0000 (10:53 +0200)] 
tls13/certificate_verify: corrected context in signatures in client side

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years ago_gnutls13_handshake_sign_data: avoid unnecessary copy
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 08:47:59 +0000 (10:47 +0200)] 
_gnutls13_handshake_sign_data: avoid unnecessary copy

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agohandshake: cleanup in TLS1.3 initial secret calculation
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 07:01:28 +0000 (09:01 +0200)] 
handshake: cleanup in TLS1.3 initial secret calculation

That eliminates duplicate code in server hello parsing.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agopsk: compute binder which is compatible with draft-ietf-tls-tls13
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 06:06:14 +0000 (08:06 +0200)] 
psk: compute binder which is compatible with draft-ietf-tls-tls13

Previously the computed binder values was not compatible with any
TLS1.3 draft, and was not interoperating with openssl or tlslite.

Resolves #427

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoCONTRIBUTING.md: added text on CI [ci skip]
Nikos Mavrogiannopoulos [Fri, 4 May 2018 06:06:35 +0000 (08:06 +0200)] 
CONTRIBUTING.md: added text on CI [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: fallback scsv: check proper fallback under TLS 1.3
Nikos Mavrogiannopoulos [Thu, 3 May 2018 12:19:34 +0000 (14:19 +0200)] 
tests: fallback scsv: check proper fallback under TLS 1.3

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoencrypt_packet_tls13: made size check safer
Nikos Mavrogiannopoulos [Thu, 3 May 2018 13:13:13 +0000 (15:13 +0200)] 
encrypt_packet_tls13: made size check safer

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoMerge branch 'tmp-pkcs11-sensitive-fix' into 'master'
Nikos Mavrogiannopoulos [Thu, 3 May 2018 11:45:14 +0000 (11:45 +0000)] 
Merge branch 'tmp-pkcs11-sensitive-fix' into 'master'

pkcs11: mark private key objects as sensitive by default

See merge request gnutls/gnutls!627

8 years agopkcs11: mark private key objects as sensitive by default
Nikos Mavrogiannopoulos [Sat, 28 Apr 2018 09:14:34 +0000 (11:14 +0200)] 
pkcs11: mark private key objects as sensitive by default

That is, to prevent accidentally creating objects which can
be exported.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agoMerge branch 'tmp-rsa-psk-fix' into 'master'
Nikos Mavrogiannopoulos [Mon, 30 Apr 2018 06:58:56 +0000 (06:58 +0000)] 
Merge branch 'tmp-rsa-psk-fix' into 'master'

RSA-PSK ciphersuites: only use under TLS1.2

See merge request gnutls/gnutls!624

8 years agotests: check the behavior of TLS1.2 key exchange methods under TLS1.3
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 13:02:53 +0000 (15:02 +0200)] 
tests: check the behavior of TLS1.2 key exchange methods under TLS1.3

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agopsk: mark psk_ke_modes as invalid when ignored
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 13:11:28 +0000 (15:11 +0200)] 
psk: mark psk_ke_modes as invalid when ignored

TLS1.3 handles the receiving of pre-shared keys extension as
invalid when the psk_ke_modes extension is not received as well.
As such, when we ignore the psk_ke_modes for some reason (e.g.,
no credentials) we need to indicate that it was received. We
use the invalid mode flag for that reason, allowing the handshake
to fail later for the right reason (e.g., no credentials error rather
than illegal extension).

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agopriority: handle RSA-PSK ciphersuites similar to SRP
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 13:01:48 +0000 (15:01 +0200)] 
priority: handle RSA-PSK ciphersuites similar to SRP

That is, when specified disable TLS1.3.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoMerge branch 'tmp-sni-hostname' into 'master'
Nikos Mavrogiannopoulos [Sun, 29 Apr 2018 16:38:05 +0000 (16:38 +0000)] 
Merge branch 'tmp-sni-hostname' into 'master'

tests: updated sni-hostname check for TLS1.3

Closes #344

See merge request gnutls/gnutls!623

8 years agoAdd another sni related test
Andreas Metzler [Sat, 28 Apr 2018 12:14:30 +0000 (14:14 +0200)] 
Add another sni related test

As --sni-hostname does not imply --verify-hostname a hostname mismatch
still triggers an error.

Signed-off-by: Andreas Metzler <ametzler@bebt.de>
8 years agotests: sni-hostname was updated to support TLS1.3
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 12:00:15 +0000 (14:00 +0200)] 
tests: sni-hostname was updated to support TLS1.3

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Sun, 29 Apr 2018 11:44:04 +0000 (13:44 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agodoc: Add crossreference/warning
Andreas Metzler [Sat, 28 Apr 2018 12:11:27 +0000 (14:11 +0200)] 
doc: Add crossreference/warning

Add pointer to --verify-hostname to --sni-hostname description.

Signed-off-by: Andreas Metzler <ametzler@bebt.de>
8 years agognutls-cli: added option to specify the verification hostname
Nikos Mavrogiannopoulos [Mon, 23 Apr 2018 11:58:22 +0000 (13:58 +0200)] 
gnutls-cli: added option to specify the verification hostname

This enables testing various scenarios, by allowing to specify the
hostname to be used for certificate validation when connecting to
a remote host (e.g., localhost but with a certificate for example.com).

Resolves #344

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agodoc: fixes for better latex pdf generation [ci skip]
Nikos Mavrogiannopoulos [Thu, 26 Apr 2018 07:06:00 +0000 (09:06 +0200)] 
doc: fixes for better latex pdf generation [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoretrieve_pin: refuse to retrieve PIN from URI more than one time
Nikos Mavrogiannopoulos [Tue, 24 Apr 2018 06:36:06 +0000 (08:36 +0200)] 
retrieve_pin: refuse to retrieve PIN from URI more than one time

That is, prevent re-using a static PIN if it has already been
known to be wrong. Introduced tests of that behavior.

Resolves #425

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agodoc: updated OCSP documentation [ci skip]
Nikos Mavrogiannopoulos [Tue, 24 Apr 2018 14:42:10 +0000 (16:42 +0200)] 
doc: updated OCSP documentation [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agognutls.h.in: corrected typo [ci skip]
Nikos Mavrogiannopoulos [Sun, 22 Apr 2018 14:02:08 +0000 (16:02 +0200)] 
gnutls.h.in: corrected typo [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
8 years agofuzz: corrected TLS1.3 enablement [ci skip]
Nikos Mavrogiannopoulos [Fri, 20 Apr 2018 06:42:27 +0000 (08:42 +0200)] 
fuzz: corrected TLS1.3 enablement [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoMerge branch 'tmp-constate-fix' into 'master'
Nikos Mavrogiannopoulos [Wed, 18 Apr 2018 18:50:16 +0000 (18:50 +0000)] 
Merge branch 'tmp-constate-fix' into 'master'

Fix re-handshake failure when interrupted by application data

Closes #426

See merge request gnutls/gnutls!620

8 years ago_gnutls_epoch_new: allow re-allocation epoch next epoch
Nikos Mavrogiannopoulos [Tue, 17 Apr 2018 08:59:25 +0000 (10:59 +0200)] 
_gnutls_epoch_new: allow re-allocation epoch next epoch

On certain cases when re-handshake is interrupted by application
data, _gnutls_epoch_new() will be called twice. Make sure that
this does not lead to an error. We also rename the function to
clarify its purpose _gnutls_epoch_setup_next().

Resolves #426

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: added reproducers for receiving app data when rehandshake is expected
Nikos Mavrogiannopoulos [Tue, 17 Apr 2018 07:52:01 +0000 (09:52 +0200)] 
tests: added reproducers for receiving app data when rehandshake is expected

Relates: #426

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: eliminated exit_code variable used in few tests
Nikos Mavrogiannopoulos [Tue, 17 Apr 2018 07:31:12 +0000 (09:31 +0200)] 
tests: eliminated exit_code variable used in few tests

It was a legacy variable for error printing that was never
used uniformly.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: eagain: moved to cmocka and enhanced for TLS1.3
Nikos Mavrogiannopoulos [Tue, 17 Apr 2018 07:24:29 +0000 (09:24 +0200)] 
tests: eagain: moved to cmocka and enhanced for TLS1.3

That also makes macros from eagain-common.h functioning under cmocka.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agotests: tls12-rehandshake-cert*: run multiple rehandshake tests
Nikos Mavrogiannopoulos [Mon, 16 Apr 2018 07:51:11 +0000 (09:51 +0200)] 
tests: tls12-rehandshake-cert*: run multiple rehandshake tests

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agoMerge branch 'tmp-memleak-fix' into 'master'
Nikos Mavrogiannopoulos [Tue, 17 Apr 2018 07:31:44 +0000 (07:31 +0000)] 
Merge branch 'tmp-memleak-fix' into 'master'

tls13/finished: addressed memory leak in receiving finished packet

See merge request gnutls/gnutls!619

8 years agotls13/finished: addressed memory leak in receiving finished packet
Nikos Mavrogiannopoulos [Tue, 17 Apr 2018 05:45:54 +0000 (07:45 +0200)] 
tls13/finished: addressed memory leak in receiving finished packet

Issue found using oss-fuzz:
  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7518

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
8 years agopriority: document the reasons for the order of supported groups [ci skip]
Nikos Mavrogiannopoulos [Mon, 16 Apr 2018 13:35:33 +0000 (15:35 +0200)] 
priority: document the reasons for the order of supported groups [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>