]> git.ipfire.org Git - thirdparty/gnutls.git/log
thirdparty/gnutls.git
9 years agotlsfuzzer: enabled test-extended-master-secret-extension.py
Nikos Mavrogiannopoulos [Tue, 18 Jul 2017 09:16:09 +0000 (11:16 +0200)] 
tlsfuzzer: enabled test-extended-master-secret-extension.py

That allows testing the extended master secret behavior.

Resolves: #231

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoext_master_secret: return proper error code on decoding error
Nikos Mavrogiannopoulos [Tue, 18 Jul 2017 08:59:23 +0000 (10:59 +0200)] 
ext_master_secret: return proper error code on decoding error

Proper meaning that it maps to the alert 'decode error' rather
than illegal parameter. According to tlsfuzzer the former is more
suitable.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-cli: re-use priorities for both client and server on benchmarks
Nikos Mavrogiannopoulos [Tue, 18 Jul 2017 06:07:24 +0000 (08:07 +0200)] 
gnutls-cli: re-use priorities for both client and server on benchmarks

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-cli: re-use priorities when measuring performance
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 17:14:33 +0000 (19:14 +0200)] 
gnutls-cli: re-use priorities when measuring performance

This avoids measuring cache misses due to priority processing time.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agotests: enhanced SSL3.0 openssl detection in testcompat-openssl
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 12:06:50 +0000 (14:06 +0200)] 
tests: enhanced SSL3.0 openssl detection in testcompat-openssl

That disables SSL 3.0 testing in openssl versions which cannot negotiated
it (see https://bugzilla.redhat.com/show_bug.cgi?id=1471783 for rationale)
and corrects a typo in the variable name and printed message.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years ago.gitlab-ci.yml: document that the x86 build is our openssl 1.0.x compat testing as...
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 09:57:41 +0000 (11:57 +0200)] 
.gitlab-ci.yml: document that the x86 build is our openssl 1.0.x compat testing as well

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: disable ARCFOUR interop tests if openssl doesn't support the cipher
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 09:08:07 +0000 (11:08 +0200)] 
tests: disable ARCFOUR interop tests if openssl doesn't support the cipher

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: testcompat-openssl: 3DES is explicitly enabled for SSL 3.0
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 06:32:08 +0000 (08:32 +0200)] 
tests: testcompat-openssl: 3DES is explicitly enabled for SSL 3.0

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoUse gcc's attribute to mark fallthrough statements
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 16:06:01 +0000 (18:06 +0200)] 
Use gcc's attribute to mark fallthrough statements

gcc7 is more verbose on fallthrough warnings, and this patch set
cleans up the current state by making use of the attribute when
necessary.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agoconfigure: do not utilize the -Wno-format-truncation gcc warning
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 16:09:18 +0000 (18:09 +0200)] 
configure: do not utilize the -Wno-format-truncation gcc warning

The warnings it produces have little value in our use of string functions.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years ago.gitlab-ci.yml: switched to fedora 26 for CI builds
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 15:43:09 +0000 (17:43 +0200)] 
.gitlab-ci.yml: switched to fedora 26 for CI builds

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agotests: introduced tests on public key import-export
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 13:17:08 +0000 (15:17 +0200)] 
tests: introduced tests on public key import-export

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added sign/verification test using rfc8080 keys
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 07:31:10 +0000 (09:31 +0200)] 
tests: added sign/verification test using rfc8080 keys

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: verify that a server with an ed25519 key will fail when client does not advert...
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 08:20:41 +0000 (10:20 +0200)] 
tests: verify that a server with an ed25519 key will fail when client does not advertise it

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: privkey-keygen: added unit test for Ed25519 keys
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 07:11:59 +0000 (09:11 +0200)] 
tests: privkey-keygen: added unit test for Ed25519 keys

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoprivkey_sign_and_hash_data: in pre-hashed schemes, allow empty hash algorithm
Nikos Mavrogiannopoulos [Mon, 17 Jul 2017 07:06:52 +0000 (09:06 +0200)] 
privkey_sign_and_hash_data: in pre-hashed schemes, allow empty hash algorithm

In these schemes the hash algorithm is fixed in the signature algorithm
and thus the empty (unknown) value will act as a wildcard.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added private key parameter verification in key-import-export checks
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 18:10:24 +0000 (20:10 +0200)] 
tests: added private key parameter verification in key-import-export checks

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agonettle: wrap_nettle_pk_verify_priv_params: verify whether public key matches private
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 18:03:21 +0000 (20:03 +0200)] 
nettle: wrap_nettle_pk_verify_priv_params: verify whether public key matches private

This enables gnutls_privkey_verify_params() for Ed25519 keys.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agoCONTRIBUTING.md: specified rules on boolean functions
Nikos Mavrogiannopoulos [Fri, 14 Jul 2017 18:52:49 +0000 (20:52 +0200)] 
CONTRIBUTING.md: specified rules on boolean functions

Based on suggestion by Hubert Kario.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agopriority: enabled Ed25519 signature by default
Nikos Mavrogiannopoulos [Fri, 14 Jul 2017 12:08:20 +0000 (14:08 +0200)] 
priority: enabled Ed25519 signature by default

As our implementation interoperates with boringssl's implementation
of Ed25519, we can now enable it.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Mon, 19 Jun 2017 08:45:49 +0000 (10:45 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agohandshake: return better error code on unwanted algorithm
Nikos Mavrogiannopoulos [Wed, 7 Jun 2017 07:50:29 +0000 (09:50 +0200)] 
handshake: return better error code on unwanted algorithm

That is, when a signature algorithm is available which was not
asked by the peer, then return GNUTLS_E_UNWANTED_ALGORITHM
instead of the UNKNOWN_ALGORITHM.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added check on Ed25519 chain verification
Nikos Mavrogiannopoulos [Wed, 7 Jun 2017 08:05:50 +0000 (10:05 +0200)] 
tests: added check on Ed25519 chain verification

This chain was generated using certtool, and passed verification
with OpenSSL's implementation (commit: db0f35dda18403accabe98e7780f3dfc516f49de)

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-cli: added RSA-PSS signatures in benchmark
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 09:34:49 +0000 (11:34 +0200)] 
gnutls-cli: added RSA-PSS signatures in benchmark

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agodoc update
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 09:47:48 +0000 (11:47 +0200)] 
doc update

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoprivkey_sign_and_hash_data: added sanity check on param validity
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 09:47:09 +0000 (11:47 +0200)] 
privkey_sign_and_hash_data: added sanity check on param validity

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-cli: added benchmark on X25519-Ed25519 key exchange
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 08:42:58 +0000 (10:42 +0200)] 
gnutls-cli: added benchmark on X25519-Ed25519 key exchange

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: pkcs7: added ed25519 basic signing and verification checks
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 07:42:22 +0000 (09:42 +0200)] 
tests: pkcs7: added ed25519 basic signing and verification checks

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoprivkey_sign_and_hash_data: handle prehashed signatures
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 07:23:53 +0000 (09:23 +0200)] 
privkey_sign_and_hash_data: handle prehashed signatures

This allows this function to handle ed25519, i.e., allows it
to operate for PKCS#7 signatures.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agopkcs7: improved syntax in if-clause
Nikos Mavrogiannopoulos [Tue, 6 Jun 2017 07:21:48 +0000 (09:21 +0200)] 
pkcs7: improved syntax in if-clause

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: enhanced OID tests for Ed25519 OIDs
Nikos Mavrogiannopoulos [Mon, 5 Jun 2017 08:14:43 +0000 (10:14 +0200)] 
tests: enhanced OID tests for Ed25519 OIDs

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: key-import-export: added Ed25519 key import/export checks
Nikos Mavrogiannopoulos [Fri, 2 Jun 2017 09:27:34 +0000 (11:27 +0200)] 
tests: key-import-export: added Ed25519 key import/export checks

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agodoc update
Nikos Mavrogiannopoulos [Fri, 2 Jun 2017 07:52:51 +0000 (09:52 +0200)] 
doc update

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: replaced rsa-pss/eddsa certtool options with --key-type
Nikos Mavrogiannopoulos [Fri, 2 Jun 2017 07:44:52 +0000 (09:44 +0200)] 
tests: replaced rsa-pss/eddsa certtool options with --key-type

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agocerttool: introduced the --key-type option
Nikos Mavrogiannopoulos [Fri, 2 Jun 2017 07:41:56 +0000 (09:41 +0200)] 
certtool: introduced the --key-type option

This replaces the --rsa-pss and --eddsa options.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoRenamed GNUTLS_PK_ECDHX to GNUTLS_PK_ECDH_X25519
Nikos Mavrogiannopoulos [Tue, 30 May 2017 11:02:06 +0000 (13:02 +0200)] 
Renamed GNUTLS_PK_ECDHX to GNUTLS_PK_ECDH_X25519

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: parse and interpret an EdDSA public key
Nikos Mavrogiannopoulos [Tue, 30 May 2017 10:53:40 +0000 (12:53 +0200)] 
tests: parse and interpret an EdDSA public key

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added TLS handshake test with EdDSA25519 certificates
Nikos Mavrogiannopoulos [Mon, 29 May 2017 14:23:10 +0000 (16:23 +0200)] 
tests: added TLS handshake test with EdDSA25519 certificates

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoAllowed Ed25519 signing in TLS handshakes
Nikos Mavrogiannopoulos [Mon, 29 May 2017 14:22:27 +0000 (16:22 +0200)] 
Allowed Ed25519 signing in TLS handshakes

This follows draft-ietf-tls-rfc4492bis-17

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added tests on EdDSA signature validation using the sign/verify_data APIs
Nikos Mavrogiannopoulos [Mon, 29 May 2017 13:23:21 +0000 (15:23 +0200)] 
tests: added tests on EdDSA signature validation using the sign/verify_data APIs

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: Added unit test on EdDSA key parsing
Nikos Mavrogiannopoulos [Fri, 26 May 2017 15:26:34 +0000 (17:26 +0200)] 
tests: Added unit test on EdDSA key parsing

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added Ed25519 key and certificate generation tests
Nikos Mavrogiannopoulos [Mon, 29 May 2017 10:52:12 +0000 (12:52 +0200)] 
tests: added Ed25519 key and certificate generation tests

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoAdded support for EdDSA (Ed25519) curve keys
Nikos Mavrogiannopoulos [Fri, 26 May 2017 13:20:38 +0000 (15:20 +0200)] 
Added support for EdDSA (Ed25519) curve keys

This adds support for draft-ietf-curdle-pkix-04.

Resolves #25

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoparse_pem_cert_mem: fixed issue resulting to accessing past the input data
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 16:52:33 +0000 (18:52 +0200)] 
parse_pem_cert_mem: fixed issue resulting to accessing past the input data

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agosupported_exts.h: make sure that the generated function is static
Nikos Mavrogiannopoulos [Sat, 15 Jul 2017 15:54:01 +0000 (17:54 +0200)] 
supported_exts.h: make sure that the generated function is static

That avoids compiler warnings due to missing prototype.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agotlsfuzzer: enabled chacha20 tests
Nikos Mavrogiannopoulos [Wed, 14 Jun 2017 13:12:11 +0000 (15:12 +0200)] 
tlsfuzzer: enabled chacha20 tests

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoupdated tlsfuzzer
Nikos Mavrogiannopoulos [Thu, 13 Jul 2017 12:50:55 +0000 (14:50 +0200)] 
updated tlsfuzzer

That fixes issue detecting connection termination from gnutls-serv
in chacha20 test.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: csr-invalid.der: modify the SPKI OID to use SECP384R1
Nikos Mavrogiannopoulos [Wed, 12 Jul 2017 13:54:38 +0000 (15:54 +0200)] 
tests: csr-invalid.der: modify the SPKI OID to use SECP384R1

That avoids false positives in error detection in 'crq' test due to
SECP224R1 not being supported in our CI platforms.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agox509/output: do not attempt to print the key ID on unknown SPKI algorithms
Nikos Mavrogiannopoulos [Wed, 12 Jul 2017 14:04:49 +0000 (16:04 +0200)] 
x509/output: do not attempt to print the key ID on unknown SPKI algorithms

On unknown algorithms, it is not always possible to parse the SPKI
field. Instead avoid printing errors.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years ago.gitlab-ci.yml: corrected location of artifacts in aarch64 build
Nikos Mavrogiannopoulos [Wed, 12 Jul 2017 13:24:23 +0000 (15:24 +0200)] 
.gitlab-ci.yml: corrected location of artifacts in aarch64 build

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: certtool-rsa-pss: use unique temp files
Nikos Mavrogiannopoulos [Wed, 12 Jul 2017 11:44:24 +0000 (13:44 +0200)] 
tests: certtool-rsa-pss: use unique temp files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Tue, 11 Jul 2017 08:28:16 +0000 (10:28 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years ago_gnutls_buffer_append_data_prefix: cleanup
Nikos Mavrogiannopoulos [Mon, 19 Jun 2017 13:18:20 +0000 (15:18 +0200)] 
_gnutls_buffer_append_data_prefix: cleanup

This eliminates a misleading code that assumed that the called functions
will return the appended size. Always return zero on success which is
what the existing callers assume.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years ago.gitlab-ci.yml: removed unnecessary options from minimal build
Nikos Mavrogiannopoulos [Tue, 11 Jul 2017 08:30:56 +0000 (10:30 +0200)] 
.gitlab-ci.yml: removed unnecessary options from minimal build

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agopubkey: print the failed signature algorithm when verification fails
Nikos Mavrogiannopoulos [Mon, 3 Jul 2017 07:52:21 +0000 (09:52 +0200)] 
pubkey: print the failed signature algorithm when verification fails

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-cli: added option to allow verification with broken algorithms
Nikos Mavrogiannopoulos [Mon, 3 Jul 2017 07:58:35 +0000 (09:58 +0200)] 
gnutls-cli: added option to allow verification with broken algorithms

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotls sessions will not fail of insecure algorithms which are explicitly enabled
Nikos Mavrogiannopoulos [Mon, 3 Jul 2017 08:06:22 +0000 (10:06 +0200)] 
tls sessions will not fail of insecure algorithms which are explicitly enabled

That is, if DSA-SHA1 is allowed, do not propagate errors from
gnutls_pubkey_verify_data2() due to SHA1 considered insecure, but rather
ignore such errors.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: mini-record-2: made more robust
Nikos Mavrogiannopoulos [Thu, 13 Jul 2017 12:37:00 +0000 (14:37 +0200)] 
tests: mini-record-2: made more robust

It will no longer close the session prior to peer processing
all messages. This prevents the peer stopping processing
prior to all messages being received.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: mini-record: made more robust
Nikos Mavrogiannopoulos [Thu, 13 Jul 2017 12:22:33 +0000 (14:22 +0200)] 
tests: mini-record: made more robust

It will no longer use a stream socket as this can does not work
well with damaged records (they may end up merged).

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agorecord: reject 0-byte long ciphertext
Nikos Mavrogiannopoulos [Thu, 13 Jul 2017 11:21:29 +0000 (13:21 +0200)] 
record: reject 0-byte long ciphertext

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agorecord: added sanity checking in the record layer version copy
Nikos Mavrogiannopoulos [Tue, 11 Jul 2017 08:18:56 +0000 (10:18 +0200)] 
record: added sanity checking in the record layer version copy

Previously we assumed that an active session had always a version
set, however there have been reports of evolution crashing in
that particular point. Although, this could have been due to
memory corruption, be careful and check for invalid input.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agorecord: more precise calculation of max recv size
Nikos Mavrogiannopoulos [Mon, 3 Jul 2017 09:51:20 +0000 (11:51 +0200)] 
record: more precise calculation of max recv size

Previously we were using a rough calculation of the max recv size
based on maximum values. Now we calculate the exact maximum value once
the epoch is initialized and enforce it throughout the session.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agodecryption: use the same error code on all cases
Nikos Mavrogiannopoulos [Wed, 14 Jun 2017 13:33:01 +0000 (15:33 +0200)] 
decryption: use the same error code on all cases

This eases testing using tlsfuzzer.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-serv: allow receiving requests up to 16kb
Nikos Mavrogiannopoulos [Mon, 3 Jul 2017 09:08:49 +0000 (11:08 +0200)] 
gnutls-serv: allow receiving requests up to 16kb

This makes gnutls-serv useful for few tlsfuzzer test cases.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agomax_record_recv_size: removed call to gnutls_compression_get()
Nikos Mavrogiannopoulos [Mon, 3 Jul 2017 09:19:44 +0000 (11:19 +0200)] 
max_record_recv_size: removed call to gnutls_compression_get()

We no longer support compression.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoPrint the requested CA names when in debug mode
Nikos Mavrogiannopoulos [Tue, 11 Jul 2017 07:10:39 +0000 (09:10 +0200)] 
Print the requested CA names when in debug mode

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-http-serv: do not set the obsolete PGP options
Nikos Mavrogiannopoulos [Tue, 27 Jun 2017 09:00:20 +0000 (11:00 +0200)] 
gnutls-http-serv: do not set the obsolete PGP options

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agodoc: updated documentation on client authentication [ci skip]
Nikos Mavrogiannopoulos [Tue, 11 Jul 2017 06:51:07 +0000 (08:51 +0200)] 
doc: updated documentation on client authentication [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agodoc: explicitly state intended usage of priorities on server-side
Nikos Mavrogiannopoulos [Mon, 10 Jul 2017 07:53:55 +0000 (09:53 +0200)] 
doc: explicitly state intended usage of priorities on server-side

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agodoc: use the default priorities in server example
Nikos Mavrogiannopoulos [Tue, 4 Jul 2017 07:26:57 +0000 (09:26 +0200)] 
doc: use the default priorities in server example

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Mon, 26 Jun 2017 12:04:37 +0000 (14:04 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agotests: added unit tests for gnutls_priority_set*()
Nikos Mavrogiannopoulos [Mon, 26 Jun 2017 08:26:03 +0000 (10:26 +0200)] 
tests: added unit tests for gnutls_priority_set*()

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoDocumented use gnutls_priority_set2().
Nikos Mavrogiannopoulos [Mon, 26 Jun 2017 08:18:33 +0000 (10:18 +0200)] 
Documented use gnutls_priority_set2().

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agopriorities: share priority structures across sessions
Nikos Mavrogiannopoulos [Mon, 26 Jun 2017 08:02:22 +0000 (10:02 +0200)] 
priorities: share priority structures across sessions

As the contents of the priority cache grows, it makes sense to shared
these structures across many sessions (in server side) rather than
copying them to a session. All overrides of the priority contents
were moved to session->internals. On client side where gnutls_priority_set_direct()
is more commonly used, ensure that the set priority is deinitialized.

That also introduces gnutls_priority_set2() which does not copy the priority
contents by default.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoset_client_ciphersuite: use the new internal APIs
Nikos Mavrogiannopoulos [Tue, 27 Jun 2017 09:19:37 +0000 (11:19 +0200)] 
set_client_ciphersuite: use the new internal APIs

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years ago.gitignore: ignore new tests
Nikos Mavrogiannopoulos [Sun, 25 Jun 2017 14:06:49 +0000 (16:06 +0200)] 
.gitignore: ignore new tests

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agotests: added unit testing for server/client cipher negotiation
Nikos Mavrogiannopoulos [Sun, 25 Jun 2017 13:32:52 +0000 (15:32 +0200)] 
tests: added unit testing for server/client cipher negotiation

This verifies that the expected algorithm (cipher) is negotiated.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agotests: added unit testing for server ciphersuite/KX negotiation
Nikos Mavrogiannopoulos [Sun, 25 Jun 2017 10:03:46 +0000 (12:03 +0200)] 
tests: added unit testing for server ciphersuite/KX negotiation

This verifies whether the ciphersuite negotiation will detect and
reject incompatible data present in credentials.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agodoc: corrected typo
Nikos Mavrogiannopoulos [Fri, 23 Jun 2017 12:00:52 +0000 (14:00 +0200)] 
doc: corrected typo

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoRenamed fields of sign_algorithm_st
Nikos Mavrogiannopoulos [Fri, 23 Jun 2017 11:32:09 +0000 (13:32 +0200)] 
Renamed fields of sign_algorithm_st

The new names better reflect the reality with signature algorithms
in TLS 1.3, and correct the initial naming error.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agohandshake: simplified signature algorithm list generation
Nikos Mavrogiannopoulos [Fri, 23 Jun 2017 11:24:48 +0000 (13:24 +0200)] 
handshake: simplified signature algorithm list generation

Similarly to ciphersuites, that also utilizes a cache of signature algorithms
on the priority structure which is used to quickly generate the signature
algorithm list.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoEliminated access to obsolete priority cache fields
Nikos Mavrogiannopoulos [Fri, 23 Jun 2017 09:55:23 +0000 (11:55 +0200)] 
Eliminated access to obsolete priority cache fields

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agohandshake: simplified the client-side ciphersuite negotiation
Nikos Mavrogiannopoulos [Fri, 23 Jun 2017 08:34:11 +0000 (10:34 +0200)] 
handshake: simplified the client-side ciphersuite negotiation

This takes advantage of the ciphersuite cache in priorities structure
while keeping the same ciphersuite selection checks in place.

The previous ciphersuite selection checks kept:
 * Removing SRP ciphersuites when no SRP credentials are set
 * Removing ciphersuites when no corresponding to KX credentials were set
 * SCSV addition in SSL 3.0 and fallback SCSV

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agohandshake: simplified the server-side ciphersuite negotiation
Nikos Mavrogiannopoulos [Wed, 21 Jun 2017 09:54:39 +0000 (11:54 +0200)] 
handshake: simplified the server-side ciphersuite negotiation

This eliminates all the back and forth loops in the previous code
while keeping the same ciphersuite selection checks in place.

The ciphersuite selection tests that were kept:
 * Check if key exchange supports the server public key and key usage flags
 * Check if DH or other parameters required for the ciphersuite are present
 * Find appropriate certificate for the credentials and ciphersuite
 * Check whether a curve is negotiated for the ECDH ciphersuites

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agopriority: include a cache of supported ciphersuites
Nikos Mavrogiannopoulos [Wed, 21 Jun 2017 08:25:32 +0000 (10:25 +0200)] 
priority: include a cache of supported ciphersuites

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoremoved unused cipher-suite and KX related functions
Nikos Mavrogiannopoulos [Wed, 21 Jun 2017 07:31:31 +0000 (09:31 +0200)] 
removed unused cipher-suite and KX related functions

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoalgorithm/kx: sorted key exchange algorithms based on current trends
Nikos Mavrogiannopoulos [Wed, 21 Jun 2017 07:17:57 +0000 (09:17 +0200)] 
algorithm/kx: sorted key exchange algorithms based on current trends

That optimizes linear search for the common options.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoRemoved unused functions
Nikos Mavrogiannopoulos [Fri, 23 Jun 2017 09:07:11 +0000 (11:07 +0200)] 
Removed unused functions

These were identified using callcatcher.
  http://www.skynet.ie/~caolan/Packages/callcatcher.html

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agofuzz: added make update command [ci skip]
Nikos Mavrogiannopoulos [Fri, 7 Jul 2017 13:43:25 +0000 (15:43 +0200)] 
fuzz: added make update command [ci skip]

This allows updating the fuzzer corpus from openssl using a single
command.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agofuzz: added corpora from openssl [ci skip]
Nikos Mavrogiannopoulos [Fri, 7 Jul 2017 13:11:13 +0000 (15:11 +0200)] 
fuzz: added corpora from openssl [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agofuzz: undid changes related to boringssl server/client corpus format [ci skip]
Nikos Mavrogiannopoulos [Fri, 7 Jul 2017 12:59:52 +0000 (14:59 +0200)] 
fuzz: undid changes related to boringssl server/client corpus format [ci skip]

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agofuzz: included verbatim corpus from boringssl
Nikos Mavrogiannopoulos [Fri, 7 Jul 2017 12:58:34 +0000 (14:58 +0200)] 
fuzz: included verbatim corpus from boringssl

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agofuzz: gnutls-client-fuzzer: read directly from memory [ci skip]
Nikos Mavrogiannopoulos [Fri, 7 Jul 2017 10:22:23 +0000 (12:22 +0200)] 
fuzz: gnutls-client-fuzzer: read directly from memory [ci skip]

Also updated to read the prefixed boringssl corpus files.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agofuzz: gnutls-server-fuzzer: read directly from memory [ci skip]
Nikos Mavrogiannopoulos [Fri, 7 Jul 2017 09:45:05 +0000 (11:45 +0200)] 
fuzz: gnutls-server-fuzzer: read directly from memory [ci skip]

Also updated to read the prefixed boring ssl corpus files.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agoupdated auto-generated files
Nikos Mavrogiannopoulos [Wed, 5 Jul 2017 18:14:54 +0000 (20:14 +0200)] 
updated auto-generated files

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agopriority_options.gperf: modified for gperf 3.1
Nikos Mavrogiannopoulos [Sat, 1 Jul 2017 16:00:45 +0000 (18:00 +0200)] 
priority_options.gperf: modified for gperf 3.1

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agotlsfuzzer: enabled ALPN tests
Nikos Mavrogiannopoulos [Tue, 4 Jul 2017 14:12:26 +0000 (16:12 +0200)] 
tlsfuzzer: enabled ALPN tests

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agoupdated tlsfuzzer
Nikos Mavrogiannopoulos [Wed, 5 Jul 2017 19:44:19 +0000 (21:44 +0200)] 
updated tlsfuzzer

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
9 years agoext/alpn: added stricter checks on field lengths
Nikos Mavrogiannopoulos [Tue, 4 Jul 2017 14:15:08 +0000 (16:15 +0200)] 
ext/alpn: added stricter checks on field lengths

That is, no longer tolerate empty fields, and error on invalid
lengths.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
9 years agognutls-serv: added the --alpn and --alpn-fatal options
Nikos Mavrogiannopoulos [Tue, 4 Jul 2017 13:35:25 +0000 (15:35 +0200)] 
gnutls-serv: added the --alpn and --alpn-fatal options

This allows specifying ALPN protocols supported by server, allowing
to test the ALPN negotiation.

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