aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-03-25free NULL cleanup.Rich Salz30-186/+103
This gets EC_GROUP_clear_free EC_GROUP_free, EC_KEY_free, EC_POINT_clear_free, EC_POINT_free Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-03-25Resolve swallowed returns codesMatt Caswell7-20/+26
The recent updates to libssl to enforce stricter return code checking, left a small number of instances behind where return codes were being swallowed (typically because the function they were being called from was declared as void). This commit fixes those instances to handle the return codes more appropriately. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25make updateDr. Stephen Henson2-18/+19
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Move internal only ASN.1 functions to asn1_locl.hDr. Stephen Henson8-23/+29
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Remove X509_ATTRIBUTE hack.Dr. Stephen Henson3-48/+9
The X509_ATTRIBUTE structure includes a hack to tolerate malformed attributes that encode as the type instead of SET OF type. This form is never created by OpenSSL and shouldn't be needed any more. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25free NULL cleanupRich Salz76-390/+202
This commit handles BIO_ACCEPT_free BIO_CB_FREE BIO_CONNECT_free BIO_free BIO_free_all BIO_vfree Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-25Support key loading from certificate fileDr. Stephen Henson4-5/+56
Support loading of key and certificate from the same file if SSL_CONF_FLAG_REQUIRE_PRIVATE is set. This is done by remembering the filename used for each certificate type and attempting to load a private key from the file when SSL_CONF_CTX_finish is called. Update docs. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25make dependDr. Stephen Henson4-11/+33
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25make X509_NAME opaqueDr. Stephen Henson15-48/+113
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Fix bug in s_client. Previously default verify locations would only be loadedMatt Caswell1-6/+5
if CAfile or CApath were also supplied and successfully loaded first. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Fix HMAC to pass invalid key len testMatt Caswell1-1/+2
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Add HMAC test for invalid key lenMatt Caswell1-0/+5
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Ensure that both the MD and key have been initialised before attempting toMatt Caswell2-3/+21
create an HMAC Inspired by BoringSSL commit 2fe7f2d0d9a6fcc75b4e594eeec306cc55acd594 Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Add more HMAC testsMatt Caswell1-7/+162
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG was disabled in 0.9.8q and 1.0.0c.Matt Caswell1-1/+2
This commit sets the value of SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG to zero. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Deprecate RAND_pseudo_bytesMatt Caswell5-1/+18
The justification for RAND_pseudo_bytes is somewhat dubious, and the reality is that it is frequently being misused. RAND_bytes and RAND_pseudo_bytes in the default implementation both end up calling ssleay_rand_bytes. Both may return -1 in an error condition. If there is insufficient entropy then both will return 0, but RAND_bytes will additionally add an error to the error queue. They both return 1 on success. Therefore the fundamental difference between the two is that one will add an error to the error queue with insufficient entory whilst the other will not. Frequently there are constructions of this form: if(RAND_pseudo_bytes(...) <= 1) goto err; In the above form insufficient entropy is treated as an error anyway, so RAND_bytes is probably the better form to use. This form is also seen: if(!RAND_pseudo_bytes(...)) goto err; This is technically not correct at all since a -1 return value is incorrectly handled - but this form will also treat insufficient entropy as an error. Within libssl it is required that you have correctly seeded your entropy pool and so there seems little benefit in using RAND_pseudo_bytes. Similarly in libcrypto many operations also require a correctly seeded entropy pool and so in most interesting cases you would be better off using RAND_bytes anyway. There is a significant risk of RAND_pseudo_bytes being incorrectly used in scenarios where security can be compromised by insufficient entropy. If you are not using the default implementation, then most engines use the same function to implement RAND_bytes and RAND_pseudo_bytes in any case. Given its misuse, limited benefit, and potential to compromise security, RAND_pseudo_bytes has been deprecated. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25RAND_bytes updatesMatt Caswell36-66/+100
Ensure RAND_bytes return value is checked correctly, and that we no longer use RAND_pseudo_bytes. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Fix return checks in GOST engineMatt Caswell6-71/+279
Filled in lots of return value checks that were missing the GOST engine, and added appropriate error handling. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Fix misc NULL derefs in sureware engineMatt Caswell1-11/+16
Fix miscellaneous NULL pointer derefs in the sureware engine. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Add ticket length before buffering DTLS messageMatt Caswell1-2/+2
In ssl3_send_new_session_ticket the message to be sent is constructed. We skip adding the length of the session ticket initially, then call ssl_set_handshake_header, and finally go back and add in the length of the ticket. Unfortunately, in DTLS, ssl_set_handshake_header also has the side effect of buffering the message for subsequent retransmission if required. By adding the ticket length after the call to ssl_set_handshake_header the message that is buffered is incomplete, causing an invalid message to be sent on retransmission. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-25Ensure last_write_sequence is saved in DTLS1.2Matt Caswell1-4/+4
In DTLS, immediately prior to epoch change, the write_sequence is supposed to be stored in s->d1->last_write_sequence. The write_sequence is then reset back to 00000000. In the event of retransmits of records from the previous epoch, the last_write_sequence is restored. This commit fixes a bug in DTLS1.2 where the write_sequence was being reset before last_write_sequence was saved, and therefore retransmits are sent with incorrect sequence numbers. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-24free NULL cleanupRich Salz34-108/+58
Start ensuring all OpenSSL "free" routines allow NULL, and remove any if check before calling them. This gets DH_free, DSA_free, RSA_free Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24update ordinalsDr. Stephen Henson1-0/+2
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-24Update ordinalsRichard Levitte1-4/+4
Thanks to the change of mkdef.pl, a few more deprecated functions were properly defined in util/libeay.num. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Teach mkdef.pl to handle multiline declarations.Richard Levitte1-3/+16
For the moment, this is specially crafted for DECLARE_DEPRECATED because that's where we found the problem, but it can easily be expanded to other types of special delarations when needed. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Fix verify algorithm.Dr. Stephen Henson1-0/+8
Disable loop checking when we retry verification with an alternative path. This fixes the case where an intermediate CA is explicitly trusted and part of the untrusted certificate list. By disabling loop checking for this case the untrusted CA can be replaced by the explicitly trusted case and verification will succeed. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24make ASN1_OBJECT opaqueDr. Stephen Henson12-20/+56
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Configuration file examples.Dr. Stephen Henson1-0/+53
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Make OCSP response verification more flexible.Dr. Stephen Henson1-4/+17
If a set of certificates is supplied to OCSP_basic_verify use those in addition to any present in the OCSP response as untrusted CAs when verifying a certificate chain. PR#3668 Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24make dependDr. Stephen Henson20-333/+290
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Move some EVP internals to evp_int.hDr. Stephen Henson13-76/+134
Move EVP internals to evp_int.h, remove -Ievp hack from crypto/Makefile Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Move some ASN.1 internals to asn1_int.hDr. Stephen Henson28-71/+131
Move ASN.1 internals used across multiple directories into new internal header file asn1_int.h remove crypto/Makefile hack which allowed other directories to include "asn1_locl.h" Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24free NULL cleanupRich Salz26-71/+61
Start ensuring all OpenSSL "free" routines allow NULL, and remove any if check before calling them. This gets ASN1_OBJECT_free and ASN1_STRING_free. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Fix malloc define typoMike Frysinger1-2/+2
Fix compilation failure when SCTP is compiled due to incorrect define. Reported-by: Conrad Kostecki <ck+gentoobugzilla@bl4ckb0x.de> URL: https://bugs.gentoo.org/543828 RT#3758 Signed-off-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-03-24Use OPENSSL_malloc rather than malloc/callocRichard Levitte1-2/+3
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Fix eng_cryptodev to not depend on BN internals.Richard Levitte1-18/+8
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24Adjust include pathRichard Levitte1-1/+1
Thanks to a -I.., the path does work, at least on unix. However, this doesn't work so well on VMS. Correcting the path to not rely on given -I does work on both. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-24JPAKE Makefile missing 'files' targetRichard Levitte1-0/+3
Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-23Remove old style ASN.1 support.Dr. Stephen Henson5-132/+2
Remove old ASN.1 COMPAT type. This was meant as a temporary measure so older ASN.1 code (from OpenSSL 0.9.6) still worked. It's a hack which breaks constification and hopefully nothing uses it now, if it ever did. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-23return unexpected message when receiving kx with kDHr or kDHdKurt Roeckx3-8/+0
It was saying that it was an illegal parameter / unsupported cipher Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-23Don't send a for ServerKeyExchange for kDHr and kDHdKurt Roeckx1-1/+1
The certificate already contains the DH parameters in that case. ssl3_send_server_key_exchange() would fail in that case anyway. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-23Make sure that cert is never NULLKurt Roeckx3-36/+19
Also removes for it being NULL Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-23Fix build.Dr. Stephen Henson1-14/+2
Remove x_exten.c and x_exten.o from crypto/asn1/Makefile: they've moved now. Reviewed-by: Matt Caswell <matt@openssl.org>
2015-03-23make X509_EXTENSION opaqueDr. Stephen Henson11-35/+44
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-03-23Fix SSL_clear unused returnMatt Caswell1-1/+2
Fix missing return value check in dtls1_listen when calling SSL_clear(). Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23ssl3_set_handshake_header returnsMatt Caswell8-21/+65
Change ssl_set_handshake_header from return void to returning int, and handle error return code appropriately. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23apps return value checksMatt Caswell5-33/+99
Ensure that all libssl functions called from within the apps have their return values checked where appropriate. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23Fix missing return value checksMatt Caswell24-136/+237
Ensure that all functions have their return values checked where appropriate. This covers all functions defined and called from within libssl. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23Check libssl function returnsMatt Caswell4-451/+451
Mark most functions returning a result defined in any libssl header file with __owur to warn if they are used without checking the return value. Use -DUNUSED_RETURN compiler flag with gcc to activate these warnings. Some functions returning a result are skipped if it is common and valid to use these functions without checking the return value. Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-03-23Add -DDEBUG_UNUSED to --strict-warningsMatt Caswell1-1/+1
In order to receive warnings on unused function return values the flag -DDEBUG_UNUSED must be passed to the compiler. This change adds that for the --strict-warnings Configure option. Reviewed-by: Richard Levitte <levitte@openssl.org>