Matt Caswell [Thu, 7 Apr 2016 13:08:52 +0000 (14:08 +0100)]
Fix double free bug in error path
Reviewed-by: Richard Levitte <levitte@openssl.org>
Matt Caswell [Thu, 7 Apr 2016 12:48:03 +0000 (13:48 +0100)]
make update
Reviewed-by: Richard Levitte <levitte@openssl.org>
Matt Caswell [Thu, 7 Apr 2016 12:47:20 +0000 (13:47 +0100)]
Make DH_METHOD opaque
Move the dh_method structure into an internal header file and provide
relevant accessors for the internal fields.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Matt Caswell [Wed, 6 Apr 2016 16:50:22 +0000 (17:50 +0100)]
make update
Reviewed-by: Richard Levitte <levitte@openssl.org>
Matt Caswell [Wed, 6 Apr 2016 16:49:48 +0000 (17:49 +0100)]
Make DH opaque
Move the dh_st structure into an internal header file and provide
relevant accessors for the internal fields.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Rich Salz [Fri, 8 Apr 2016 13:10:06 +0000 (09:10 -0400)]
Add SSL_DANE typedef for consistency.
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Rich Salz [Fri, 8 Apr 2016 12:02:41 +0000 (08:02 -0400)]
Add OCSP to mkdef
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Thu, 31 Mar 2016 16:47:17 +0000 (18:47 +0200)]
PPC assembly pack: remove branch hints.
As it turns out branch hints grew as kind of a misconception. In
addition their interpretation by GNU assembler is affected by
assembler flags and can end up with opposite meaning on different
processors. As we have to loose quite a lot on misinterprerations,
especially on newer processors, we just omit them altogether.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Andy Polyakov [Wed, 6 Apr 2016 10:47:35 +0000 (12:47 +0200)]
Clean-up *_DEBUG options.
Since NDEBUG is defined unconditionally on command line for release
builds, we can omit *_DEBUG options in favour of effective "all-on"
in debug builds exercised though CI.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Andy Polyakov [Wed, 6 Apr 2016 15:33:03 +0000 (17:33 +0200)]
Configurations/10-main.conf: omit now redundant -D_WINDLL.
... and refine /MT vs. /MD flag handling.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 6 Apr 2016 15:27:01 +0000 (17:27 +0200)]
windows-makefile.tmpl: clean up after DLL link failure.
Without proper cleanup after DLL link failure second attempt to
run nmake would actually proceed and failure will be "shifted" to
run time. This is because libcrypto.lib import library is generated
even if DLL link fails.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 6 Apr 2016 09:31:31 +0000 (11:31 +0200)]
test/[dane|evp_]test.c: BIO-fy file I/O.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 6 Apr 2016 09:21:14 +0000 (11:21 +0200)]
bio/bss_file.c: since VS2015 one can't tell apart own and "alien" FILE
pointers, except for minimal std[in|out|err].
Reviewed-by: Richard Levitte <levitte@openssl.org>
Viktor Dukhovni [Thu, 7 Apr 2016 18:19:16 +0000 (14:19 -0400)]
make update
Signed-off-by: Rob Percival <robpercival@google.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Viktor Dukhovni [Thu, 7 Apr 2016 18:17:37 +0000 (14:17 -0400)]
Suppress CT callback as appropriate
Suppress CT callbacks with aNULL or PSK ciphersuites that involve
no certificates. Ditto when the certificate chain is validated via
DANE-TA(2) or DANE-EE(3) TLSA records. Also skip SCT processing
when the chain is fails verification.
Move and consolidate CT callbacks from libcrypto to libssl. We
also simplify the interface to SSL_{,CTX_}_enable_ct() which can
specify either a permissive mode that just collects information or
a strict mode that requires at least one valid SCT or else asks to
abort the connection.
Simplified SCT processing and options in s_client(1) which now has
just a simple pair of "-noct" vs. "-ct" options, the latter enables
the permissive callback so that we can complete the handshake and
report all relevant information. When printing SCTs, print the
validation status if set and not valid.
Signed-off-by: Rob Percival <robpercival@google.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Viktor Dukhovni [Sat, 2 Apr 2016 20:47:48 +0000 (16:47 -0400)]
Fix client verify mode to check SSL_VERIFY_PEER
The original check for != SSL_VERIFY_NONE can give surprising results
when flags SSL_VERIFY_PEER is not set, but other flags are. Note
that SSL_VERIFY_NONE (0) is not a flag bit, it is rather the absense
of all other flag bits.
Signed-off-by: Rob Percival <robpercival@google.com>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
David Benjamin [Mon, 14 Mar 2016 19:03:07 +0000 (15:03 -0400)]
Fix memory leak on invalid CertificateRequest.
Free up parsed X509_NAME structure if the CertificateRequest message
contains excess data.
The security impact is considered insignificant. This is a client side
only leak and a large number of connections to malicious servers would
be needed to have a significant impact.
This was found by libFuzzer.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Richard Levitte [Thu, 7 Apr 2016 12:30:15 +0000 (14:30 +0200)]
OpenSSL::Test: when moving directory, affect env as well
The environment variables TOP, SRCTOP, BLDTOP, ... are used to affect
the testing framework. However, subprocesses may want to use them as
well, and therefore need their values corrected when we move to a
different directory.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Emilia Kasper [Thu, 7 Apr 2016 12:48:50 +0000 (14:48 +0200)]
Allow generate_ssl_tests.pl to find testlib
Reviewed-by: Richard Levitte <levitte@openssl.org>
Emilia Kasper [Thu, 7 Apr 2016 11:35:13 +0000 (13:35 +0200)]
Remove redundant symlink
We used to symlink generate_ssl_tests.pl to the build directory.
Now that the build scripts look for sources in both directories, this
is no longer necessary (see commit
fbd361eaf84446e8d6860ab2b7ecf9d04585f2ef).
Reviewed-by: Richard Levitte <levitte@openssl.org>
Richard Levitte [Thu, 7 Apr 2016 11:03:29 +0000 (13:03 +0200)]
Better use BIO_snprintf() than snprintf(), in case the later isn't available
Reviewed-by: Tim Hudson <tjh@openssl.org>
Richard Levitte [Wed, 6 Apr 2016 22:37:03 +0000 (00:37 +0200)]
Fix forgotten adaptation to opaque RSA and RSA_METHOD
Reviewed-by: Rich Salz <rsalz@openssl.org>
Dr. Stephen Henson [Wed, 6 Apr 2016 17:57:48 +0000 (18:57 +0100)]
always use field names
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Wed, 6 Apr 2016 15:30:01 +0000 (17:30 +0200)]
Perl: foreach (@list) { code } is better
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Richard Levitte [Wed, 6 Apr 2016 14:04:55 +0000 (16:04 +0200)]
Add apps/tsget and test/ssltest_old to .gitignore
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 17:54:51 +0000 (19:54 +0200)]
make update
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 17:54:30 +0000 (19:54 +0200)]
Update CHANGES with the new about RSA and RSA_METHOD
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 17:52:14 +0000 (19:52 +0200)]
Document RSA_METHOD creators/destructor/accessors/writers
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 16:46:17 +0000 (18:46 +0200)]
Make the RSA_METHOD structure opaque
Move rsa_meth_st away from public headers.
Add RSA_METHOD creator/destructor functions.
Add RSA_METHOD accessor/writer functions.
Adapt all other source to use the creator, destructor, accessors and writers.
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 14:43:21 +0000 (16:43 +0200)]
Document RSA accessors/writers
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 13:12:58 +0000 (15:12 +0200)]
Make the RSA structure opaque
Move rsa_st away from public headers.
Add accessor/writer functions for the public RSA data.
Adapt all other source to use the accessors and writers.
Reviewed-by: Matt Caswell <matt@openssl.org>
Matt Caswell [Mon, 21 Mar 2016 16:54:53 +0000 (16:54 +0000)]
Fix no-ocsp
Misc fixes for no-ocsp
Reviewed-by: Rich Salz <rsalz@openssl.org>
Matt Caswell [Thu, 17 Mar 2016 17:06:28 +0000 (17:06 +0000)]
Remove some OPENSSL_NO_ASYNC guards in init
When config'd with "no-async" the ASYNC_NULL implementation is used, so
async symbols still exist. We should still init the NULL implementation so
that when we get the async ctx it is NULL rather than undefined.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Wed, 6 Apr 2016 13:02:57 +0000 (15:02 +0200)]
Perl cleanup: don't create lists unnecessarily
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Wed, 6 Apr 2016 11:56:49 +0000 (13:56 +0200)]
VMS: Fix special case for [.test]ssltest_old.c
[.test]ssltest.c was renamed to [.test]ssltest_old.c, reflect that in
descrip.mms.tmpl.
Reviewed-by: Tim Hudson <tjh@openssl.org>
Andy Polyakov [Thu, 31 Mar 2016 20:09:04 +0000 (22:09 +0200)]
Configure: add BLAKE_DEBUG to --strict-warnings set.
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Fri, 18 Mar 2016 22:17:39 +0000 (23:17 +0100)]
Add missing mem leak test activation and checks
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Andrea Grandi [Fri, 25 Mar 2016 04:19:30 +0000 (04:19 +0000)]
Add a check of the FD_SETSIZE before the call to select()
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Emilia Kasper [Tue, 5 Apr 2016 12:04:05 +0000 (14:04 +0200)]
Rename ssltest -> ssltest_old
ssltest_old.c is deprecated. New tests should use ssl_test.c, and the
recipes in 80-test_ssl_new.t
Reviewed-by: Richard Levitte <levitte@openssl.org>
Emilia Kasper [Tue, 5 Apr 2016 12:29:06 +0000 (14:29 +0200)]
testutil: return 1 on success
Require that test methods return 1 on success (not 0). This is more
customary for OpenSSL.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Dr. Stephen Henson [Tue, 5 Apr 2016 13:06:28 +0000 (14:06 +0100)]
fix memory leak in ca
Reviewed-by: Rich Salz <rsalz@openssl.org>
Emilia Kasper [Thu, 17 Mar 2016 14:14:30 +0000 (15:14 +0100)]
New SSL test framework
Currently, SSL tests are configured via command-line switches to
ssltest.c. This results in a lot of duplication between ssltest.c and
apps, and a complex setup. ssltest.c is also simply old and needs
maintenance.
Instead, we already have a way to configure SSL servers and clients, so
we leverage that. SSL tests can now be configured from a configuration
file. Test servers and clients are configured using the standard
ssl_conf module. Additional test settings are configured via a test
configuration.
Moreover, since the CONF language involves unnecessary boilerplate, the
test conf itself is generated from a shorter Perl syntax.
The generated testcase files are checked in to the repo to make
it easier to verify that the intended test cases are in fact run; and to
simplify debugging failures.
To demonstrate the approach, min/max protocol tests are converted to the
new format. This change also fixes MinProtocol and MaxProtocol
handling. It was previously requested that an SSL_CTX have both the
server and client flags set for these commands; this clearly can never work.
Guide to this PR:
- test/ssl_test.c - test framework
- test/ssl_test_ctx.* - test configuration structure
- test/handshake_helper.* - new SSL test handshaking code
- test/ssl-tests/ - test configurations
- test/generate_ssl_tests.pl - script for generating CONF-style test
configurations from perl inputs
Reviewed-by: Richard Levitte <levitte@openssl.org>
FdaSilvaYY [Mon, 4 Apr 2016 22:13:06 +0000 (00:13 +0200)]
Fix a shadow symbol warning
... comes from
c5137473bdc7.
Fix Travis builds.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Viktor Szakats [Tue, 29 Mar 2016 19:30:11 +0000 (21:30 +0200)]
set exec attribute for .pl files
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Viktor Szakats [Tue, 29 Mar 2016 19:26:39 +0000 (21:26 +0200)]
fix perl shebang
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Viktor Szakats [Tue, 29 Mar 2016 14:25:18 +0000 (16:25 +0200)]
use whitespace more consistently
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Rich Salz [Mon, 4 Apr 2016 20:11:43 +0000 (16:11 -0400)]
Revert "various spelling fixes"
This reverts commit
620d540bd47a96fb6905fbbdd8ea5167a8841a3e.
It wasn't reviewed.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Rich Salz [Mon, 4 Apr 2016 20:11:04 +0000 (16:11 -0400)]
Revert "Fix an error code spelling."
This reverts commit
2b0bcfaf834e2fb7cd52888d7330b247e3878115.
It wasn't reviewed.
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Mon, 4 Apr 2016 18:42:27 +0000 (20:42 +0200)]
Fix an error code spelling.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Thu, 10 Mar 2016 20:34:48 +0000 (21:34 +0100)]
various spelling fixes
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Sun, 3 Apr 2016 21:37:58 +0000 (23:37 +0200)]
Fix a possible leak on NETSCAPE_SPKI_verify failure.
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Sun, 3 Apr 2016 21:37:32 +0000 (23:37 +0200)]
Use X509_REQ_get0_pubkey
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Sun, 3 Apr 2016 21:24:51 +0000 (23:24 +0200)]
Add X509_REQ_get0_pubkey method
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
FdaSilvaYY [Wed, 16 Mar 2016 23:15:48 +0000 (00:15 +0100)]
Fix two leaks in X509_REQ_to_X509
Issue #182
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 4 Apr 2016 14:55:12 +0000 (16:55 +0200)]
Make sure the rand_byte buffer in padlock engine is cleansed.
Submitted by Michael McConville <mmcco@mykolab.com>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Andy Polyakov [Tue, 29 Mar 2016 08:02:45 +0000 (10:02 +0200)]
crypto/poly1305: don't break carry chains.
RT#4483
[poly1305-armv4.pl: remove redundant #ifdef __thumb2__]
[poly1305-ppc*.pl: presumably more accurate benchmark results]
Reviewed-by: Richard Levitte <levitte@openssl.org>
Emilia Kasper [Wed, 30 Mar 2016 20:37:05 +0000 (22:37 +0200)]
Fix memory leaks in ASN.1
These leaks affect 1.1.0 dev branch only; introduced around commit
f93ad22f6adb00e722c130e792799467f3927b56
Found with LibFuzzer
Reviewed-by: Ben Laurie <ben@openssl.org>
Michał Trojnara [Sun, 3 Apr 2016 18:01:09 +0000 (20:01 +0200)]
Removed no-ops for the old locking API
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Viktor Dukhovni [Mon, 4 Apr 2016 00:58:09 +0000 (20:58 -0400)]
Fix mixed declarations and code
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
Richard Levitte [Sun, 3 Apr 2016 22:11:20 +0000 (00:11 +0200)]
Don't shadow known symbols write, read, puts, gets
It was harmless in this case, but best avoid the annoying warnings.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Richard Levitte [Sun, 3 Apr 2016 12:11:12 +0000 (14:11 +0200)]
Makefile et al template: only modify static library with new object files
Previously, we updated the static libraries (libcrypto.a on Unix,
libcrypto.lib on Windows) with all the object files, regardless of if
they were rebuilt or not. With this change, we only update them with
the object files were rebuilt.
NOTE: this does not apply on VMS, as the expansion of $? may be too
large for a command line.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Andy Polyakov [Fri, 1 Apr 2016 16:17:01 +0000 (18:17 +0200)]
apps/Makefile.in: add tsget rule.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Viktor Dukhovni [Sun, 3 Apr 2016 19:21:34 +0000 (15:21 -0400)]
After saving errno clear it before calls to strtol et. al.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Viktor Dukhovni [Sun, 20 Mar 2016 08:12:52 +0000 (04:12 -0400)]
make update
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
Viktor Dukhovni [Sat, 19 Mar 2016 02:09:41 +0000 (22:09 -0400)]
Move peer chain security checks into x509_vfy.c
A new X509_VERIFY_PARAM_set_auth_level() function sets the
authentication security level. For verification of SSL peers, this
is automatically set from the SSL security level. Otherwise, for
now, the authentication security level remains at (effectively) 0
by default.
The new "-auth_level" verify(1) option is available in all the
command-line tools that support the standard verify(1) options.
New verify(1) tests added to check enforcement of chain signature
and public key security levels. Also added new tests of enforcement
of the verify_depth limit.
Updated documentation.
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
Viktor Dukhovni [Sat, 27 Feb 2016 19:17:28 +0000 (14:17 -0500)]
Tidy up x509_vfy callback handling
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
Richard Levitte [Sun, 3 Apr 2016 07:15:19 +0000 (09:15 +0200)]
Ordinals adjustment
Two renamed functions were forgotten in util/libcrypto.num
Reviewed-by: Matt Caswell <matt@openssl.org>
Matt Caswell [Sat, 2 Apr 2016 22:08:14 +0000 (23:08 +0100)]
Rename get/set_app_data to get0/set0_app_data
Also fixed a style issue
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Matt Caswell [Sat, 2 Apr 2016 18:41:41 +0000 (19:41 +0100)]
Various DSA opacity fixups
Numerous fixups based on feedback of the DSA opacity changes.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Matt Caswell [Fri, 1 Apr 2016 14:43:17 +0000 (15:43 +0100)]
make update
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Matt Caswell [Fri, 1 Apr 2016 13:09:57 +0000 (14:09 +0100)]
Added DSA opacity to CHANGES
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Matt Caswell [Thu, 31 Mar 2016 13:22:39 +0000 (14:22 +0100)]
Document functions added as a result of DSA opacity changes
A number of getters/setters have been added for examining DSA objects, as
well as a whole set of functions for creating and buildingup DSA_METHODs.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Matt Caswell [Wed, 30 Mar 2016 16:18:55 +0000 (17:18 +0100)]
Make DSA_METHOD opaque
Move the dsa_method structure out of the public header file, and provide
getter and setter functions for creating and modifying custom DSA_METHODs.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Matt Caswell [Wed, 30 Mar 2016 14:21:39 +0000 (15:21 +0100)]
Make the DSA structure opaque
Move the dsa_st structure out of the public header file. Add some accessor
functions to enable access to the internal fields, and update all internal
usage to use the new functions.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Stephen Henson <steve@openssl.org>
Richard Levitte [Fri, 1 Apr 2016 13:09:28 +0000 (15:09 +0200)]
Adapt some test recipes to the newer cmdstr()
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Fri, 1 Apr 2016 13:05:52 +0000 (15:05 +0200)]
Enhance OpenSSL::Test::cmdstr to give cmd string variants
Within OpenSSL::Test, all commands end up existing in two variants,
one that has redirections that are needed internally to work well
together with the test harness, and one without those redirections.
Depending on what the result is going to be used for, the caller may
want one for or the other, so we give them the possibility.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Kirill Marinushkin [Wed, 30 Mar 2016 16:39:42 +0000 (18:39 +0200)]
moved structure bio_buf_mem_st from headers to bss_mem.c
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Kirill Marinushkin [Wed, 16 Mar 2016 21:05:59 +0000 (22:05 +0100)]
sizeof() updated to cover coding style
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Kirill Marinushkin [Sun, 13 Mar 2016 12:20:52 +0000 (13:20 +0100)]
Optimized BIO mem read - without reallocation
Currently on every BIO mem read operation the remaining data is reallocated.
This commit solves the issue.
BIO mem structure includes additional pointer to the read position.
On every read the pointer moves instead of reallocating the memory for the remaining data.
Reallocation accures before write and some ioctl operations, if the read pointer doesn't point on the beginning of the buffer.
Also the flag is added to rewind the read pointer without losing the data.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Mat [Fri, 1 Apr 2016 00:00:03 +0000 (02:00 +0200)]
Fix: CRYPTO_THREAD_run_once
InitOnceExecuteOnce returns nonzero on success:
MSDN: "If the function succeeds, the return value is nonzero."
So return 1 if it is nonzero, 0 others.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 17:59:19 +0000 (19:59 +0200)]
apps/opt.c: next was only used when NDEBUG undefined, move it inside guard
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Sat, 2 Apr 2016 15:10:03 +0000 (17:10 +0200)]
make depend: Check that find returned a non-empty string rather than an empty
The logic to find out of there are any .d files newer than Makefile is
sound. Checking the result was less so.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Dr. Stephen Henson [Wed, 30 Mar 2016 20:46:13 +0000 (21:46 +0100)]
Fix X509_PUBKEY cached key handling.
Don't decode a public key in X509_PUBKEY_get0(): that is handled when
the key is parsed using x509_pubkey_decode() instead.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Coty Sutherland [Fri, 1 Apr 2016 18:20:11 +0000 (14:20 -0400)]
Correcting typo that causes make install fail
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Richard Levitte [Fri, 1 Apr 2016 14:03:46 +0000 (16:03 +0200)]
Add the C macro NDEBUG when configuring for release
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Richard Levitte [Fri, 1 Apr 2016 10:36:51 +0000 (12:36 +0200)]
Force argv to be an array of long pointers on VMS
Reverts commit
087ca80ad83071dde0bb6bc1c28c743caa00eaf8
Instead of battling the odd format of argv given to main() in default
P64 mode, tell the compiler to make it an array of 64-bit pointers
when compiling in P64 mode.
A note is added in NOTES.VMS regarding minimum DEC C version.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Richard Levitte [Thu, 31 Mar 2016 07:27:15 +0000 (09:27 +0200)]
Make the use of perl more consistent
- In Configure, register the perl interpreter used to run Configure,
so that's the one being used throughout instead of something else
that Configure happens to find. This is helpful for using a perl
version that's not necessarely first in $PATH:
/opt/perl/5.22.1/bin/perl ./Configure
- Make apps/tsget a generated file, just like apps/CA.pl, so the
perl interpreter registered by Configure becomes the hashbang path
instead of a hardcoded /usr/bin/perl
Reviewed-by: Andy Polyakov <appro@openssl.org>
Rich Salz [Tue, 22 Mar 2016 14:52:13 +0000 (10:52 -0400)]
Use return "" not set a var and return.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Andy Polyakov [Sun, 13 Mar 2016 21:19:53 +0000 (22:19 +0100)]
crypto/blake2: make lowest-level function handle multiple blocks..
This minimizes inter-block overhead. Performance gain naturally
varies from case to case, up to 10% was spotted so far. There is
one thing to recognize, given same circumstances gain would be
higher faster computational part is. Or in other words biggest
improvement coefficient would have been observed with assembly.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Thu, 31 Mar 2016 13:08:34 +0000 (15:08 +0200)]
OpenSSL::Test: have cmdstr() return the true command.
On the other hand, have run() display the display variant.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Thu, 31 Mar 2016 13:02:02 +0000 (15:02 +0200)]
When looking for executables, don't forget the extension
Because some operating systems have executable extensions, typically
".exe", we need to append it when looking for files in test() and
app() (or rather, their subroutines).
Reviewed-by: Rich Salz <rsalz@openssl.org>
Pauli [Mon, 21 Mar 2016 23:16:36 +0000 (09:16 +1000)]
RT4458: Fix #ifndef line for GOST
Reviewed-by: Richard Levitte <levitte@openssl.org>
Richard Levitte [Mon, 21 Mar 2016 17:08:57 +0000 (18:08 +0100)]
Fix "no-ui" configuration
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Thu, 31 Mar 2016 06:29:39 +0000 (08:29 +0200)]
Make the '-in' option in apps/passwd.c less mandatory
Reviewed-by: Matt Caswell <matt@openssl.org>
Matt Caswell [Wed, 30 Mar 2016 17:12:59 +0000 (18:12 +0100)]
Remove the CRYPTO_mem_leaks adjustment for the BIO
CRYPTO_mem_leaks attempts to adjust the count of bytes leaks to not
include the BIO that is being used to print the results out. However this
does not work properly. In all internal cases we switch off recording
the memory allocation during creation of the BIO so it makes no difference.
In other cases if the BIO allocates any additional memory during
construction then the adjustment will be wrong anyway. It also skips over
the BIO memory during print_leak anyway, so the BIO memory is never
added into the total. In other words this was broken in lots of ways and
has been since it was first added.
The simplest solution is just to make it the documented behaviour that
you must turn off memory logging when creating the BIO, and remove all
the adjustment stuff completely. The adjustment code was only ever in
master and never made it to a release branch so there is no loss of
functionality.
This commit also fixes a compilation failure when using
enable-crypto-mdebug.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Ben Laurie [Tue, 29 Mar 2016 18:37:57 +0000 (19:37 +0100)]
Fix buffer overrun in ASN1_parse().
Fix buffer overrun in asn1_get_length().
Reproducer: asn1parse-reproduce crash-
6bfd417f47bc940f6984f5e639b637fd4e6074bc
Fix length calculations.
Reproducer: asn1parse-reproduce crash-
1819d0e54cd2b0430626c59053e6077ef04c2ffb
Reproducer: asn1parse-reproduce crash-
9969db8603e644ddc0ba3459b51eac7a2c4b729b
Make i long.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Wed, 30 Mar 2016 06:35:18 +0000 (08:35 +0200)]
Fix pointer size issues with argv on VMS
The argument 'argv' in 'main' is a short pointer to a short pointer on
VMS, regardless of initial pointer size. We must therefore make sure
that 'copy_argv' gets a 32-bit pointer for argv, and that the copied
argv is used for the rest of main().
This introduces the local type argv_t, which will have correct pointer
size in all cases (and be harmless on all other platforms) as well as
the macro Argv, which is defined as 'copied_argv' or 'argv', as the
case may be.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Richard Levitte [Wed, 30 Mar 2016 06:32:19 +0000 (08:32 +0200)]
Fix pointer size issue with setbuf() on VMS
setbuf() is only for 32-bit pointers. If compiled with /POINTER_SIZE=64,
we get a nasty warning about possible loss of data. However, since
the only pointer used in the call is a FILE *, and the C RTL shouldn't
give us a pointer above the first 4GB, it's safe to turn off the
warning for this call.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Richard Levitte [Wed, 30 Mar 2016 04:40:37 +0000 (06:40 +0200)]
Fix pointer size issues on VMS
On VMS, the C compiler can work with 32-bit and 64-bit pointers, and
the command line determines what the initial pointer size shall be.
However, there is some functionality that only works with 32-bit
pointers. In this case, it's gethostbyname(), getservbyname() and
accompanying structures, so we need to make sure that we define our
own pointers as 32-bit ones.
Furthermore, there seems to be a bug in VMS C netdb.h, where struct
addrinfo is always defined with 32-bit pointers no matter what, but
the functions handling it are adapted to the initial pointer size.
This leads to pointer size warnings when compiling with
/POINTER_SIZE=64. The workaround is to force struct addrinfo to be
the 64-bit variant if the initial pointer size is 64.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Richard Levitte [Wed, 30 Mar 2016 16:18:24 +0000 (18:18 +0200)]
Rearrange the use of 'proto' in BIO_lookup
'proto' wasn't properly used as a fallback in all appropriate cases.
Reviewed-by: Rich Salz <rsalz@openssl.org>