openssl.git
3 years agoMove the building of test/buildtest_*. to be done unconditionally
Richard Levitte [Thu, 4 Aug 2016 22:32:36 +0000 (00:32 +0200)]
Move the building of test/buildtest_*. to be done unconditionally

These were guarded by $disabled{tests}.  However, 'tests' is disabled
if we configure 'no-stdio', which means that we don't detect the lack
of OPENSSL_NO_STDIO guards in our public header files.  So we move the
generation and build of test/buildtest_*.c to be unconditional.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoSanity check input length in OPENSSL_uni2asc().
Dr. Stephen Henson [Fri, 5 Aug 2016 16:59:32 +0000 (17:59 +0100)]
Sanity check input length in OPENSSL_uni2asc().

Thanks to Hanno Böck for reporting this bug.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoAdd --gcov-options '\-lp' to coverage
Emilia Kasper [Fri, 5 Aug 2016 09:33:48 +0000 (11:33 +0200)]
Add --gcov-options '\-lp' to coverage

Should result in more accurate header file coverage, see
https://github.com/eddyxu/cpp-coveralls/issues/54

Reviewed-by: Kurt Roeckx <kurt@openssl.org>
3 years agoAdd a coverage target
Emilia Kasper [Wed, 3 Aug 2016 13:29:21 +0000 (15:29 +0200)]
Add a coverage target

Run tests with coverage and report to coveralls.io

For simplicity, this currently only adds a single target in a
configuration that attempts to maximize coverage. The true CI coverage
from all the various builds may be a little larger.

The coverage run has the following configuration:
- no-asm: since we can't track asm coverage anyway, might as well measure the
  non-asm code coverage.
- Enable various disabled-by-default options:
  - rc5
  - md2
  - ec_nistp_64_gcc_128
  - ssl3
  - ssl3-method
  - weak-ssl-ciphers

Finally, observe that no-pic implies no-shared, and therefore running
both builds in the matrix is redundant.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
3 years agoFree buffer in a2i_ASN1_INTEGER() on error path.
Dr. Stephen Henson [Fri, 5 Aug 2016 15:06:36 +0000 (16:06 +0100)]
Free buffer in a2i_ASN1_INTEGER() on error path.

Thank to Shi Lei for reporting this bug.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoMake update, etc.
Rich Salz [Fri, 5 Aug 2016 15:16:07 +0000 (11:16 -0400)]
Make update, etc.

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoindent: add a couple of types we use in apps
Richard Levitte [Wed, 3 Aug 2016 20:03:50 +0000 (22:03 +0200)]
indent: add a couple of types we use in apps

Reviewed-by: Emilia Käsper <emilia@openssl.org>
3 years agoopenssl-format-source: no dash marker on *INDENT-(ON|OFF)* comments
Richard Levitte [Wed, 3 Aug 2016 17:49:32 +0000 (19:49 +0200)]
openssl-format-source: no dash marker on *INDENT-(ON|OFF)* comments

We mark small comments with a dash immediately following the starting /*.
However, *INDENT-(ON|OFF)* comments shouldn't be treated that way, or
indent will ignore them if we do.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoVMS: Fix building of bad_dtls_test
Richard Levitte [Fri, 5 Aug 2016 08:14:56 +0000 (10:14 +0200)]
VMS: Fix building of bad_dtls_test

Reviewed-by: Tim Hudson <tjh@openssl.org>
3 years agoAdded appropriate OPENSSL_NO_STDIO to PKCS12 header
Dániel Bakai [Thu, 4 Aug 2016 11:00:48 +0000 (13:00 +0200)]
Added appropriate OPENSSL_NO_STDIO to PKCS12 header

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoAdd basic test for Cisco DTLS1_BAD_VER and record replay handling
David Woodhouse [Mon, 25 Jul 2016 13:31:43 +0000 (14:31 +0100)]
Add basic test for Cisco DTLS1_BAD_VER and record replay handling

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoFix ubsan 'left shift of negative value -1' error in satsub64be()
David Woodhouse [Tue, 2 Aug 2016 21:54:46 +0000 (22:54 +0100)]
Fix ubsan 'left shift of negative value -1' error in satsub64be()

Baroque, almost uncommented code triggers behaviour which is undefined
by the C standard. You might quite reasonably not care that the code was
broken on ones-complement machines, but if we support a ubsan build then
we need to at least pretend to care.

It looks like the special-case code for 64-bit big-endian is going to
behave differently (and wrongly) on wrap-around, because it treats the
values as signed. That seems wrong, and allows replay and other attacks.
Surely you need to renegotiate and start a new epoch rather than
wrapping around to sequence number zero again?

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoMake DTLS1_BAD_VER work with DTLS_client_method()
David Woodhouse [Mon, 25 Jul 2016 17:03:27 +0000 (18:03 +0100)]
Make DTLS1_BAD_VER work with DTLS_client_method()

DTLSv1_client_method() is deprecated, but it was the only way to obtain
DTLS1_BAD_VER support. The SSL_OP_CISCO_ANYCONNECT hack doesn't work with
DTLS_client_method(), and it's relatively non-trivial to make it work without
expanding the hack into lots of places.

So deprecate SSL_OP_CISCO_ANYCONNECT with DTLSv1_client_method(), and make
it work with SSL_CTX_set_{min,max}_proto_version(DTLS1_BAD_VER) instead.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoFix cipher support for DTLS1_BAD_VER
David Woodhouse [Fri, 8 Jul 2016 19:59:50 +0000 (20:59 +0100)]
Fix cipher support for DTLS1_BAD_VER

Commit 3eb2aff40 ("Add support for minimum and maximum protocol version
supported by a cipher") disabled all ciphers for DTLS1_BAD_VER.

That wasn't helpful. Give them back.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoFix DTLS_VERSION_xx() comparison macros for DTLS1_BAD_VER
David Woodhouse [Fri, 8 Jul 2016 19:56:38 +0000 (20:56 +0100)]
Fix DTLS_VERSION_xx() comparison macros for DTLS1_BAD_VER

DTLS version numbers are strange and backwards, except DTLS1_BAD_VER so
we have to make a special case for it.

This does leave us with a set of macros which will evaluate their arguments
more than once, but it's not a public-facing API and it's not like this is
the kind of thing where people will be using DTLS_VERSION_LE(x++, y) anyway.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoFix ossl_statem_client_max_message_size() for DTLS1_BAD_VER
David Woodhouse [Fri, 8 Jul 2016 19:47:42 +0000 (20:47 +0100)]
Fix ossl_statem_client_max_message_size() for DTLS1_BAD_VER

The Change Cipher Spec message in this ancient pre-standard version of DTLS
that Cisco are unfortunately still using in their products, is 3 bytes.

Allow it.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoFix SSL_export_keying_material() for DTLS1_BAD_VER
David Woodhouse [Fri, 8 Jul 2016 19:46:07 +0000 (20:46 +0100)]
Fix SSL_export_keying_material() for DTLS1_BAD_VER

Commit d8e8590e ("Fix missing return value checks in SCTP") made the
DTLS handshake fail, even for non-SCTP connections, if
SSL_export_keying_material() fails. Which it does, for DTLS1_BAD_VER.

Apply the trivial fix to make it succeed, since there's no real reason
why it shouldn't even though we never need it.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoWhen tr gets bracketed arguments, they need to be quoted
Richard Levitte [Thu, 4 Aug 2016 16:31:51 +0000 (18:31 +0200)]
When tr gets bracketed arguments, they need to be quoted

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoRemove some unused options from 10-main.conf
Benjamin Kaduk [Wed, 3 Aug 2016 20:07:55 +0000 (15:07 -0500)]
Remove some unused options from 10-main.conf

The options RC4_CHUNK_LL, DES_PTR, and BF_PTR were removed by Rich
in commit 3e9e810f2e047effb1056211794d2d12ec2b04e7 but were still
sticking around in a coupule configuration entries.

Since they're unused, remove them.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1390)

3 years agoFix output text to avoid gratuitious git diff
Rich Salz [Thu, 4 Aug 2016 18:29:53 +0000 (14:29 -0400)]
Fix output text to avoid gratuitious git diff

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoRemove get_hash completely
Rich Salz [Wed, 3 Aug 2016 19:24:57 +0000 (15:24 -0400)]
Remove get_hash completely

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1389)

3 years agoRemove "lockit" from internal error-hash function
Rich Salz [Wed, 3 Aug 2016 19:15:20 +0000 (15:15 -0400)]
Remove "lockit" from internal error-hash function

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1389)

3 years agoLimit status message sisze in ts_get_status_check
Dr. Stephen Henson [Tue, 2 Aug 2016 20:38:37 +0000 (21:38 +0100)]
Limit status message sisze in ts_get_status_check

Thanks to Shi Lei for reporting this issue.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoPack globals variables used to control apps/verify_callback()
FdaSilvaYY [Mon, 1 Aug 2016 19:30:57 +0000 (21:30 +0200)]
Pack globals variables used to control apps/verify_callback()

  into a structure , to avoid any accident .

Plus some few cleanups

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoIgnore windows generated manifests
JimC [Wed, 3 Aug 2016 17:53:21 +0000 (13:53 -0400)]
Ignore windows generated manifests

- Commit a95ce7f builds *.manifest files on windows -- added them to
  .gitignore.

- ignore pod -> html temp file

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConstify some ASN1_OBJECT *obj input parameters
FdaSilvaYY [Sun, 31 Jul 2016 17:38:09 +0000 (19:38 +0200)]
Constify some ASN1_OBJECT *obj input parameters

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConstify inputs of two X509_LOOKUP_METHOD methods
FdaSilvaYY [Sun, 31 Jul 2016 17:19:49 +0000 (19:19 +0200)]
Constify inputs of two X509_LOOKUP_METHOD methods

... get_by_fingerprint() and get_by_alias()

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConstify input buffer
FdaSilvaYY [Sun, 31 Jul 2016 17:14:09 +0000 (19:14 +0200)]
Constify input buffer

 of X509_NAME_add_entry_by_OBJ, X509_NAME_add_entry_by_NID, X509_NAME_ENTRY_create_by_NID

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConstify two internal methods
FdaSilvaYY [Fri, 29 Jul 2016 10:51:35 +0000 (12:51 +0200)]
Constify two internal methods
- append_ia5
- old_entry_print

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConstify ASN1_INTEGER_get, ASN1_ENUMERATED_get
FdaSilvaYY [Mon, 4 Jul 2016 18:40:27 +0000 (20:40 +0200)]
Constify ASN1_INTEGER_get, ASN1_ENUMERATED_get

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoVMS: have the IVP verify that a well known engine loads properly
Richard Levitte [Tue, 19 Jul 2016 07:17:09 +0000 (09:17 +0200)]
VMS: have the IVP verify that a well known engine loads properly

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoHave 'openssl engine' exit with non-zero when some engine fails to load
Richard Levitte [Tue, 19 Jul 2016 06:57:01 +0000 (08:57 +0200)]
Have 'openssl engine' exit with non-zero when some engine fails to load

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoVSI submission: make the VMS version of RAND_poll() faster and more secure
Richard Levitte [Wed, 3 Aug 2016 19:45:06 +0000 (21:45 +0200)]
VSI submission: make the VMS version of RAND_poll() faster and more secure

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoVSI submisson: make better use of item lists in o_time.c
Richard Levitte [Wed, 3 Aug 2016 19:33:31 +0000 (21:33 +0200)]
VSI submisson: make better use of item lists in o_time.c

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoTravis: When testing installation, build in separate dir, otherwise in checkout
Richard Levitte [Thu, 4 Aug 2016 09:50:39 +0000 (11:50 +0200)]
Travis: When testing installation, build in separate dir, otherwise in checkout

The rationale is that installation from a tarball is a common task
that everyone performs.  For all other builds, we do specialised
tests, and might as well build them directly in the checkout, which
also gives us fuzz corpora.

Reviewed-by: Emilia Käsper <emilia@openssl.org>
3 years agoPrepare for 1.1.0-pre7-dev
Matt Caswell [Thu, 4 Aug 2016 14:02:43 +0000 (15:02 +0100)]
Prepare for 1.1.0-pre7-dev

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoPrepare for 1.1.0-pre6 release OpenSSL_1_1_0-pre6
Matt Caswell [Thu, 4 Aug 2016 14:00:44 +0000 (15:00 +0100)]
Prepare for 1.1.0-pre6 release

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agomake update
Matt Caswell [Thu, 4 Aug 2016 14:00:43 +0000 (15:00 +0100)]
make update

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoFix date in CHANGES
Matt Caswell [Thu, 4 Aug 2016 13:55:41 +0000 (14:55 +0100)]
Fix date in CHANGES

The release scripts expect to see the date "xx XXX xxxx" in CHANGES. At
some point the year got changed from xxxx to 2016. This changes it back.

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoDon't check any revocation info on proxy certificates
Richard Levitte [Wed, 3 Aug 2016 14:02:20 +0000 (16:02 +0200)]
Don't check any revocation info on proxy certificates

Because proxy certificates typically come without any CRL information,
trying to check revocation on them will fail.  Better not to try
checking such information for them at all.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoINSTALL: Make the use of [, ], { and } consistent and explain it
Richard Levitte [Wed, 3 Aug 2016 05:55:54 +0000 (07:55 +0200)]
INSTALL: Make the use of [, ], { and } consistent and explain it

The diverse notations used in INSTALL are not as self explanatory as
we might imagine, so let's attempt a consistent notation for mandatory
and optional pieces of a command line, and to explain the meaning of
each notation.

This does away with the bash notation used in one spot, as it isn't
universally understood and will only confuse the unknowing more.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoINSTALL: Add missing details on VMS installation results
Richard Levitte [Wed, 3 Aug 2016 05:55:16 +0000 (07:55 +0200)]
INSTALL: Add missing details on VMS installation results

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoVMS: make sure to provide an absolute source directory for pod2html
Richard Levitte [Wed, 3 Aug 2016 10:54:42 +0000 (12:54 +0200)]
VMS: make sure to provide an absolute source directory for pod2html

Experience shows that pod2html changes directory during its process
without properly adjusting the given source directory.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoVMS: If configured no-shared, don't provide shareable image logical names
Richard Levitte [Wed, 3 Aug 2016 10:53:49 +0000 (12:53 +0200)]
VMS: If configured no-shared, don't provide shareable image logical names

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoCheck for overlows and error return from ASN1_object_size()
Dr. Stephen Henson [Mon, 1 Aug 2016 23:45:31 +0000 (00:45 +0100)]
Check for overlows and error return from ASN1_object_size()

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoCheck for overflows in ASN1_object_size().
Dr. Stephen Henson [Mon, 1 Aug 2016 23:30:47 +0000 (00:30 +0100)]
Check for overflows in ASN1_object_size().

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years ago80-test_ssl_new.t: only skip on $no_tls if no other skip conditions defined
Richard Levitte [Tue, 2 Aug 2016 11:27:39 +0000 (13:27 +0200)]
80-test_ssl_new.t: only skip on $no_tls if no other skip conditions defined

Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoIn 80-test_ssl_new, more "plan tests" to a more useful position
Richard Levitte [Tue, 2 Aug 2016 09:19:07 +0000 (11:19 +0200)]
In 80-test_ssl_new, more "plan tests" to a more useful position

Reviewed-by: Matt Caswell <matt@openssl.org>
3 years agoFix tests for no-nextprotoneg
Matt Caswell [Tue, 2 Aug 2016 09:19:56 +0000 (10:19 +0100)]
Fix tests for no-nextprotoneg

Fix the 80-test_ssl_test_ctx and 80-test_ssl_new tests when used with the
no-nextprotoneg option

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoFix some style issues...
FdaSilvaYY [Thu, 28 Jul 2016 19:15:52 +0000 (21:15 +0200)]
Fix some style issues...

 extra spacing and 80 cols

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1366)

3 years agoDon't overwrite existing installed openssl.cnf
Richard Levitte [Mon, 1 Aug 2016 21:18:25 +0000 (23:18 +0200)]
Don't overwrite existing installed openssl.cnf

Instead, install the new one as openssl.cnf.dist (openssl.cnf-dist on
VMS), and only install it as openssl.cnf if that file doesn't already
exist.

Also, don't install with exec privileges on VMS.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoAll of ssldirs installation should be done by the install_ssldirs target
Richard Levitte [Mon, 1 Aug 2016 21:15:50 +0000 (23:15 +0200)]
All of ssldirs installation should be done by the install_ssldirs target

The Unix build file template didn't do that quite right.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoSome minor tweaks to the fuzzing docs
Matt Caswell [Mon, 1 Aug 2016 20:46:08 +0000 (21:46 +0100)]
Some minor tweaks to the fuzzing docs

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoDocument certificate and CRL time functions.
Dr. Stephen Henson [Mon, 1 Aug 2016 18:16:52 +0000 (19:16 +0100)]
Document certificate and CRL time functions.

RT#4639

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoConstify some X509_CRL, X509_REQ functions.
Dr. Stephen Henson [Mon, 1 Aug 2016 18:30:34 +0000 (19:30 +0100)]
Constify some X509_CRL, X509_REQ functions.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoConstify some X509_CRL functions.
Dr. Stephen Henson [Mon, 1 Aug 2016 18:25:16 +0000 (19:25 +0100)]
Constify some X509_CRL functions.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agomake update
Dr. Stephen Henson [Mon, 1 Aug 2016 17:37:48 +0000 (18:37 +0100)]
make update

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoAdd DSA_bits() function.
Dr. Stephen Henson [Mon, 1 Aug 2016 17:37:03 +0000 (18:37 +0100)]
Add DSA_bits() function.

RT#4637

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix typo of BN_zero()
Kurt Roeckx [Sun, 31 Jul 2016 12:11:12 +0000 (14:11 +0200)]
Fix typo of BN_zero()

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoForgotten make update
Richard Levitte [Mon, 1 Aug 2016 14:14:41 +0000 (16:14 +0200)]
Forgotten make update

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoConst the ex data stuff too to fix warnings
Richard J. Moore [Sun, 31 Jul 2016 10:04:48 +0000 (11:04 +0100)]
Const the ex data stuff too to fix warnings

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConst EC_KEY_dup
Richard J. Moore [Sun, 31 Jul 2016 00:08:30 +0000 (01:08 +0100)]
Const EC_KEY_dup

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoAdditional CMS content types from RFC 4073, RFC 5083, and RFC 5084.
Wim Lewis [Wed, 27 Jul 2016 00:37:29 +0000 (17:37 -0700)]
Additional CMS content types from RFC 4073, RFC 5083, and RFC 5084.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1355)

3 years agoUseless allocation
FdaSilvaYY [Thu, 28 Jul 2016 21:20:19 +0000 (23:20 +0200)]
Useless allocation

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoFix some style issues
FdaSilvaYY [Thu, 28 Jul 2016 20:51:18 +0000 (22:51 +0200)]
Fix some style issues

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoAdd missing help string
FdaSilvaYY [Sat, 23 Jul 2016 13:39:49 +0000 (15:39 +0200)]
Add missing help string

Fix an error message

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoFix some awkward tests
FdaSilvaYY [Sat, 23 Jul 2016 12:45:08 +0000 (14:45 +0200)]
Fix some awkward tests

Add some explanatory comments
Discard some useless parenthesis.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoMerge some conditional blocks of code.
FdaSilvaYY [Fri, 29 Jul 2016 11:22:42 +0000 (13:22 +0200)]
Merge some conditional blocks of code.

Fix an #if check about rsa_count...

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoSimplify default inits, add const qualifiers
FdaSilvaYY [Tue, 19 Jul 2016 21:54:21 +0000 (23:54 +0200)]
Simplify default inits, add const qualifiers
Simplify some loops to reuse k variable

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoCast to right type, simplify array args
FdaSilvaYY [Tue, 19 Jul 2016 21:57:18 +0000 (23:57 +0200)]
Cast to right type, simplify array args

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoFix sharing of two static variables
FdaSilvaYY [Tue, 12 Jul 2016 21:13:20 +0000 (23:13 +0200)]
Fix sharing of two static variables

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoECDH test is only one operation to run
FdaSilvaYY [Tue, 19 Jul 2016 22:16:45 +0000 (00:16 +0200)]
ECDH test is only one operation to run

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoFix three missing global declarations.
FdaSilvaYY [Sat, 23 Jul 2016 12:26:07 +0000 (14:26 +0200)]
Fix three missing global declarations.

Fix compilation without SIGALRM.
It don't link because of remaning alarm(0); call.

Convert engine_id variable to local one

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1342)

3 years agoFix return values of do_passwd() in apps/passwd.c
Richard Levitte [Mon, 1 Aug 2016 11:07:48 +0000 (13:07 +0200)]
Fix return values of do_passwd() in apps/passwd.c

do_passwd() was returning 0 on success and 1 on failure.  However,
those values were interpreted the other way around.  The fix that
makes the most sense is to change what do_passwd() returns.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix bad result in i2b_PVK()
Matt Caswell [Mon, 1 Aug 2016 11:11:21 +0000 (12:11 +0100)]
Fix bad result in i2b_PVK()

The function i2b_PVK() was returning a bad pointer causing subsequent
crashes.

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoFix param order in RSA_get0_key
Matt Caswell [Mon, 1 Aug 2016 11:10:11 +0000 (12:10 +0100)]
Fix param order in RSA_get0_key

Some calls to RSA_get0_key had the parameters in the wrong order causing a
failure.

GitHub Issue #1368

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoInclude what we use.
Ben Laurie [Mon, 1 Aug 2016 02:44:42 +0000 (03:44 +0100)]
Include what we use.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agopeer_tmp doesn't exist if no-ec no-dh.
Ben Laurie [Sun, 31 Jul 2016 14:48:24 +0000 (15:48 +0100)]
peer_tmp doesn't exist if no-ec no-dh.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix various no-*s.
Ben Laurie [Sun, 31 Jul 2016 10:42:04 +0000 (11:42 +0100)]
Fix various no-*s.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agocrypto/ui/ui_openssl.c: UTF-y Windows code path.
Andy Polyakov [Tue, 19 Jul 2016 11:52:49 +0000 (13:52 +0200)]
crypto/ui/ui_openssl.c: UTF-y Windows code path.

Windows never composes UTF-8 strings as result of user interaction
such as input query. The only way to compose one is programmatic
conversion from WCHAR string, which in turn can be picked up with
ReadConsoleW.

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoapps/openssl.c: UTF-y Windows argv.
Andy Polyakov [Sat, 16 Jul 2016 21:21:39 +0000 (23:21 +0200)]
apps/openssl.c: UTF-y Windows argv.

Windows never composes UTF-8 strings as result of user interaction
such as passing command-line argument. The only way to compose one
is programmatic conversion from WCHAR string, which in turn can be
picked up on command line.

[For reference, why not wmain, it's not an option on MinGW.]

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConfigurations/00-base-templates.conf: harmonize BASE_Windows.
Andy Polyakov [Sun, 17 Jul 2016 20:12:38 +0000 (22:12 +0200)]
Configurations/00-base-templates.conf: harmonize BASE_Windows.

Reviewed-by: Richard Levitte <levitte@openssl.org>
3 years agoConfigurations/unix-Makefile.tmpl: add LC_ALL=C to unify messages.
Andy Polyakov [Thu, 28 Jul 2016 21:05:32 +0000 (23:05 +0200)]
Configurations/unix-Makefile.tmpl: add LC_ALL=C to unify messages.

RT#4138

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoevp/bio_enc.c: perform enc_read operation without using overlapping buffers.
Andy Polyakov [Mon, 25 Jul 2016 13:04:33 +0000 (15:04 +0200)]
evp/bio_enc.c: perform enc_read operation without using overlapping buffers.

Reviewed-by: Stephen Henson <steve@openssl.org>
3 years agotest/smcont.txt: trigger assertion in bio_enc.c.
Andy Polyakov [Mon, 25 Jul 2016 13:03:43 +0000 (15:03 +0200)]
test/smcont.txt: trigger assertion in bio_enc.c.

Reviewed-by: Stephen Henson <steve@openssl.org>
3 years agoevp/evp_enc.c: make assert error message more readable
Andy Polyakov [Mon, 25 Jul 2016 13:02:26 +0000 (15:02 +0200)]
evp/evp_enc.c: make assert error message more readable
and add EVPerr(PARTIALLY_OVERLAPPED)

Reviewed-by: Stephen Henson <steve@openssl.org>
3 years agoFix the docs too
Richard J. Moore [Sat, 30 Jul 2016 18:34:06 +0000 (19:34 +0100)]
Fix the docs too

Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1367)

3 years agoIgnore the serial number for now and just do the rest.
Richard J. Moore [Sat, 30 Jul 2016 17:36:16 +0000 (18:36 +0100)]
Ignore the serial number for now and just do the rest.

Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1367)

3 years agoMake some more X509 functions const.
Richard J. Moore [Sat, 30 Jul 2016 10:47:18 +0000 (11:47 +0100)]
Make some more X509 functions const.

Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1367)

3 years agorsa.c: fix incorrect guard for pvk-* options
Viktor Szakats [Sat, 30 Jul 2016 00:34:19 +0000 (02:34 +0200)]
rsa.c: fix incorrect guard for pvk-* options

This update syncs the #if guard protecting the pvk-* options
with the rest of the source handling those options. Also fix
some nearby whitespace.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1365)

3 years agoFix crash as a result of MULTIBLOCK
Matt Caswell [Mon, 25 Jul 2016 09:36:57 +0000 (10:36 +0100)]
Fix crash as a result of MULTIBLOCK

The MULTIBLOCK code uses a "jumbo" sized write buffer which it allocates
and then frees later. Pipelining however introduced multiple pipelines. It
keeps track of how many pipelines are initialised using numwpipes.
Unfortunately the MULTIBLOCK code was not updating this when in deallocated
its buffers, leading to a buffer being marked as initialised but set to
NULL.

RT#4618

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix bogus warnings
Matt Caswell [Sat, 30 Jul 2016 09:37:53 +0000 (10:37 +0100)]
Fix bogus warnings

Fix some bogus "may be used uninitialized" warnings on some compilers.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoprint out MAC algorithm
Dr. Stephen Henson [Fri, 22 Jul 2016 14:33:15 +0000 (15:33 +0100)]
print out MAC algorithm

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix CRL time comparison.
Dr. Stephen Henson [Fri, 29 Jul 2016 16:54:52 +0000 (17:54 +0100)]
Fix CRL time comparison.

Thanks to David Benjamin <davidben@google.com> for reporting this bug.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoUpdate the SSL_set_bio()/SSL_set0_rbio()/SSL_set0_wbio() docs
Matt Caswell [Fri, 22 Jul 2016 10:55:10 +0000 (11:55 +0100)]
Update the SSL_set_bio()/SSL_set0_rbio()/SSL_set0_wbio() docs

Update the documentation for the newly renamed and modified SSL_set0_rbio()
and SSL_set0_wbio() functions. State that they should be preferred over
SSL_set_bio(). Attempt to document the ownership rules for SSL_set_bio().

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoSimplify and rename SSL_set_rbio() and SSL_set_wbio()
Matt Caswell [Thu, 21 Jul 2016 11:17:29 +0000 (12:17 +0100)]
Simplify and rename SSL_set_rbio() and SSL_set_wbio()

SSL_set_rbio() and SSL_set_wbio() are new functions in 1.1.0 and really
should be called SSL_set0_rbio() and SSL_set0_wbio(). The old
implementation was not consistent with what "set0" means though as there
were special cases around what happens if the rbio and wbio are the same.
We were only ever taking one reference on the BIO, and checking everywhere
whether the rbio and wbio are the same so as not to double free.

A better approach is to rename the functions to SSL_set0_rbio() and
SSL_set0_wbio(). If an existing BIO is present it is *always* freed
regardless of whether the rbio and wbio are the same or not. It is
therefore the callers responsibility to ensure that a reference is taken
for *each* usage, i.e. one for the rbio and one for the wbio.

The legacy function SSL_set_bio() takes both the rbio and wbio in one go
and sets them both. We can wrap up the old behaviour in the implementation
of that function, i.e. previously if the rbio and wbio are the same in the
call to this function then the caller only needed to ensure one reference
was passed. This behaviour is retained by internally upping the ref count.

This commit was inspired by BoringSSL commit f715c423224.

RT#4572

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoAdd some SSL BIO tests
Matt Caswell [Thu, 21 Jul 2016 10:02:22 +0000 (11:02 +0100)]
Add some SSL BIO tests

This adds some simple SSL BIO tests that check for pushing and popping of
BIOs into the chain. These tests would have caught the bugs fixed in the
previous three commits, if combined with a crypto-mdebug build.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix BIO_pop for SSL BIOs
Matt Caswell [Thu, 21 Jul 2016 09:55:31 +0000 (10:55 +0100)]
Fix BIO_pop for SSL BIOs

The BIO_pop implementation assumes that the rbio still equals the next BIO
in the chain. While this would normally be the case, it is possible that it
could have been changed directly by the application. It also does not
properly cater for the scenario where the buffering BIO is still in place
for the write BIO.

Most of the existing BIO_pop code for SSL BIOs can be replaced by a single
call to SSL_set_bio(). This is equivalent to the existing code but
additionally handles the scenario where the rbio has been changed or the
buffering BIO is still in place.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoFix BIO_push ref counting for SSL BIO
Matt Caswell [Thu, 21 Jul 2016 09:48:12 +0000 (10:48 +0100)]
Fix BIO_push ref counting for SSL BIO

When pushing a BIO onto an SSL BIO we set the rbio and wbio for the SSL
object to be the BIO that has been pushed. Therefore we need to up the ref
count for that BIO. The existing code was uping the ref count on the wrong
BIO.

Reviewed-by: Rich Salz <rsalz@openssl.org>
3 years agoDon't double free the write bio
Matt Caswell [Thu, 21 Jul 2016 09:28:24 +0000 (10:28 +0100)]
Don't double free the write bio

When setting the read bio we free up any old existing one. However this can
lead to a double free if the existing one is the same as the write bio.

Reviewed-by: Rich Salz <rsalz@openssl.org>