summaryrefslogtreecommitdiffstats
path: root/test
AgeCommit message (Collapse)Author
2016-02-10x86[_64] assembly pack: add ChaCha20 and Poly1305 modules.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-10Simplify the specification of include dirs in the build dirRichard Levitte
In build.info files, make the include directory in the build directory absolute, or Configure will think it should be added to the source directory top. Configure will turn it into a relative path if possible. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-09GH645: Fix typo: ctificates -> certificatesQuanah Gibson-Mount
Reviewed-by: Kurt Roeckx <kurt@openssl.org> Signed-off-by: Rich Salz <rsalz@openssl.org>
2016-02-09Clean up the tests for auto-init/de-initMatt Caswell
Remove the need to explicitly initialise/deinitialise for the tests Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-09Auto init/deinit libcryptoMatt Caswell
This builds on the previous commit to auto initialise/deinitialise libcrypto. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-09Fix 90-test_networking.tRichard Levitte
The previous fix wasn't complete, it was missing a 'use OpenSSL::Test::Utils' Reviewed-by: Matt Caswell <matt@openssl.org>
2016-02-09Update 90-test-networking.t to do the same checks as other TLSProxy testsRichard Levitte
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-09unified build scheme: adjust test framework for out of source build treeRichard Levitte
To be able to run tests when we've built in a directory other than the source tree, the testing framework needs a few adjustments. test/testlib/OpenSSL/Test.pm needs to know where it can find shlib_wrap.sh, and a number of other tests need to be told a different place to find engines than what they may be able to figure out on their own. Relying to $TOP is not enough, $SRCTOP and $BLDTOP can be used as an alternative. As part of this change, top_file and top_dir are removed and srctop_file, bldtop_file, srctop_dir and bldtop_dir take their place. Reviewed-by: Ben Laurie <ben@openssl.org>
2016-02-08Suppress DANE TLSA reflection when verification failsViktor Dukhovni
As documented both SSL_get0_dane_authority() and SSL_get0_dane_tlsa() are expected to return a negative match depth and nothing else when verification fails. However, this only happened when verification failed during chain construction. Errors in verification of the constructed chain did not have the intended effect on these functions. This commit updates the functions to check for verify_result == X509_V_OK, and no longer erases any accumulated match information when chain construction fails. Sophisticated developers can, with care, use SSL_set_verify_result(ssl, X509_V_OK) to "peek" at TLSA info even when verification fail. They must of course first check and save the real error, and restore the original error as quickly as possible. Hiding by default seems to be the safer interface. Introduced X509_V_ERR_DANE_NO_MATCH code to signal failure to find matching TLSA records. Previously reported via X509_V_ERR_CERT_UNTRUSTED. This also changes the "-brief" output from s_client to include verification results and TLSA match information. Mentioned session resumption in code example in SSL_CTX_dane_enable(3). Also mentioned that depths returned are relative to the verified chain which is now available via SSL_get0_verified_chain(3). Added a few more test-cases to danetest, that exercise the new code. Resolved thread safety issue in use of static buffer in X509_verify_cert_error_string(). Fixed long-stating issue in apps/s_cb.c which always sets verify_error to either X509_V_OK or "chain to long", code elsewhere (e.g. s_time.c), seems to expect the actual error. [ The new chain construction code is expected to correctly generate "chain too long" errors, so at some point we need to drop the work-arounds, once SSL_set_verify_depth() is also fixed to propagate the depth to X509_STORE_CTX reliably. ] Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-08Use File::Path::rmtree rather than File::Path::remove_treeRichard Levitte
Just like File::Path::make_path, File::Path::remove_tree didn't show up before File::Path 2.06 / perl v5.10.1, so we prefer the legacy function here as well. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-08dtlsv1listentest includes e_os.h, reflect that in include dirsRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org>
2016-02-06Fix memory leak in dtlsv1listentestKurt Roeckx
Reviewed-by: Rich Salz <rsalz@openssl.org> MR: #1879
2016-02-06Allocate bio_err before turning on memleak checksViktor Dukhovni
Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-02-06Enhance and clear the support of linker flagsRichard Levitte
Some time ago, we had a ex_libs configuration setting that could be divided into lflags and ex_libs. These got divided in two settings, lflags and ex_libs, and the former was interpreted to be general linking flags. Unfortunately, that conclusion wasn't entirely accurate. Most of those linking were meant to end up in a very precise position on the linking command line, just before the spec of libraries the linking depends on. Back to the drawing board, we're diving things further, now having lflags, which are linking flags that aren't depending on command line position, plib_lflags, which are linking flags that should show up just before the spec of libraries to depend on, and finally ex_libs, which is the spec of extra libraries to depend on. Also, documentation is changed in Configurations/README. This was previously forgotten. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-06GH587: Extend ECDH tests to more curves. Add more ECDH KATs.Billy Brumley
squelch sign-compare warning Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-06Add build.info lines for dtlsv1listentestRichard Levitte
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-06Don't include sys/socket.hKurt Roeckx
It's not available on all OSs, e_os.h already does the right thing Reviewed-by: Richard Levitte <levitte@openssl.org> MR: #1870
2016-02-05Add missing static declarations in dtlsv1listentest.cViktor Dukhovni
Clang rightly does not like extern symbols that are not declared in any header file, as typically these are not intended for global visibility and are exposed in error. This was indeed the case with various file-scope objects in dtlsv1listentest.c. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-05Add tests for DTLSv1_listenMatt Caswell
Adds a set of tests for the newly rewritten DTLSv1_listen function. The test pokes various packets at the function and then checks the return value and the data written out to ensure it is what we would have expected. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-02-05enable leak checking for danetestDr. Stephen Henson
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-05If memory debugging enabled return error on leaks.Dr. Stephen Henson
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-05Initialise with -1 rather than 1Richard Levitte
A small typo crept in. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-04Add checks for IPv4 and IPv6 in OpenSSL::Test::Utils and use themRichard Levitte
This uilds on the same way of checking for availability as we do in TLSProxy. We use all IP factories we know of, starting with those who know both IPv6 and IPv4 and ending with the one that only knows IPv4 and cache their possible success as foundation for checking the available of each IP domain. 80-test_ssl.t has bigger chances of working on platforms that do not run both IP domains. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-04RT3095: allow NULL key for single-shot HMACEmilia Kasper
In HMAC_Init_ex, NULL key signals reuse, but in single-shot HMAC, we can allow it to signal an empty key for convenience. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-02-04Only use TLS1.2 when it's availableRichard Levitte
Reviewed-by: Ben Laurie <ben@openssl.org>
2016-02-04Have 70-test_clienthello.t be selective on when it can be runRichard Levitte
The test program clienthello checks TLS extensions, so there's no point running it when no TLS protocol is available. Reviewed-by: Ben Laurie <ben@openssl.org>
2016-02-04Have OpenSSL::Test::Utils::available_protocols load configdata as wellRichard Levitte
Otherwise, it could typically always return an empty list, since it's often called first if at all. Reviewed-by: Ben Laurie <ben@openssl.org>
2016-02-03Use BIO_snprintf() rather than snprintf()Richard Levitte
Some platforms do not have the latter. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-02-03Refactoring BIO: add a simple networking test of s_client and s_serverRichard Levitte
This makes use of TLSProxy, which was expanded to use IO::Socket::IP (which is a core perl module) or IO::Socket::INET6 (which is said to be more popular) instead IO::Socket::INET if one of them is installed. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-02-03Refactoring BIO: add a test, using test/ssltestRichard Levitte
This adds a couple of simple tests to see that SSL traffic using the reimplemented BIO_s_accept() and BIO_s_connect() works as expected, both on IPv4 and on IPv6. Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2016-02-01constify PACKETEmilia Kasper
PACKET contents should be read-only. To achieve this, also - constify two user callbacks - constify BUF_reverse. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-01Use PKCS#8 format EC key so test is skipped with no-ecDr. Stephen Henson
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-02-01unified build scheme: add build.info filesRichard Levitte
Now that we have the foundation for the "unified" build scheme in place, we add build.info files. They have been generated from the Makefiles in the same directories. Things that are platform specific will appear in later commits. Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-31Add tests for non-ca trusted roots and intermediatesViktor Dukhovni
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
2016-01-31Compat self-signed trust with reject-only aux dataViktor Dukhovni
When auxiliary data contains only reject entries, continue to trust self-signed objects just as when no auxiliary data is present. This makes it possible to reject specific uses without changing what's accepted (and thus overring the underlying EKU). Added new supported certs and doubled test count from 38 to 76. Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
2016-01-31Check chain extensions also for trusted certificatesViktor Dukhovni
This includes basic constraints, key usages, issuer EKUs and auxiliary trust OIDs (given a trust suitably related to the intended purpose). Added tests and updated documentation. Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
2016-01-30Move more BN internals to bn_lcl.hRich Salz
There was an unused macro in ssl_locl.h that used an internal type, so I removed it. Move bio_st from bio.h to ossl_type.h Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-01-30When checking if there's a VMS directory spec, don't forget the possible deviceRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-30Fix test/recipes/25-test_verify.tRichard Levitte
top_dir() are used to create directory names, top_file() should be used for files. In a Unixly environment, that doesn't matter, but... Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-30handle "Ctrl" in separate functionDr. Stephen Henson
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-30Add test data for ECDHDr. Stephen Henson
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-30Add support for EVP_PKEY_derive in evp_testDr. Stephen Henson
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-30fix warningDr. Stephen Henson
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-29Templatize util/domdRich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-29Configure et al: split up the lflags configuration item into twoRichard Levitte
The lflags configuration had a weird syntax with a % as separator. If it was present, whatever came before ended up as PEX_LIBS in Makefile (usually, this is LDFLAGS), while whatever came after ended up as EX_LIBS. This change splits that item into lflags and ex_libs, making their use more explicit. Also, PEX_LIBS in all the Makefiles are renamed to LDFLAGS. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-29Add have_precompute_mult testsMatt Caswell
Add tests for have_precompute_mult for the optimised curves (nistp224, nistp256 and nistp521) if present Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-28Add a test for small subgroup attacks on DH/DHEMatt Caswell
Following on from the previous commit, add a test to ensure that DH_compute_key correctly fails if passed a bad y such that: y^q (mod p) != 1 Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-01-27Test all built-in curves and let the library choose the EC_METHODBilly Brumley
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-01-27Skip all explicitely if the number of tests is 0Richard Levitte
It seems that Test::More doesn't like 0 tests, a line like this raises an error and stops the recipe entirely: plan tests => 0; So we need to check for 0 tests beforehand and skip the subtest explicitely in that case. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-01-27Be careful when applying EXE_SHELLRichard Levitte
$EXE_SHELL should only be used with out own programs, not with surrounding programs such as the perl interpreter. Reviewed-by: Matt Caswell <matt@openssl.org>