summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-05-03Tru64 fixes.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Drop duplicate ctx->verify_cb assignmentViktor Dukhovni
The right variant is ~18 lines below. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-05-03Update Diffie-Hellman parameters to IANA standardsChristian Bundy
This replaces the old SKIP primes with the most current Diffie-Hellman MODP groups defined by RFC 7296 and RFC 3526. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from GitHub https://github.com/openssl/openssl/pull/775)
2016-05-03Update CHANGES and NEWS for the new releaseMatt Caswell
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Check that we have enough padding characters.Kurt Roeckx
Reviewed-by: Emilia Käsper <emilia@openssl.org> CVE-2016-2107 MR: #2572
2016-05-03Add ASN.1 INTEGER tests.Dr. Stephen Henson
Add tests for ASN.1 INTEGER: invalid tag, valid 0, 1, -1 and 0, -1 with illegal padding. Also add ASN1_ANY tests for 0, 1 and -1. Reviewed-by: Emilia Käsper <emilia@openssl.org>
2016-05-03add ASN1_INTEGER type to d2i_testDr. Stephen Henson
Reviewed-by: Emilia Käsper <emilia@openssl.org>
2016-05-03Add test for CVE-2016-2018Dr. Stephen Henson
Reviewed-by: Emilia Käsper <emilia@openssl.org>
2016-05-03Fix ASN1_INTEGER handling.Dr. Stephen Henson
Only treat an ASN1_ANY type as an integer if it has the V_ASN1_INTEGER tag: V_ASN1_NEG_INTEGER is an internal only value which is never used for on the wire encoding. Thanks to David Benjamin <davidben@google.com> for reporting this bug. This was found using libFuzzer. RT#4364 (part)CVE-2016-2108. Reviewed-by: Emilia Käsper <emilia@openssl.org>
2016-05-03Add documentation for EVP_EncodeInit() and similar functionsMatt Caswell
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Ensure EVP_EncodeUpdate handles an output length that is too longMatt Caswell
With the EVP_EncodeUpdate function it is the caller's responsibility to determine how big the output buffer should be. The function writes the amount actually used to |*outl|. However this could go negative with a sufficiently large value for |inl|. We add a check for this error condition. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Avoid overflow in EVP_EncodeUpdateMatt Caswell
An overflow can occur in the EVP_EncodeUpdate function which is used for Base64 encoding of binary data. If an attacker is able to supply very large amounts of input data then a length check can overflow resulting in a heap corruption. Due to the very large amounts of data involved this will most likely result in a crash. Internally to OpenSSL the EVP_EncodeUpdate function is primarly used by the PEM_write_bio* family of functions. These are mainly used within the OpenSSL command line applications, so any application which processes data from an untrusted source and outputs it as a PEM file should be considered vulnerable to this issue. User applications that call these APIs directly with large amounts of untrusted data may also be vulnerable. Issue reported by Guido Vranken. CVE-2016-2105 Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Properly own the duplicated stringDmitry-Me
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Improve commentDmitry-Me
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-03Try 'make install' with one of the Travis configurationsRichard Levitte
Reviewed-by: Matt Caswell <matt@openssl.org>
2016-05-03Prevent EBCDIC overread for very long stringsMatt Caswell
ASN1 Strings that are over 1024 bytes can cause an overread in applications using the X509_NAME_oneline() function on EBCDIC systems. This could result in arbitrary stack data being returned in the buffer. Issue reported by Guido Vranken. CVE-2016-2176 Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-05-03Fix encrypt overflowMatt Caswell
An overflow can occur in the EVP_EncryptUpdate function. If an attacker is able to supply very large amounts of input data after a previous call to EVP_EncryptUpdate with a partial block then a length check can overflow resulting in a heap corruption. Following an analysis of all OpenSSL internal usage of the EVP_EncryptUpdate function all usage is one of two forms. The first form is like this: EVP_EncryptInit() EVP_EncryptUpdate() i.e. where the EVP_EncryptUpdate() call is known to be the first called function after an EVP_EncryptInit(), and therefore that specific call must be safe. The second form is where the length passed to EVP_EncryptUpdate() can be seen from the code to be some small value and therefore there is no possibility of an overflow. Since all instances are one of these two forms, I believe that there can be no overflows in internal code due to this problem. It should be noted that EVP_DecryptUpdate() can call EVP_EncryptUpdate() in certain code paths. Also EVP_CipherUpdate() is a synonym for EVP_EncryptUpdate(). Therefore I have checked all instances of these calls too, and came to the same conclusion, i.e. there are no instances in internal usage where an overflow could occur. This could still represent a security issue for end user code that calls this function directly. CVE-2016-2106 Issue reported by Guido Vranken. Reviewed-by: Tim Hudson <tjh@openssl.org>
2016-05-02Fix i2d_X509_AUX: pp can be NULL.Dr. Stephen Henson
Reported by David Benjamin Reviewed-by: Emilia Käsper <emilia@openssl.org>
2016-05-02GH875: Document -no_check_timeRich Salz
Date: Tue Mar 15 15:19:44 2016 +0100 This commit updates the documentation of cms, ocsp, s_client, s_server, and verify to reflect the new "-no_check_time" option introduced in commit d35ff2c0ade0a12e84aaa2e9841b4983a2f3cf45 on 2015-07-31. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-02Remove confusing comment.TJ Saunders
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-02Issue #719:TJ Saunders
If no serverinfo extension is found in some cases, do not abort the handshake, but simply omit/skip that extension. Check for already-registered serverinfo callbacks during serverinfo registration. Update SSL_CTX_use_serverinfo() documentation to mention the need to reload the same serverinfo per certificate, for servers with multiple server certificates. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-02Document the addition of OPENSSL_LOCAL_CONFIG_DIRRichard Levitte
Reviewed-by: Stephen Henson <steve@openssl.org>
2016-05-02Add the possibility for local build file templatesRichard Levitte
Use the environment variable OPENSSL_LOCAL_CONFIG_DIR to find build file templates as well. Reviewed-by: Stephen Henson <steve@openssl.org>
2016-05-02Add the possibility to have an extra local OpenSSL configs directoryRichard Levitte
The environment variable OPENSSL_LOCAL_CONFIG_DIR is used to indicate that there's a local directory with extra configuration files. Reviewed-by: Stephen Henson <steve@openssl.org>
2016-05-02Remove personal configs from version controlRichard Levitte
As per a team decision back in 2014. Reviewed-by: Stephen Henson <steve@openssl.org>
2016-05-02Secure memory fixesTodd Short
Fix some of the variables to be (s)size_t, so that more than 1GB of secure memory can be allocated. The arena has to be a power of 2, and 2GB fails because it ends up being a negative 32-bit signed number. The |too_late| flag is not strictly necessary; it is easy to figure out if something is secure memory by looking at the arena. As before, secure memory allocations will not fail, but now they can be freed correctly. Once initialized, secure memory can still be used, even if allocations occured before initialization. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-02ssl/record/rec_layer_s3.c: fix typo from previous commit.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-02Handle multi-line "written by/for" comments.Rich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-02Android build fixes.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-02Remove obsolete defined(__INTEL__) condition.Andy Polyakov
This macro was defined by no-longer-supported __MWERKS__ compiler. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-02chacha/asm/chacha-x86.pl: make it compile on legacy systems.Andy Polyakov
Usage of $ymm variable is a bit misleading here, it doesn't refer to %ymm register bank, but rather to VEX instruction encoding, which AMD XOP code path depends on. Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-01Fix spelling in pod filesFdaSilvaYY
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-01make updateRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-01Add the adjusted perl scripts to the set of "update" scriptsRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-01Adjust a last few generators to new license boilerplate and C code styleRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-05-01Skip blank lines if old copyright comment was removed, and only thenRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Fix some X509_STORE macrosMatt Caswell
Some X509_STORE macros do not work since the type was made opaque. Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
2016-04-29Add checks to X509_NAME_oneline()Dr. Stephen Henson
Sanity check field lengths and sums to avoid potential overflows and reject excessively large X509_NAME structures. Issue reported by Guido Vranken. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-04-29Sanity check buffer length.Dr. Stephen Henson
Reject zero length buffers passed to X509_NAME_onelne(). Issue reported by Guido Vranken. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-04-29Add size limit to X509_NAME structure.Dr. Stephen Henson
This adds an explicit limit to the size of an X509_NAME structure. Some part of OpenSSL (e.g. TLS) already effectively limit the size due to restrictions on certificate size. Reviewed-by: Matt Caswell <matt@openssl.org>
2016-04-29Remove BIO_dummy, it's old cruftRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Change 'struct bio_st' in all public header where applicableRichard Levitte
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Add asn1_macRich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-29Remove some dead code from EC_GROUP_check()Matt Caswell
EC_GROUP_check() was obtaining a temporary BIGNUM from the BN_CTX, but then not using it. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Don't use an uninitialised variable in srp applicationMatt Caswell
The srp application created an uninitialised DB_ATTR object and then passed it to the load_index function which attempted to read it. A DB_ATTR object only contains a single field called "unique_subject". AFAICT this attribute is unused in the SRP case, and therefore it would be better to pass a NULL DB_ATTR to load_index (which handles that case gracefully). Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Avoid a NULL ptr deref if group is not setMatt Caswell
We should only copy parameters and keys if the group is set. Otherwise they don't really make any sense. Previously we copied the private key regardless of whether the group was set...but if it wasn't a NULL ptr deref could occur. It's unclear whether we could ever get into that situation, but since we were already checking it for the public key we should be consistent. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Check for a NULL return value from a call to X509_STORE_CTX_new()Matt Caswell
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Check for failed malloc in BIO_ADDR_newMatt Caswell
BIO_ADDR_new() calls OPENSSL_zalloc() which can fail - but the return value is not checked. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29The x509_name_canon function doesn't check for an error returnMatt Caswell
i2d_name_canon can return a negative number on error. We should check it before continuing. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-04-29Make header signature of CRYPTO_mem_leaks BIO instead of struct bio_stPaul Kehrer
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1012)