psk_client_callback, 128-byte id bug.

Fix a bug in handling of 128 byte long PSK identity in
psk_client_callback.

OpenSSL supports PSK identities of up to (and including) 128 bytes in
length. PSK identity is obtained via the psk_client_callback,
implementors of which are expected to provide a NULL-terminated
identity. However, the callback is invoked with only 128 bytes of
storage thus making it impossible to return a 128 byte long identity and
the required additional NULL byte.

This CL fixes the issue by passing in a 129 byte long buffer into the
psk_client_callback. As a safety precaution, this CL also zeroes out the
buffer before passing it into the callback, uses strnlen for obtaining
the length of the identity returned by the callback, and aborts the
handshake if the identity (without the NULL terminator) is longer than
128 bytes.

(Original patch amended to achieve strnlen in a different way.)

Reviewed-by: Rich Salz <rsalz@openssl.org>
sync ordinals with 1.0.2

Reviewed-by: Tim Hudson <tjh@openssl.org>
Add CHANGES entry for SCT viewer code.

Reviewed-by: Emilia Käsper <emilia@openssl.org>
Add i2d_re_X509_tbs

i2d_re_X509_tbs re-encodes the TBS portion of the certificate.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Dr Stephen Henson <steve@openssl.org>
make update

Reviewed-by: Dr Stephen Henson <steve@openssl.org>
Add cscope.out and .d files to .gitignore

cscope.out is generated by cscope as described in:
http://wiki.openssl.org/index.php/Testing_and_Development_Tools_and_Tips

.d files are compiler-generated Makefile dependency files (e.g. using
'gcc -MMD -MP foo.c').

Signed-off-by: Mike Bland <mbland@acm.org>
Emit PERLASM_SCHEME to fix GitMake on OS X

This fixes the errors when trying to assemble .s files using GitMake on OS X.

Signed-off-by: Mike Bland <mbland@acm.org>
{,darwin64-}debug-test-64-clang Configure targets

These are based on debug-ben-debug-64-clang and is intended to produce
consistent settings for folks involved in the unit testing effort detailed at:

http://wiki.openssl.org/index.php/Unit_Testing

-fsanitize has been removed from the set of clang flags for now. Apparently
clang 3.1, which ships with FreeBSD 9.1, completely ignores -fsanitize. Clang
3.3, which ships with FreeBSD 9.2, compiles with it, but fails to link due to
the absence of libasan:

http://lists.freebsd.org/pipermail/freebsd-hackers/2013-December/043995.html
https://www.mail-archive.com/cfe-commits@cs.uiuc.edu/msg92260.html
http://reviews.llvm.org/D2644

We need -Wno-error=unused-const-variable because of this error:
.../crypto/ec/ec_lib.c:74:19: error: unused variable 'EC_version' [-Werror,-Wunused-const-variable]
static const char EC_version[] = "EC" OPENSSL_VERSION_PTEXT;

Signed-off-by: Mike Bland <mbland@acm.org>
Improve variable parsing when generating MINFO

Before this change, variables for which a '=' appeared in the assignment would
be parsed as the entire string up until the final '='. For example:

  BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \

would result in the variable name "BUILD_CMD=shlib_target". This doesn't
appear to harm the current generation of MINFO, but creates problems for other
Makefile-related work I'm attempting.

Signed-off-by: Mike Bland <mbland@acm.org>
Remove redundant test targets outside of test/

These correspond to targets of the same name in test/Makefile that clash when
using the single-makefile build method using GitConfigure and GitMake.

Signed-off-by: Mike Bland <mbland@acm.org>
Add missing SRC variable

This is the only Makefile without SRC defined. This change enables a
standard Makefile include directive to cover crypto/jpake/*.d files.

This was automatically applied by AddSrcVarIfNeeded() in:
https://code.google.com/p/mike-bland/source/browse/openssl/update_makefiles.py

Signed-off-by: Mike Bland <mbland@acm.org>
Add whrlpool and camellia .s files to perlasm list

Signed-off-by: Mike Bland <mbland@acm.org>
Fix CC in FIPS_BUILD_CMD and FIPS_CRYPTO_BUILD_CMD

This should have been $(CC) all along; removing $(BUILDENV) from the
make invocation causes ${{CC}} to be empty, triggering a build failure as
LDCMD (in Makefile.shared) receives no value.

Signed-off-by: Mike Bland <mbland@acm.org>
Fix mk1mf.pl rule generation for asm files

Before this change, the mk1mf.pl script only emitted incorrect rules for a
number of asm files, due to a combination of incomplete/incorrect pattern
matching (in the foreach block at line 1200 in the original) and missing
fix_asm() calls in 'copy' mode (line 909 in the original).

In the original, rules were emitted for files which appeared in the
lower-level Makefile variable definitions, regardless of the values defined in
the top-level Makefile. Now rules are emitted only for the top-level Makefile
values.

fix_asm() also now correctly handles the case where the asm variable is empty,
rather than causing a failure.

I noticed the problem during the course of my build system refactoring
experiments, while examining the makefile generated by GitConfigure in a clean
branch against one generated in my experimental branch. I used the same method
to verify that this change works as expected.

Signed-off-by: Mike Bland <mbland@acm.org>
Remove spurious extra target from tools/Makefile

Signed-off-by: Mike Bland <mbland@acm.org>
Add .d files to 'make clean' targets

This was automatically applied by AddDependencyFilesToCleanTargets() in:
https://code.google.com/p/mike-bland/source/browse/openssl/update_makefiles.py

Signed-off-by: Mike Bland <mbland@acm.org>
Configure dependency-generating compiler flags

This is in anticipation of removing support for makedepend, as per:

http://marc.info/?t=140420825100001&r=1&w=2
https://groups.google.com/forum/#!topic/mailing.openssl.dev/m9XDCpmzWAg

Signed-off-by: Mike Bland <mbland@acm.org>
Create process_makefile() function

This preserves existing behavior, but anticipates the addition of a
configure.mk.org file that will contain common build variables that will be
included in GNU- and BSD-specific Makefiles. Consequently, this code will be
updated again to accommodate configure.mk once it appears.

Signed-off-by: Mike Bland <mbland@acm.org>
Extract import_top_level_vars() function

This preserves existing behavior, and is in preparation for importing
variables from a top-level configure.mk file as well.

Signed-off-by: Mike Bland <mbland@acm.org>
Generate configure.mk during Configure

configure.mk.org contains the build variables shared betweeen GNU- and
BSD-specific Makefiles that are set by Configure. Many are defined according
to the value of BUILDENV in Makefile.org.

Signed-off-by: Mike Bland <mbland@acm.org>