oweals/openssl.git
9 years agoPrint debug info for extended master secret extension
Alessandro Ghedini [Thu, 17 Sep 2015 11:33:40 +0000 (13:33 +0200)]
Print debug info for extended master secret extension

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRT4053: Typo in error message
Michal Bozon [Mon, 28 Sep 2015 16:59:27 +0000 (12:59 -0400)]
RT4053: Typo in error message

Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove obsolete b64 demo's
Rich Salz [Fri, 25 Sep 2015 15:35:08 +0000 (11:35 -0400)]
Remove obsolete b64 demo's

Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoPACKET: simplify ServerHello parsing
Emilia Kasper [Fri, 18 Sep 2015 12:09:37 +0000 (14:09 +0200)]
PACKET: simplify ServerHello parsing

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoEmpty NewSessionTicket: test session resumption
Emilia Kasper [Wed, 16 Sep 2015 15:47:55 +0000 (17:47 +0200)]
Empty NewSessionTicket: test session resumption

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoEmpty session ticket: add a test
Emilia Kasper [Tue, 15 Sep 2015 10:06:12 +0000 (12:06 +0200)]
Empty session ticket: add a test

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoRT2772: accept empty SessionTicket
Emilia Kasper [Thu, 10 Sep 2015 14:32:51 +0000 (16:32 +0200)]
RT2772: accept empty SessionTicket

RFC 5077 section 3.3 says:
If the server determines that it does not want to include a
ticket after it has included the SessionTicket extension in the
ServerHello, then it sends a zero-length ticket in the
NewSessionTicket handshake message.

Previously the client would fail upon attempting to allocate a
zero-length buffer. Now, we have the client ignore the empty ticket and
keep the existing session.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoUpdate year in Windows builds.
Andy Polyakov [Sun, 27 Sep 2015 07:23:08 +0000 (09:23 +0200)]
Update year in Windows builds.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoHarmonize util/mkrc.pl with header move.
Andy Polyakov [Sat, 26 Sep 2015 18:20:38 +0000 (20:20 +0200)]
Harmonize util/mkrc.pl with header move.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoSRP memory leak fix
Dr. Stephen Henson [Sun, 20 Sep 2015 12:59:49 +0000 (13:59 +0100)]
SRP memory leak fix

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoSilence Wconditional-uninitialized
Emilia Kasper [Wed, 23 Sep 2015 17:57:42 +0000 (19:57 +0200)]
Silence Wconditional-uninitialized

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFixing typo in PROBLEMS
Jack Danger Canty [Wed, 23 Sep 2015 18:38:05 +0000 (11:38 -0700)]
Fixing typo in PROBLEMS

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoSkylake performance results.
Andy Polyakov [Fri, 25 Sep 2015 12:00:46 +0000 (14:00 +0200)]
Skylake performance results.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoGH408 follow-on: update buflen
Alessandro Ghedini [Fri, 25 Sep 2015 17:51:27 +0000 (13:51 -0400)]
GH408 follow-on: update buflen

Some builds break, as documented in:
  https://github.com/openssl/openssl/pull/408#issuecomment-142971427
This fixes it.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFix typo in previous commit.
Rich Salz [Fri, 25 Sep 2015 15:44:52 +0000 (11:44 -0400)]
Fix typo in previous commit.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoChange --debug to -d for compat with old releases.
Rich Salz [Fri, 25 Sep 2015 15:38:43 +0000 (11:38 -0400)]
Change --debug to -d for compat with old releases.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove obsolete OCSP demo
Rich Salz [Fri, 25 Sep 2015 15:32:45 +0000 (11:32 -0400)]
Remove obsolete OCSP demo

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
9 years agoChange ossltest engine to manually allocate cipher_data
Matt Caswell [Tue, 22 Sep 2015 07:54:43 +0000 (08:54 +0100)]
Change ossltest engine to manually allocate cipher_data

The ossltest engine wraps the built-in implementation of aes128-cbc.
Normally in an engine the cipher_data structure is automatically allocated
by the EVP layer. However this relies on the engine specifying up front
the size of that cipher_data structure. In the case of ossltest this value
isn't available at compile time. This change makes the ossltest engine
allocate its own cipher_data structure instead of leaving it to the EVP
layer.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoProperly format linux-arm64ilp32 target config
Alessandro Ghedini [Fri, 25 Sep 2015 13:11:43 +0000 (15:11 +0200)]
Properly format linux-arm64ilp32 target config

Otherwise the ./config script fails with errors like:

> Operating system: x86_64-whatever-linux2
> This system (linux-x86_64) is not supported. See file INSTALL for details.

The failure was introduced by a93d3e0.

RT#4062

Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFix the OCSP test on Windows
Matt Caswell [Tue, 22 Sep 2015 15:02:50 +0000 (16:02 +0100)]
Fix the OCSP test on Windows

The windows test uses the pseudo file "nul" to indicate no file for the
-CApath option. This does not work on all versions of Windows. Instead use
the new -no-CApath option.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoDocument -no-CApath and -no-CAfile
Matt Caswell [Tue, 22 Sep 2015 18:43:59 +0000 (19:43 +0100)]
Document -no-CApath and -no-CAfile

Add documentation to all the appropriate apps for the new -no-CApath and
-no-CAfile options.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoAdd support for -no-CApath and -no-CAfile options
Matt Caswell [Tue, 22 Sep 2015 15:00:52 +0000 (16:00 +0100)]
Add support for -no-CApath and -no-CAfile options

For those command line options that take the verification options
-CApath and -CAfile, if those options are absent then the default path or
file is used instead. It is not currently possible to specify *no* path or
file at all. This change adds the options -no-CApath and -no-CAfile to
specify that the default locations should not be used to all relevant
applications.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoDocument the default CA path functions
Matt Caswell [Tue, 22 Sep 2015 16:05:17 +0000 (17:05 +0100)]
Document the default CA path functions

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoAdd ability to set default CA path and file locations individually
Matt Caswell [Tue, 22 Sep 2015 15:50:32 +0000 (16:50 +0100)]
Add ability to set default CA path and file locations individually

Previously you could only set both the default path and file locations
together. This adds the ability to set one without the other.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoConfigurations: add linux-arm64ilp32 target.
Andy Polyakov [Wed, 23 Sep 2015 14:43:55 +0000 (16:43 +0200)]
Configurations: add linux-arm64ilp32 target.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAllow ILP32 compilation in AArch64 assembly pack.
Andy Polyakov [Mon, 21 Sep 2015 14:44:37 +0000 (16:44 +0200)]
Allow ILP32 compilation in AArch64 assembly pack.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoARMv4 assembly pack: implement support for Thumb2.
Andy Polyakov [Wed, 23 Sep 2015 16:41:27 +0000 (18:41 +0200)]
ARMv4 assembly pack: implement support for Thumb2.

As some of ARM processors, more specifically Cortex-Mx series, are
Thumb2-only, we need to support Thumb2-only builds even in assembly.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agofix compilation on Solaris
Vladimir Kotal [Mon, 21 Sep 2015 19:07:28 +0000 (21:07 +0200)]
fix compilation on Solaris

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRestore the old interactive prompt.
Rich Salz [Mon, 7 Sep 2015 13:42:05 +0000 (09:42 -0400)]
Restore the old interactive prompt.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoSanity check cookie_len
Matt Caswell [Wed, 23 Sep 2015 11:57:34 +0000 (12:57 +0100)]
Sanity check cookie_len

Add a sanity check that the cookie_len returned by app_gen_cookie_cb is
valid.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoClarify DTLSv1_listen documentation
Matt Caswell [Wed, 23 Sep 2015 11:40:09 +0000 (12:40 +0100)]
Clarify DTLSv1_listen documentation

Clarify that user code is required to allocate sufficient space for the
addressing scheme in use in the call to DTLSv1_listen.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoFix s_server DTLSv1_listen issues
Matt Caswell [Wed, 23 Sep 2015 09:02:18 +0000 (10:02 +0100)]
Fix s_server DTLSv1_listen issues

Use sockaddr_storage not sockaddr for the client IP address to allow for
IPv6.
Also fixed a section of code which was conditional on OPENSSL_NO_DTLS1
which should not have been.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoAdd DTLSv1_listen documentation
Matt Caswell [Fri, 10 Apr 2015 13:05:19 +0000 (14:05 +0100)]
Add DTLSv1_listen documentation

Adds a new man page to cover the DTLSv1_listen() function.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoAdd -listen documentation
Matt Caswell [Fri, 10 Apr 2015 12:10:05 +0000 (13:10 +0100)]
Add -listen documentation

This commit adds documentation for the new -listen option to s_server. Along
the way it also adds documentation for -dtls, -dtls1 and -dtls1_2 which was
missing.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoAdd support for DTLSv1_listen in s_server
Matt Caswell [Thu, 9 Apr 2015 09:01:05 +0000 (10:01 +0100)]
Add support for DTLSv1_listen in s_server

DTLSv1_listen is a commonly used function within DTLS solutions for
listening for new incoming connections. This commit adds support to s_server
for using it.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoRemove remaining old listen code
Matt Caswell [Thu, 9 Apr 2015 22:31:35 +0000 (23:31 +0100)]
Remove remaining old listen code

The old implementation of DTLSv1_listen which has now been replaced still
had a few vestiges scattered throughout the code. This commit removes them.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoDTLSv1_listen rewrite
Matt Caswell [Mon, 14 Sep 2015 21:49:35 +0000 (22:49 +0100)]
DTLSv1_listen rewrite

The existing implementation of DTLSv1_listen() is fundamentally flawed. This
function is used in DTLS solutions to listen for new incoming connections
from DTLS clients. A client will send an initial ClientHello. The server
will respond with a HelloVerifyRequest containing a unique cookie. The
client the responds with a second ClientHello - which this time contains the
cookie.

Once the cookie has been verified then DTLSv1_listen() returns to user code,
which is typically expected to continue the handshake with a call to (for
example) SSL_accept().

Whilst listening for incoming ClientHellos, the underlying BIO is usually in
an unconnected state. Therefore ClientHellos can come in from *any* peer.
The arrival of the first ClientHello without the cookie, and the second one
with it, could be interspersed with other intervening messages from
different clients.

The whole purpose of this mechanism is as a defence against DoS attacks. The
idea is to avoid allocating state on the server until the client has
verified that it is capable of receiving messages at the address it claims
to come from. However the existing DTLSv1_listen() implementation completely
fails to do this. It attempts to super-impose itself on the standard state
machine and reuses all of this code. However the standard state machine
expects to operate in a stateful manner with a single client, and this can
cause various problems.

A second more minor issue is that the return codes from this function are
quite confused, with no distinction made between fatal and non-fatal errors.
Most user code treats all errors as non-fatal, and simply retries the call
to DTLSv1_listen().

This commit completely rewrites the implementation of DTLSv1_listen() and
provides a stand alone implementation that does not rely on the existing
state machine. It also provides more consistent return codes.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoAdd BIO_CTRL_DGRAM_SET_PEEK_MODE
Matt Caswell [Mon, 14 Sep 2015 21:36:04 +0000 (22:36 +0100)]
Add BIO_CTRL_DGRAM_SET_PEEK_MODE

Add the ability to peek at a message from the DTLS read BIO. This is needed
for the DTLSv1_listen rewrite.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoFix the rehash test on Windows
Matt Caswell [Tue, 22 Sep 2015 14:16:29 +0000 (15:16 +0100)]
Fix the rehash test on Windows

The openssl rehash command is not available on some platforms including
Windows. This change skips the associated tests if rehash is not available.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agomake update
Dr. Stephen Henson [Tue, 22 Sep 2015 16:09:11 +0000 (17:09 +0100)]
make update

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoheader includes
Dr. Stephen Henson [Tue, 22 Sep 2015 14:23:05 +0000 (15:23 +0100)]
header includes

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoDocument X509_get0_subject_key_id()
Dr. Stephen Henson [Tue, 22 Sep 2015 17:51:47 +0000 (18:51 +0100)]
Document X509_get0_subject_key_id()

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoNew function X509_get0_subject_key_id()
Dr. Stephen Henson [Tue, 22 Sep 2015 14:19:32 +0000 (15:19 +0100)]
New function X509_get0_subject_key_id()

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoMake X509 opaque
Dr. Stephen Henson [Tue, 22 Sep 2015 13:00:13 +0000 (14:00 +0100)]
Make X509 opaque

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAvoid structure access in crypto/ts
Dr. Stephen Henson [Tue, 22 Sep 2015 17:37:57 +0000 (18:37 +0100)]
Avoid structure access in crypto/ts

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoPACKET: simplify
Emilia Kasper [Thu, 17 Sep 2015 19:28:07 +0000 (21:28 +0200)]
PACKET: simplify

Get rid of the third field that is no longer needed.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoRemove ssl_put_cipher_by_char
Emilia Kasper [Fri, 18 Sep 2015 13:00:37 +0000 (15:00 +0200)]
Remove ssl_put_cipher_by_char

Since SSLv3, a CipherSuite is always 2 bytes. The only place where we
need 3-byte ciphers is SSLv2-compatible ClientHello processing.

So, remove the ssl_put_cipher_by_char indirection.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoDocument BUF_strnlen
Emilia Kasper [Thu, 17 Sep 2015 11:55:09 +0000 (13:55 +0200)]
Document BUF_strnlen

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoBUF_strdup and friends: update docs
Emilia Kasper [Thu, 17 Sep 2015 11:50:34 +0000 (13:50 +0200)]
BUF_strdup and friends: update docs

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoBUF_strndup: tidy
Emilia Kasper [Thu, 17 Sep 2015 11:27:05 +0000 (13:27 +0200)]
BUF_strndup: tidy

Fix comment, add another overflow check, tidy style

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoMake BUF_strndup() read-safe on arbitrary inputs
Alessandro Ghedini [Wed, 16 Sep 2015 15:54:05 +0000 (17:54 +0200)]
Make BUF_strndup() read-safe on arbitrary inputs

BUF_strndup was calling strlen through BUF_strlcpy, and ended up reading
past the input if the input was not a C string.

Make it explicitly part of BUF_strndup's contract to never read more
than |siz| input bytes. This augments the standard strndup contract to
be safer.

The commit also adds a check for siz overflow and some brief documentation
for BUF_strndup().

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoGH398: Add mingw cross-compile, etc.
Rich Salz [Mon, 21 Sep 2015 23:54:36 +0000 (19:54 -0400)]
GH398: Add mingw cross-compile, etc.

For all release branches.  It adds travis build support. If you don't
have a config file it uses the default (because we enabled travis for the
project), which uses ruby/rake/rakefiles, and you get confusing "build
still failing" messages.

Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoFix path in comments
Dr. Stephen Henson [Tue, 22 Sep 2015 15:47:09 +0000 (16:47 +0100)]
Fix path in comments

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agomake depend
Dr. Stephen Henson [Tue, 22 Sep 2015 15:37:07 +0000 (16:37 +0100)]
make depend

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoMove certificate request and CRL routines to x509 dir.
Dr. Stephen Henson [Tue, 22 Sep 2015 15:20:09 +0000 (16:20 +0100)]
Move certificate request and CRL routines to x509 dir.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoMove functions.
Dr. Stephen Henson [Tue, 22 Sep 2015 15:05:33 +0000 (16:05 +0100)]
Move functions.

Move various functions tagged onto t_x509.c to more appropriate places.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoUpdate SEE ALSO sections.
Dr. Stephen Henson [Mon, 21 Sep 2015 20:25:52 +0000 (21:25 +0100)]
Update SEE ALSO sections.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument signature accessors.
Dr. Stephen Henson [Mon, 21 Sep 2015 12:03:42 +0000 (13:03 +0100)]
Document signature accessors.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoExtension parsing and encoding docs.
Dr. Stephen Henson [Fri, 4 Jul 2014 22:03:17 +0000 (23:03 +0100)]
Extension parsing and encoding docs.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument i2d_re_X509_REQ_tbs() and i2d_re_X509_CRL_tbs().
Dr. Stephen Henson [Fri, 18 Sep 2015 19:51:02 +0000 (20:51 +0100)]
Document i2d_re_X509_REQ_tbs() and i2d_re_X509_CRL_tbs().

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument X509_REVOKED functions.
Dr. Stephen Henson [Wed, 9 Sep 2015 21:07:24 +0000 (22:07 +0100)]
Document X509_REVOKED functions.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument X509 sign and verify functions.
Dr. Stephen Henson [Mon, 7 Sep 2015 13:27:58 +0000 (14:27 +0100)]
Document X509 sign and verify functions.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument X509 public key functions.
Dr. Stephen Henson [Mon, 7 Sep 2015 12:41:20 +0000 (13:41 +0100)]
Document X509 public key functions.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument X509 name get and set functions.
Dr. Stephen Henson [Sun, 6 Sep 2015 12:43:23 +0000 (13:43 +0100)]
Document X509 name get and set functions.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoDocument X509 version functions.
Dr. Stephen Henson [Sun, 6 Sep 2015 11:48:22 +0000 (12:48 +0100)]
Document X509 version functions.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoUse accessors in X509_REQ_print().
Dr. Stephen Henson [Fri, 18 Sep 2015 01:54:59 +0000 (02:54 +0100)]
Use accessors in X509_REQ_print().

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoUse accessor functions in X509_CRL_print().
Dr. Stephen Henson [Fri, 18 Sep 2015 01:38:49 +0000 (02:38 +0100)]
Use accessor functions in X509_CRL_print().

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoNew accessor X509_REQ_get_X509_PUBKEY()
Dr. Stephen Henson [Fri, 18 Sep 2015 02:06:55 +0000 (03:06 +0100)]
New accessor X509_REQ_get_X509_PUBKEY()

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoAdditional X509_CRL accessors.
Dr. Stephen Henson [Fri, 18 Sep 2015 01:39:44 +0000 (02:39 +0100)]
Additional X509_CRL accessors.

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agotypo
Dr. Stephen Henson [Tue, 22 Sep 2015 12:00:03 +0000 (13:00 +0100)]
typo

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoAdd comments to x509_int.h
Dr. Stephen Henson [Thu, 10 Sep 2015 23:06:37 +0000 (00:06 +0100)]
Add comments to x509_int.h

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoAdd accessors for X509_REVOKED.
Dr. Stephen Henson [Mon, 7 Sep 2015 22:32:58 +0000 (23:32 +0100)]
Add accessors for X509_REVOKED.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoAdd accessors for request and CRL signatures
Dr. Stephen Henson [Mon, 7 Sep 2015 15:51:05 +0000 (16:51 +0100)]
Add accessors for request and CRL signatures

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoRemove "noise" comments from TS files.
Rich Salz [Fri, 8 May 2015 03:41:07 +0000 (23:41 -0400)]
Remove "noise" comments from TS files.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRT3479: Add UTF8 support to BIO_read_filename()
David Woodhouse [Wed, 9 Sep 2015 19:49:01 +0000 (15:49 -0400)]
RT3479: Add UTF8 support to BIO_read_filename()

If we use BIO_new_file(), on Windows it'll jump through hoops to work
around their unusual charset/Unicode handling. it'll convert a UTF-8
filename to UCS-16LE and attempt to use _wfopen().

If you use BIO_read_filename(), it doesn't do this. Shouldn't it be
consistent?

It would certainly be nice if SSL_use_certificate_chain_file() worked.

Also made BIO_C_SET_FILENAME work (rsalz)

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Andy Polyakov <appro@openssl.org>
9 years agoRT3823: Improve the robustness of event logging
Gunnar Kudrjavets [Mon, 27 Apr 2015 18:14:45 +0000 (11:14 -0700)]
RT3823: Improve the robustness of event logging

There are a couple of minor fixes here:

1) Handle the case when RegisterEventSource() fails (which it may for
various reasons) and do the work of logging the event only if it succeeds.

2) Handle the case when ReportEvent() fails and do our best in debug builds
to at least attempt somehow indicate that something has gone wrong. The
typical situation would be someone running tools like DbMon, DBWin32,
DebugView or just having the debugger attached. The intent is to make sure
that at least some data will be captured so that we can save hours and days
of debugging time.

3) Minor fix to change the MessageBox() flag to MB_ICONERROR. Though the
value of MB_ICONERROR is the same value as MB_ICONSTOP, the intent is
better conveyed by using MB_ICONERROR.

Testing performed:

1) Clean compilation for debug-VC-WIN32 and VC-WIN32.

2) Good test results (nmake -f ms\ntdll.mak test) for debug-VC-WIN32 and
VC-WIN32.

3) Stepped through relevant changes using WinDBG and exercised the impacted
code paths.

Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoGOST PKCS12 support
Matt Caswell [Wed, 2 Sep 2015 10:27:31 +0000 (11:27 +0100)]
GOST PKCS12 support

Changes required to add GOST support to PKCS12

Based on a patch provided by Dmitry Belyavsky <beldmit@gmail.com>

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoAdd GOST extensions to PKCS#5
Matt Caswell [Wed, 2 Sep 2015 09:55:57 +0000 (10:55 +0100)]
Add GOST extensions to PKCS#5

GOST extends PKCS5 PBES2/PBKDF2 with some additional GOST specific PRFs.

Based on a patch provided by Dmitry Belyavsky <beldmit@gmail.com>

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoFix SRP memory leaks
Matt Caswell [Wed, 16 Sep 2015 09:24:37 +0000 (10:24 +0100)]
Fix SRP memory leaks

There were some memory leaks in the creation of an SRP verifier (both on
successful completion and also on some error paths).

Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoFix -srpvfile option in srp command line
Matt Caswell [Wed, 16 Sep 2015 08:50:33 +0000 (09:50 +0100)]
Fix -srpvfile option in srp command line

The -srpvfile option was broken in the srp command line app. Using it would
always result in "-dbfile and -configfile cannot be specified together."
The error message is also wrong because the option is "-srpvfile" not
"-dbfile", so that has been fixed too.

Reviewed-by: Emilia Käsper <emilia@openssl.org>
9 years agoMake SRP work with -www
Dr. Stephen Henson [Sat, 12 Sep 2015 01:37:48 +0000 (02:37 +0100)]
Make SRP work with -www

PR#3817

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoHandle SSL_ERROR_WANT_X509_LOOKUP
Dr. Stephen Henson [Sun, 13 Sep 2015 18:04:58 +0000 (19:04 +0100)]
Handle SSL_ERROR_WANT_X509_LOOKUP

Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoremove unneeded includes
Dr. Stephen Henson [Sun, 20 Sep 2015 11:48:29 +0000 (12:48 +0100)]
remove unneeded includes

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agomake no-dh work
Dr. Stephen Henson [Sat, 19 Sep 2015 21:03:15 +0000 (22:03 +0100)]
make no-dh work

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoMove EVP_PKEY_METHOD into private headers.
Dr. Stephen Henson [Sat, 19 Sep 2015 21:13:22 +0000 (22:13 +0100)]
Move EVP_PKEY_METHOD into private headers.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoSimplify Simple.pm further, and make it more verbose
Richard Levitte [Sun, 20 Sep 2015 00:15:49 +0000 (02:15 +0200)]
Simplify Simple.pm further, and make it more verbose

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoCorrect srp test
Richard Levitte [Sun, 20 Sep 2015 00:05:35 +0000 (02:05 +0200)]
Correct srp test

There actually is a "srp" feature to check the availability on

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoCorrect jpake test
Richard Levitte [Sun, 20 Sep 2015 00:04:47 +0000 (02:04 +0200)]
Correct jpake test

There actually is a "jpake" feature to check the availability on

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoCorrect sha tests
Richard Levitte [Sun, 20 Sep 2015 00:03:19 +0000 (02:03 +0200)]
Correct sha tests

These tests were checking for specific sha variants, when they should
just check if "sha" is disabled.

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoCorrect whirlpool test
Richard Levitte [Sat, 19 Sep 2015 22:34:16 +0000 (00:34 +0200)]
Correct whirlpool test

It depended on 'openssl no-wp', which always exited with code 0, so
this test would never be performed, and this, I never discovered that
the program it's supposed to run was misspellt.  Furthermore, the
feature to check is 'whirlpool', not 'wp'.

All corrected.

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoFinally, remove a possibly disabled feature
Richard Levitte [Sat, 19 Sep 2015 23:50:11 +0000 (01:50 +0200)]
Finally, remove a possibly disabled feature

I have no clue why MD_GHOST94 was checked on, there is no
OPENSSL_NO_MD_GHOST94 in sight anywhere

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoAdd more features that may be disabled
Richard Levitte [Sat, 19 Sep 2015 23:42:14 +0000 (01:42 +0200)]
Add more features that may be disabled

Have a look at the directories in crypto/, I found reason to add
checks on CMAC and HMAC.  This might be completely irrelevant, but I
prefered covering too much than not enough.

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoAdd more features that may be disabled
Richard Levitte [Sat, 19 Sep 2015 23:31:47 +0000 (01:31 +0200)]
Add more features that may be disabled

A grep of OPENSSL_NO_ in the rest of the source tree revealed a few
more features to check.

NOTE: there are some of those macros that I ignore because a check of
them doesn't seem useful to external apps.  This might change later on.

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoAdd more features that may be disabled
Richard Levitte [Sat, 19 Sep 2015 22:54:03 +0000 (00:54 +0200)]
Add more features that may be disabled

After a grep of OPENSSL_NO_ in apps/*.c, a few more features that may
be interesting to check the availability of came up.

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoAdd more features that may be disabled
Richard Levitte [Sat, 19 Sep 2015 22:26:14 +0000 (00:26 +0200)]
Add more features that may be disabled

I've tried to make this list as complete as possible, based on
information found in apps/progs.pl.

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agoSort the disabled features alphabetically
Richard Levitte [Sat, 19 Sep 2015 22:25:14 +0000 (00:25 +0200)]
Sort the disabled features alphabetically

Reviewed-by: Stephen Henson <steve@openssl.org>
9 years agotypo
Dr. Stephen Henson [Sat, 19 Sep 2015 22:50:02 +0000 (23:50 +0100)]
typo

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoUpdate Simple.pm to use disabled()
Dr. Stephen Henson [Sat, 19 Sep 2015 22:49:26 +0000 (23:49 +0100)]
Update Simple.pm to use disabled()

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoChange test recipes to use disabled()
Dr. Stephen Henson [Sat, 19 Sep 2015 21:19:14 +0000 (22:19 +0100)]
Change test recipes to use disabled()

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoAdd Utils.pm
Dr. Stephen Henson [Sat, 19 Sep 2015 16:10:34 +0000 (17:10 +0100)]
Add Utils.pm

Add Utils.pm for test utilities. This currently just contains one function:
disabled which checks if a feature is disabled based on the output of
openssl list -disabled

Reviewed-by: Richard Levitte <levitte@openssl.org>