summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* updated auto-generated filestmp-tlsfuzzer-updatesNikos Mavrogiannopoulos2017-08-032-329/+395
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* fuzz: added SRP server and client fuzzersNikos Mavrogiannopoulos2017-08-0310-1/+339
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* fuzz: introduced psk.h common headerNikos Mavrogiannopoulos2017-08-033-7/+40
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* fuzz: added PSK server fuzzerNikos Mavrogiannopoulos2017-08-038-229/+427
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* fuzz: added PSK client fuzzerNikos Mavrogiannopoulos2017-08-036-2/+129
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* gnutls-cli: introduced options to save client and server tracesNikos Mavrogiannopoulos2017-08-034-7/+90
| | | | | | This allows to easier obtain traces for use in fuzzers. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* fuzz: ported libidn2's main.c taking advantage of afl-clang-fastNikos Mavrogiannopoulos2017-08-032-22/+51
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* gnutls_system_recv_timeout: doc updateNikos Mavrogiannopoulos2017-08-031-1/+1
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* tlsfuzzer: enabled EC tests for x25519tmp-def-ec-after-rfc7919Nikos Mavrogiannopoulos2017-08-021-0/+9
| | | | | | That includes tests for default curve. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* tlsfuzzer: enabled test for ECDHE without the supported groups/EC extensionNikos Mavrogiannopoulos2017-08-022-3/+1
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* Set a default supported curveNikos Mavrogiannopoulos2017-08-022-4/+16
| | | | | | | | | | | | | RFC4492 and draft-ietf-tls-rfc4492bis-17 mention: "A client that proposes ECC cipher suites may choose not to include these extensions. In this case, the server is free to choose any one of the elliptic curves or point formats listed in Section 5." As such, we set a default curve to be used in the case the server encounters a handshake with no supported groups/curves extension. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tlsfuzzer: removed duplicate teststmp-rfc7919-after-eddsaNikos Mavrogiannopoulos2017-08-021-3/+0
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tlsfuzzer: fixed comment fieldsNikos Mavrogiannopoulos2017-08-021-3/+3
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* doc updateNikos Mavrogiannopoulos2017-08-021-2/+6
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
* updated auto-generated filesNikos Mavrogiannopoulos2017-08-023-0/+21
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* gnutls-cli: use FFDHE3072 parameters for benchmarkingNikos Mavrogiannopoulos2017-08-021-54/+2
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* _gnutls_figure_dh_params: do not use have_ffdhe flagNikos Mavrogiannopoulos2017-08-022-3/+8
| | | | | | | This flag is intended to indicate whether the peer has advertized at least one FFDHE group, and not whether we have negotiated FFDHE. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: added unit test for group listings in priority structureNikos Mavrogiannopoulos2017-08-022-1/+116
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: updated cipher-listings.sh for the new groups listingNikos Mavrogiannopoulos2017-08-021-1/+1
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* doc: documented the use of RFC7919 and groupsNikos Mavrogiannopoulos2017-08-021-19/+24
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tlsfuzzer: enabled RFC7919 FFDHE testsNikos Mavrogiannopoulos2017-08-023-0/+11
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: enhanced server key exchange tests with explicit DH param settingNikos Mavrogiannopoulos2017-08-022-4/+59
| | | | | | | That is, not only check the DH parameter setting using the known_dh_params() functions, but also with the explicit setting --set_server_dh_params(). Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: updated for post-RFC7919 behavior of libraryNikos Mavrogiannopoulos2017-08-024-28/+28
| | | | | | | | That is, it is no longer necessary to set DH parameters on a credentials structure, and thus previously expected to fail connections may succeed even without DH parameters. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: added RFC7919 FFDHE unit testsNikos Mavrogiannopoulos2017-08-022-1/+355
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* cli,serv: do not print any information on compressionNikos Mavrogiannopoulos2017-08-021-9/+0
| | | | | | Compression is always NULL. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* cli,serv: no longer print parameters when FFDHE groups are usedNikos Mavrogiannopoulos2017-08-021-0/+7
| | | | | | | | The negotiated RFC7919 group is now printed as part of the Description string, and there is no reason to print more information on parameters defined by the protocol. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* gnutls-cli: print the supported groups instead of curvesNikos Mavrogiannopoulos2017-08-021-7/+7
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* gnutls_priority_ecc_curve_list: avoid including groups into elliptic curves listNikos Mavrogiannopoulos2017-08-021-0/+13
| | | | | | | | | | | | This provides a mostly-compatible behavior of gnutls_priority_ecc_curve_list() in order to avoid keeping additional information for elliptic curves in the priority cache. This approach will always return the supported curves, if the set groups are prioritized with the elliptic curve variants set first. This is the default in the built-in priorities, and to most common setups. Items which are non-valid curves will not be returned. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* handshake: moved group negotiation after ciphersuite selectionNikos Mavrogiannopoulos2017-08-024-33/+48
| | | | | | | This allows to cope with situations where the peer prioritizes a supported group which doesn't map to a supported ciphersuite. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* security_parameters: ease access to group information by keeping pointer to itNikos Mavrogiannopoulos2017-08-0213-51/+54
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* security_parameters: simplified contents by keeping pointer to ↵Nikos Mavrogiannopoulos2017-08-0213-114/+54
| | | | | | | | | cipher_suite_entry_st That, in addition to simplifying the contents, it allows faster access to ciphersuite's properties. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* TLS: introduced support for RFC7919 groupsNikos Mavrogiannopoulos2017-08-0135-590/+943
| | | | | | | | | | | That replaces the EC curve extension negotiation with the negotiated groups extensions, introduces handling for groups as priority strings, as well as using and checking of RFC7919 DH parameters once negotiated. Resolves: #37 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* updated auto-generated filesNikos Mavrogiannopoulos2017-07-253-4/+0
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* gnutls-cli: use gnutls_priority_setNikos Mavrogiannopoulos2017-07-251-2/+2
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: modified gnutls_priority_set2() tests for gnutls_priority_set()Nikos Mavrogiannopoulos2017-07-252-2/+11
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* gnutls_priority_set: use reference countingNikos Mavrogiannopoulos2017-07-255-55/+29
| | | | | | | That eliminates the need for gnutls_priority_set2() which is now removed. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* Introduced atomic.h to simplify handling of atomic integersNikos Mavrogiannopoulos2017-07-252-1/+82
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* Revert "Documented use gnutls_priority_set2()."Nikos Mavrogiannopoulos2017-07-258-14/+6
| | | | This reverts commit b4aed16ee30f76211c13b075149bb87c012f9bf6.
* tlsfuzzer: enabled test-ecdsa-sig-flexibility.pyNikos Mavrogiannopoulos2017-07-242-0/+3
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* updated auto-generated filestmp-sha1-deprecationNikos Mavrogiannopoulos2017-07-213-0/+4
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* doc updateNikos Mavrogiannopoulos2017-07-211-2/+6
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* algorithms/mac: marked RIPEMD160 as insecure for certificatesNikos Mavrogiannopoulos2017-07-211-0/+1
| | | | | | | | | This is an algorithm which is not really used in Internet PKI and due to that has seen no public cryptanalysis. As such we disable it for certificate verification to prevent it from being used as an attack vector. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: partially reverted SHA1 broken testsNikos Mavrogiannopoulos2017-07-212-15/+6
| | | | | | | | SHA1 is now considered broken only for certificates, hence OCSP or raw signing tests no longer need to use GNUTLS_VERIFY_ALLOW_BROKEN in the cases where certificate verification is not performed. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* x509/verify: reject SHA1 in signature algorithms for certificate verificationNikos Mavrogiannopoulos2017-07-212-4/+4
| | | | | | | | | | That is, we now use gnutls_sign_is_secure2() with GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS flag for checking the validity of the signature algorithm, when verifying signatures in certificates. Resolves #229 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: added unit tests for gnutls_sign_is_secure2()Nikos Mavrogiannopoulos2017-07-212-1/+95
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* gnutls_sign_is_secure2: introducedNikos Mavrogiannopoulos2017-07-213-4/+28
| | | | | | | | | | | This function exports the ability to check the validity of a signature algorithm for signing certificates. That also introduces the flag GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS which when specified will cause the function to return whether the algorithm is secure for signing certificates. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* _gnutls_digest_is_secure_for_certs: introducedNikos Mavrogiannopoulos2017-07-214-28/+37
| | | | | | | This is a macro to allow checking the security of a hash algorithm with respect to signing certificates. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* mac: re-organized the hash algorithms tableNikos Mavrogiannopoulos2017-07-211-28/+109
| | | | Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* tests: added reproducer with ed25519 private keyNikos Mavrogiannopoulos2017-07-213-1/+3
| | | | | | | Found with oss-fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2689 Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
* Ensure that public key parameters are initialized on importNikos Mavrogiannopoulos2017-07-213-1/+12
| | | | | | | | Previously we depended on initialization during the _init() call, however, there can be cases where this re-initialization is needed (e.g., on multiple tries to load a key). Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>