oweals/openssl.git
9 years agoRemove test targets from Makefile, have it use run_tests.pl
Richard Levitte [Sun, 19 Apr 2015 21:49:30 +0000 (23:49 +0200)]
Remove test targets from Makefile, have it use run_tests.pl

Also remove recipes/00-check_testalltests.t, since it will lack the
information from the now gone alltests target.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoIgnore the log files
Richard Levitte [Sun, 19 Apr 2015 20:29:46 +0000 (22:29 +0200)]
Ignore the log files

The new test framework produces a lot of log files (one for each
test).  Git doesn't need to know.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd recipes for misc other things we want to test
Richard Levitte [Sun, 19 Apr 2015 20:26:12 +0000 (22:26 +0200)]
Add recipes for misc other things we want to test

Note that this required a change in constant_time_test.c, as it says
"ok", which interferes with what Test::Harness expects to see.  I had
constant_time_test.c say "success" instead.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd recipes for the larger protocols
Richard Levitte [Sun, 19 Apr 2015 20:24:17 +0000 (22:24 +0200)]
Add recipes for the larger protocols

This covers the certificate authority commands, the cms and smime
commands, OCSP, SSL and TSA.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd engine and evp test recipes.
Richard Levitte [Fri, 17 Apr 2015 18:16:13 +0000 (20:16 +0200)]
Add engine and evp test recipes.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd recipes for tests related to certificates
Richard Levitte [Fri, 17 Apr 2015 18:15:22 +0000 (20:15 +0200)]
Add recipes for tests related to certificates

Some of them make use of recipes/tconversion.pl.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd asymetric cipher test recipes
Richard Levitte [Fri, 17 Apr 2015 18:13:58 +0000 (20:13 +0200)]
Add asymetric cipher test recipes

Some of them make use of recipes/tconversion.pl.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd a helper script for key file format conversion tests
Richard Levitte [Fri, 17 Apr 2015 18:10:24 +0000 (20:10 +0200)]
Add a helper script for key file format conversion tests

As tests are done until now, there are a few scripts that look almost,
but not quite the same.  tkey, tx509, tcrl, tpkcs7, treq, tsid and
probably a few more.

recipes/tconversions.pl is a helper script that generalises the
function of each of those, and can then be used in a general manner
from test recipes.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd the encryption test recipe
Richard Levitte [Fri, 17 Apr 2015 18:07:13 +0000 (20:07 +0200)]
Add the encryption test recipe

This tests all available openssl cipher commands.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd recipes for individual block ciphers, stream ciphers and digests
Richard Levitte [Fri, 17 Apr 2015 18:04:19 +0000 (20:04 +0200)]
Add recipes for individual block ciphers, stream ciphers and digests

These recipes all correspond to a compiled test program.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd math tests recipes
Richard Levitte [Fri, 17 Apr 2015 17:57:55 +0000 (19:57 +0200)]
Add math tests recipes

The math recipes are among the heavier, but also quite important.
For the BN test, we have previously relied on bc to verify the numbers.
Unfortunately, bc doesn't exist everywhere, making tests on some platforms
rather painful.  With the new recipe (recipes/10-test_bn.t), we rely
on perl's Math::BigInt and a homegrown simple calculator (recipes/bc.pl)
that can do enough to cover for bc.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoGroundwork for a perl based testing framework
Richard Levitte [Fri, 17 Apr 2015 17:44:48 +0000 (19:44 +0200)]
Groundwork for a perl based testing framework

The idea with this perl based testing framework is to make use of
what's delivered with perl and exists on all sorts of platforms.

The choice came to using Test::More and Test::Harness, as that seems
to be the most widely spread foundation, even if perl is aged.

The main runner of the show is run_tests.pl.  As it currently stands,
it's designed to run from inside Makefile, but it's absolutely
possible to run it from the command line as well, like so:

cd test
OPENSSL_SRCDIR=.. perl run_tests.pl

The tester scripts themselves are stored in the subdirectory recipes/,
and initially, we have two such scripts, recipes/00-check_testalltests.t
and recipes/00-check_testexes.t.  recipes/00-check_testalltests.t will
pick out the dependencies of "alltests" in test/Makefile, and check if
it can find recipes with corresponding names.  recipes/00-check_testexes.t
does something similar, but bases it on existing compiled test binaries.
They make it easy to figure out what's to be added, and will be
removed when this effort is finished.

Individual recipes can be run as well, of course, as they are perl
scripts in themselves.  For example, you can run only
recipes/00-check_testexes.t like so:

cd test
OPENSSL_SRCDIR=.. perl recipes/00-check_testexes.t

To make coding easier, there's a routine library OpenSSL::Test, which
is reachable in a perl script like so:

use lib 'testlib';
use OpenSSL::Test;

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoPACKETise ServerKeyExchange
Matt Caswell [Tue, 4 Aug 2015 20:22:31 +0000 (21:22 +0100)]
PACKETise ServerKeyExchange

Process the ServerKeyExchange message using the PACKET API

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoPACKETise ServerHello processing
Matt Caswell [Tue, 4 Aug 2015 16:36:02 +0000 (17:36 +0100)]
PACKETise ServerHello processing

Process ServerHello messages using the PACKET API

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoUpdates for NumericString support
Matt Caswell [Wed, 26 Aug 2015 12:49:49 +0000 (13:49 +0100)]
Updates for NumericString support

Ensure that EBCDIC support works and update a comment.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd NumericString support
Dmitry Belyavsky [Wed, 26 Aug 2015 12:34:31 +0000 (13:34 +0100)]
Add NumericString support

GOST requires improved NumericString support.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFix build break due to rehash command
Matt Caswell [Mon, 7 Sep 2015 09:08:38 +0000 (10:08 +0100)]
Fix build break due to rehash command

The build was breaking due to a Makefile recipe expecting an openssl
version to be on the PATH with support for the rehash command.

Reviewed-by: Ben Laurie <ben@openssl.org>
9 years agofix build breakage on windows
Rich Salz [Mon, 7 Sep 2015 01:39:26 +0000 (21:39 -0400)]
fix build breakage on windows

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFix typo, that broke build on non-unix
Rich Salz [Sun, 6 Sep 2015 23:01:24 +0000 (19:01 -0400)]
Fix typo, that broke build on non-unix

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd rehash command to openssl
Timo Teras [Thu, 7 May 2015 16:48:47 +0000 (12:48 -0400)]
Add rehash command to openssl

On Unix/Linux platforms, merge c_rehash script into openssl as a
C program.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoSmall fix: make istext static
Richard Levitte [Sun, 6 Sep 2015 20:43:25 +0000 (22:43 +0200)]
Small fix: make istext static

This takes away a build failure in some cases.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFix enc so it properly treats BASE64 as text
Richard Levitte [Sun, 6 Sep 2015 15:12:39 +0000 (17:12 +0200)]
Fix enc so it properly treats BASE64 as text

To set both the incoming and outgoing data when 'encrypting' or
'decrypting' to FORMAT_BASE64 wasn't quite the right thing to do.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFixup merge conflicts in util/libeay.num
Richard Levitte [Sun, 6 Sep 2015 12:13:00 +0000 (14:13 +0200)]
Fixup merge conflicts in util/libeay.num

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoChange the treatment of stdin and stdout to allow binary data
Richard Levitte [Sun, 6 Sep 2015 10:20:12 +0000 (12:20 +0200)]
Change the treatment of stdin and stdout to allow binary data

If the output to stdout or the input from stdin is meant to be binary,
it's deeply unsetting to get the occasional LF converted to CRLF or
the other way around.  If someone happens to forget to redirect stdin
or stdout, they will get gibberish anyway, line ending conversion will
not change that.

Therefore, let's not have dup_bio_* decide unilaterally what mode the
BIO derived from stdin and stdout, and rather let the app decide by
declaring the intended format.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agodup_bio_* and bio_open_* are utility functions and belong in apps.c
Richard Levitte [Sun, 6 Sep 2015 08:51:04 +0000 (10:51 +0200)]
dup_bio_* and bio_open_* are utility functions and belong in apps.c

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove warning about use of uninitialised variable
Richard Levitte [Sun, 6 Sep 2015 10:56:33 +0000 (12:56 +0200)]
Remove warning about use of uninitialised variable

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoHave binary mode when the format is binary, not the other way around
Richard Levitte [Fri, 4 Sep 2015 13:17:29 +0000 (15:17 +0200)]
Have binary mode when the format is binary, not the other way around

Fixing a small mixup.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoHave the test executables output in text mode
Richard Levitte [Fri, 4 Sep 2015 12:07:57 +0000 (14:07 +0200)]
Have the test executables output in text mode

The test executables use standard output and standard error for text output,
so let's open the corresponding BIOs in text mode.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoChange the way apps open their input and output files
Richard Levitte [Fri, 4 Sep 2015 10:49:06 +0000 (12:49 +0200)]
Change the way apps open their input and output files

The different apps had the liberty to decide whether they would open their
input and output files in binary mode or not, which could be confusing if
two different apps were handling the same type of file in different ways.

The solution is to centralise the decision of low level file organisation,
and that the apps would use a selection of formats to state the intent of
the file.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoMake the handling of output and input formats consistent
Richard Levitte [Fri, 4 Sep 2015 00:46:47 +0000 (02:46 +0200)]
Make the handling of output and input formats consistent

Most of all, we needed to sort out which ones are binary and which
ones are text, and make sure they are treated accordingly and
consistently so

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoMake the verify_extra test location agnostic
Richard Levitte [Fri, 4 Sep 2015 15:04:33 +0000 (17:04 +0200)]
Make the verify_extra test location agnostic

Depending on platform, verify_extra_test may fail because it relies on
test/ being the current working directory.  Make it get all the required
files on the command line instead to solve that issue.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agomake update
Dr. Stephen Henson [Thu, 3 Sep 2015 17:40:19 +0000 (18:40 +0100)]
make update

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAvoid direct X509 structure access
Dr. Stephen Henson [Wed, 2 Sep 2015 21:01:18 +0000 (22:01 +0100)]
Avoid direct X509 structure access

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoReplace X509 macros with functions
Dr. Stephen Henson [Wed, 2 Sep 2015 20:46:39 +0000 (21:46 +0100)]
Replace X509 macros with functions

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoCleanup testtsa script
Rich Salz [Wed, 10 Jun 2015 22:53:31 +0000 (18:53 -0400)]
Cleanup testtsa script

Add RUN function; remove single-use functions and use their body inline.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoMake TS structures opaque.
Rich Salz [Wed, 10 Jun 2015 18:07:40 +0000 (14:07 -0400)]
Make TS structures opaque.

Most of the accessors existed and were already used so it was easy.
TS_VERIFY_CTX didn't have accessors/settors so I added the simple and
obvious ones, and changed the app to use them.  Also, within crypto/ts,
replaced the functions with direct access to the structure members
since we generally aren't opaque within a directory.

Also fix RT3901.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRT3955: Reduce some stack usage
Rich Salz [Fri, 4 Sep 2015 12:13:19 +0000 (08:13 -0400)]
RT3955: Reduce some stack usage

Use malloc/free instead of big onstack buffers.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoIn X509_STORE_CTX_init, cleanup on failure
mrpre [Sat, 29 Aug 2015 02:26:39 +0000 (10:26 +0800)]
In X509_STORE_CTX_init, cleanup on failure

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRT3951: Add X509_V_FLAG_NO_CHECK_TIME to suppress time check
David Woodhouse [Fri, 31 Jul 2015 07:49:50 +0000 (08:49 +0100)]
RT3951: Add X509_V_FLAG_NO_CHECK_TIME to suppress time check

In some environments, such as firmware, the current system time is entirely
meaningless. Provide a clean mechanism to suppress the checks against it.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoUse the shlib wrapper when running nptest
Alessandro Ghedini [Sat, 5 Sep 2015 11:06:51 +0000 (13:06 +0200)]
Use the shlib wrapper when running nptest

Since there seems to be no way to avoid linking to libssl and libcrypto,
just wrap the test. This unbreaks "shared" builds when using clang and/or
OS X.

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Ben Laurie <ben@openssl.org>
9 years agomake X509_REVOKED opaque
Dr. Stephen Henson [Sat, 5 Sep 2015 11:28:54 +0000 (12:28 +0100)]
make X509_REVOKED opaque

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoSupply a build rule for the recently added nptest
Benjamin Kaduk [Fri, 4 Sep 2015 23:50:24 +0000 (18:50 -0500)]
Supply a build rule for the recently added nptest

Commit d4ab70f27cb7e518e6a9d6323c996cc3feb7496b added a test program
to check that the NULL pointer is represented as all zero bits, but
did not specify a build rule for that new executable.  On many platforms,
the implicit rule sufficed, since nptest is a very simple program, but
for at least darwin-i386-cc, an explicit rule is needed.  On darwin-i386-cc,
the implicit rule targetted a 64-bit executable, but the object file
containing the definition of main was a 32-bit object, which the linker
excluded from consideration, resulting in a link failure due to no
definition for _main.

Add the missing build rule to fix the build on such platforms.

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
9 years agoMatch SUITEB strings at start of cipher list.
Dr. Stephen Henson [Thu, 3 Sep 2015 23:20:34 +0000 (00:20 +0100)]
Match SUITEB strings at start of cipher list.

PR#4009.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoTest for NULL ptr == 0
Rich Salz [Thu, 3 Sep 2015 20:56:28 +0000 (16:56 -0400)]
Test for NULL ptr == 0

Add a test to ensure that "char *p = NULL" is equivalent to
all-bytes-zero.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRT3998: Allow scrypt to be disabled
Rich Salz [Fri, 4 Sep 2015 17:07:10 +0000 (13:07 -0400)]
RT3998: Allow scrypt to be disabled

This does 64-bit division and multiplication, and on 32-bit platforms
pulls in libgcc symbols (and MSVC does similar) which may not be
available.  Mostly done by David Woodhouse.

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
9 years agoMore zalloc nits
Rich Salz [Fri, 4 Sep 2015 12:13:19 +0000 (08:13 -0400)]
More zalloc nits

Found on GitHub by dimman

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRevert "OPENSSL_NO_xxx cleanup: RFC3779"
David Woodhouse [Thu, 23 Jul 2015 16:30:06 +0000 (17:30 +0100)]
Revert "OPENSSL_NO_xxx cleanup: RFC3779"

This reverts the non-cleanup parts of commit c73ad69017. We do actually
have a reasonable use case for OPENSSL_NO_RFC3779 in the EDK2 UEFI
build, since we don't have a strspn() function in our runtime environment
and we don't want the RFC3779 functionality anyway.

In addition, it changes the default behaviour of the Configure script so
that RFC3779 support isn't disabled by default. It was always disabled
from when it was first added in 2006, right up until the point where
OPENSSL_NO_RFC3779 was turned into a no-op, and the code in the
Configure script was left *trying* to disable it, but not actually
working.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove 0 assignments.
Rich Salz [Thu, 3 Sep 2015 13:15:26 +0000 (09:15 -0400)]
remove 0 assignments.

After openssl_zalloc, cleanup more "set to 0/NULL" assignments.
Many are from github feedback.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd UEFI flag for rand build
Long, Qin [Wed, 22 Jul 2015 09:04:18 +0000 (10:04 +0100)]
Add UEFI flag for rand build

Add OPENSSL_SYS_UEFI flag for RAND handling;

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoWin32 build fix: include internal/numbers.h to get UIN32_MAX
Richard Levitte [Thu, 3 Sep 2015 12:03:54 +0000 (14:03 +0200)]
Win32 build fix: include internal/numbers.h to get UIN32_MAX

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoRT3674: Make no-cms build work.
David Bar [Mon, 3 Aug 2015 16:45:26 +0000 (12:45 -0400)]
RT3674: Make no-cms build work.

Also has changes from from David Woodhouse <David.Woodhouse@intel.com>
and some tweaks from me.

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agomake update
Dr. Stephen Henson [Thu, 3 Sep 2015 15:25:03 +0000 (16:25 +0100)]
make update

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoPBE lookup test
Dr. Stephen Henson [Thu, 3 Sep 2015 14:46:43 +0000 (15:46 +0100)]
PBE lookup test

Add test to check PBE lookups: these can fail if the PBE table is not
correctly orders. Add to "make test".

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoAdd initial Travis CI configuration
Alessandro Ghedini [Wed, 19 Aug 2015 22:12:29 +0000 (00:12 +0200)]
Add initial Travis CI configuration

Closes #63

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Ben Laurie <ben@openssl.org>
9 years agoTwo changes at ones lead to a confused libeay.num. Fix
Richard Levitte [Thu, 3 Sep 2015 08:16:59 +0000 (10:16 +0200)]
Two changes at ones lead to a confused libeay.num.  Fix

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoCheck OPENSSL_gmtime_diff
Rich Salz [Wed, 26 Aug 2015 20:22:10 +0000 (16:22 -0400)]
Check OPENSSL_gmtime_diff

It's test code that only runs on 64bit time_t machines.
Move it to a standalone test/gmdifftest

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoAdd and use OPENSSL_zalloc
Rich Salz [Tue, 25 Aug 2015 17:25:58 +0000 (13:25 -0400)]
Add and use OPENSSL_zalloc

There are many places (nearly 50) where we malloc and then memset.
Add an OPENSSL_zalloc routine to encapsulate that.
(Missed one conversion; thanks Richard)
Also fixes GH328

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agomake update
Dr. Stephen Henson [Mon, 31 Aug 2015 22:48:44 +0000 (23:48 +0100)]
make update

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agomake X509_CRL opaque
Dr. Stephen Henson [Mon, 31 Aug 2015 20:30:13 +0000 (21:30 +0100)]
make X509_CRL opaque

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoExtend ciphersuite test coverage.
Dr. Stephen Henson [Wed, 26 Aug 2015 13:28:38 +0000 (14:28 +0100)]
Extend ciphersuite test coverage.

Add support for testing ECDSA and DSA ciphersuites.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFix CCM support in DTLS
Dr. Stephen Henson [Wed, 26 Aug 2015 13:03:24 +0000 (14:03 +0100)]
Fix CCM support in DTLS

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoUpdate ssltest certificate handling.
Dr. Stephen Henson [Wed, 26 Aug 2015 11:22:39 +0000 (12:22 +0100)]
Update ssltest certificate handling.

Use SSL_CONF for certificate handling is ssltest.c, this changes the
behaviour slightly: the -cert and -key options are no longer recognised
and a default certificate file is not used.

This change means that -s_cert and -c_cert can be used mode than once
to support use of multiple certificates.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoCreate DSA and ECDSA certificates.
Dr. Stephen Henson [Wed, 26 Aug 2015 11:20:32 +0000 (12:20 +0100)]
Create DSA and ECDSA certificates.

If supported create DSA and ECDSA certificates and test them.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agodelete unused structure
Dr. Stephen Henson [Wed, 2 Sep 2015 17:39:48 +0000 (18:39 +0100)]
delete unused structure

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoMove OPENSSL_ITEM to store.h
Rich Salz [Wed, 2 Sep 2015 02:44:10 +0000 (22:44 -0400)]
Move OPENSSL_ITEM to store.h

The only place that uses it.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoCleaner handling of "cnid" in do_x509_check
Viktor Dukhovni [Wed, 2 Sep 2015 01:59:08 +0000 (21:59 -0400)]
Cleaner handling of "cnid" in do_x509_check

Avoid using cnid = 0, use NID_undef instead, and return early instead
of trying to find an instance of that in the subject DN.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoBetter handling of verify param id peername field
Viktor Dukhovni [Wed, 2 Sep 2015 01:47:12 +0000 (21:47 -0400)]
Better handling of verify param id peername field

Initialize pointers in param id by the book (explicit NULL assignment,
rather than just memset 0).

In x509_verify_param_zero() set peername to NULL after freeing it.

In x509_vfy.c's internal check_hosts(), avoid potential leak of
possibly already non-NULL peername.  This is only set when a check
succeeds, so don't need to do this repeatedly in the loop.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoFix DTLS1.2 buffers
Hiroyuki YAMAMORI [Wed, 26 Aug 2015 13:45:40 +0000 (14:45 +0100)]
Fix DTLS1.2 buffers

Fix the setup of DTLS1.2 buffers to take account of the Header

Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFix the comment for POINT_CONVERSION_UNCOMPRESSED
Tim Zhang [Mon, 11 May 2015 09:58:51 +0000 (10:58 +0100)]
Fix the comment for POINT_CONVERSION_UNCOMPRESSED

The |z| value should be 0x04 not 0x02

RT#3838

Signed-off-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agomake update
Dr. Stephen Henson [Tue, 1 Sep 2015 18:09:20 +0000 (19:09 +0100)]
make update

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoDocument extension functions
Dr. Stephen Henson [Tue, 1 Sep 2015 17:56:58 +0000 (18:56 +0100)]
Document extension functions

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agofunctions to retrieve certificate flags
Dr. Stephen Henson [Tue, 1 Sep 2015 16:48:05 +0000 (17:48 +0100)]
functions to retrieve certificate flags

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agouse uint32_t for certificate flags
Dr. Stephen Henson [Tue, 1 Sep 2015 15:07:05 +0000 (16:07 +0100)]
use uint32_t for certificate flags

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoRT3984: Fix clang compiler warning on Mac OS X where %ld is used for uint64_t.
Adam Eijdenberg [Wed, 5 Aug 2015 02:08:22 +0000 (19:08 -0700)]
RT3984: Fix clang compiler warning on Mac OS X where %ld is used for uint64_t.

clang suggests %llu instead, but it isn't clear that is portable on
all platforms.

C99 and above define a handy macro for us, so we try to use that
definition and fall back to current definition if needed (though we
switch to 'u' for unsigned).

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoapps/speed.c: fix memory leak
Emilia Kasper [Tue, 1 Sep 2015 14:11:47 +0000 (16:11 +0200)]
apps/speed.c: fix memory leak

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRT4002: check for NULL cipher in p12_crpt.c
Emilia Kasper [Tue, 1 Sep 2015 12:56:58 +0000 (14:56 +0200)]
RT4002: check for NULL cipher in p12_crpt.c

The NULL cipher case can't actually happen because we have no
EVP_PBE_CTL combinations where cipher_nid is -1 and keygen is
PKCS12_PBE_keyivgen. But make the code more obviously correct.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoRT 3493: fix RSA test
Emilia Kasper [Tue, 1 Sep 2015 11:19:15 +0000 (13:19 +0200)]
RT 3493: fix RSA test

- Pass in the right ciphertext length to ensure we're indeed testing
  ciphertext corruption (and not truncation).
- Only test one mutation per byte to not make the test too slow.
- Add a separate test for truncated ciphertexts.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRT3767: openssl_button.gif should be PNG
Rich Salz [Thu, 27 Aug 2015 04:10:55 +0000 (00:10 -0400)]
RT3767: openssl_button.gif should be PNG

No, we should just delete it.  And updated the README

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoIgnore .dir-locals.el
Richard Levitte [Mon, 31 Aug 2015 19:45:56 +0000 (21:45 +0200)]
Ignore .dir-locals.el

Because we recently encourage people to have a .dir-locals.el, it's a good
idea to ignore it on a git level.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agomake update
Dr. Stephen Henson [Mon, 31 Aug 2015 20:02:06 +0000 (21:02 +0100)]
make update

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd X509_up_ref function.
Dr. Stephen Henson [Mon, 31 Aug 2015 19:29:57 +0000 (20:29 +0100)]
Add X509_up_ref function.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd X509_CRL_up_ref function
Dr. Stephen Henson [Mon, 31 Aug 2015 19:30:20 +0000 (20:30 +0100)]
Add X509_CRL_up_ref function

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agocheck bn_new return value
mrpre [Fri, 28 Aug 2015 08:12:51 +0000 (16:12 +0800)]
check bn_new return value

Slightly modified from the original PR.
Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agomake X509_REQ opaque
Dr. Stephen Henson [Mon, 31 Aug 2015 11:58:07 +0000 (12:58 +0100)]
make X509_REQ opaque

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agomake X509_CERT_AUX opaque
Dr. Stephen Henson [Mon, 31 Aug 2015 11:16:52 +0000 (12:16 +0100)]
make X509_CERT_AUX opaque

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoRemove asn1-kludge option.
Dr. Stephen Henson [Mon, 31 Aug 2015 17:27:57 +0000 (18:27 +0100)]
Remove asn1-kludge option.

Remove asn1-kludge option from the req utility. It was a decade old
workaround for CAs and software which required an invalid encoding
of PKCS#10 certificate requests: omitting the attributes field even
though it is not OPTIONAL.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoGH367 follow-up, for more clarity
Ben Kaduk [Fri, 28 Aug 2015 16:41:50 +0000 (12:41 -0400)]
GH367 follow-up, for more clarity

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoBN_mod_exp_mont_consttime: check for zero modulus.
Emilia Kasper [Mon, 31 Aug 2015 13:51:27 +0000 (15:51 +0200)]
BN_mod_exp_mont_consttime: check for zero modulus.

Don't dereference |d| when |top| is zero. Also test that various BIGNUM methods behave correctly on zero/even inputs.

Follow-up to b11980d79a52ec08844f08bea0e66c04b691840b

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoRemove auto-fill-mode
Richard Levitte [Mon, 31 Aug 2015 15:58:53 +0000 (17:58 +0200)]
Remove auto-fill-mode

Apparently, emacs sees changes to auto-fill-mode as insecure

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd an example .dir-locals.el
Richard Levitte [Mon, 31 Aug 2015 15:25:17 +0000 (17:25 +0200)]
Add an example .dir-locals.el

This file, when copied to .dir-locals.el in the OpenSSL source top,
will make sure that the CC mode style "OpenSSL-II" will be used for
all C files.

Additionally, I makes sure that tabs are never used as indentation
character, regardless of the emacs mode, and that the fill column is
78.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdd emacs CC mode style for OpenSSL
Richard Levitte [Mon, 31 Aug 2015 15:12:37 +0000 (17:12 +0200)]
Add emacs CC mode style for OpenSSL

This hopefully conforms closely enough to the current code style.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoFix spurious bntest failures.
Emilia Kasper [Mon, 31 Aug 2015 11:57:44 +0000 (13:57 +0200)]
Fix spurious bntest failures.

BN_bntest_rand generates a single-word zero BIGNUM with quite a large probability.

A zero BIGNUM in turn will end up having a NULL |d|-buffer, which we shouldn't dereference without checking.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRemove the "times" directory.
Rich Salz [Fri, 28 Aug 2015 21:49:30 +0000 (17:49 -0400)]
Remove the "times" directory.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFix 4c42ebd; forgot to inutil util/libeay.num
Rich Salz [Fri, 28 Aug 2015 19:53:41 +0000 (15:53 -0400)]
Fix 4c42ebd; forgot to inutil util/libeay.num

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoGH354: Memory leak fixes
Alessandro Ghedini [Fri, 28 Aug 2015 03:07:07 +0000 (23:07 -0400)]
GH354: Memory leak fixes

Fix more potential leaks in X509_verify_cert()
Fix memory leak in ClientHello test
Fix memory leak in gost2814789 test
Fix potential memory leak in PKCS7_verify()
Fix potential memory leaks in X509_add1_reject_object()
Refactor to use "goto err" in cleanup.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoGH367: Fix dsa keygen for too-short seed
Ismo Puustinen [Sat, 8 Aug 2015 02:14:47 +0000 (22:14 -0400)]
GH367: Fix dsa keygen for too-short seed

If the seed value for dsa key generation is too short (< qsize),
return an error. Also update the documentation.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoFix memory over-read
Rich Salz [Thu, 27 Aug 2015 21:17:26 +0000 (17:17 -0400)]
Fix memory over-read

Fix from David Baggett via tweet.

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoVarious doc fixes.
Rich Salz [Thu, 27 Aug 2015 16:28:08 +0000 (12:28 -0400)]
Various doc fixes.

Make all mention of digest algorithm use "any supported algorithm"

RT2071, some new manpages from Victor B. Wagner <vitus@cryptocom.ru>:
    X509_LOOKUP_hash_dir.pod
    X509_check_ca.pod
    X509_check_issued.pod

RT 1600:
    Remove references to non-existant objects(3)
    Add RETURN VALUES to BIO_do_accept page.

RT1818:
    RSA_sign Can return values other than 0 on failure.

RT3634:
    Fix AES CBC aliases (Steffen Nurpmeso <sdaoden@yandex.com>)

RT3678:
    Some clarifications to BIO_new_pair
    (Devchandra L Meetei <dlmeetei@gmail.com>)

RT3787:
    Fix some EVP_ function return values
    (Laetitia Baudoin <lbaudoin@google.com>)

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoGH350: -help text few s_client and s_server flags
Hubert Kario [Fri, 31 Jul 2015 16:32:39 +0000 (18:32 +0200)]
GH350: -help text few s_client and s_server flags

add -help description of sigalgs, client_sigalgs, curves
and named_curve

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFixed problem with multiple load-unload of comp zlib
David Brodski [Tue, 13 May 2014 16:06:27 +0000 (18:06 +0200)]
Fixed problem with multiple load-unload of comp zlib

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>