summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-05-30Make use of SSL_IS_DTLS, SSL_USE_EXPLICIT_IV, SSL_USE_SIGALGS andJoel Sing
SSL_USE_TLS1_2_CIPHERS. Largely based on OpenSSL head.
2014-05-30Fix some more nasty stringyness in here by using asprintf instead of cruft.Bob Beck
gets rid of the second last use of the awful DECIMAL_SIZE.
2014-05-30more: no need to null check before free; ok guentherTheo de Raadt
2014-05-30more: no need for null check before freeTheo de Raadt
ok tedu guenther
2014-05-30While working on another diff I ended up looking to see why on earth theJoel Sing
DTLS code had a chunk that checked to see if the SSL version was *not* DTLS. Turns out that this is inside a big #if 0 block with a comment explaining why DTLS will never need this code... The DTLS code was clearly written by wholesale copying the SSLv3 code. Any code not applicable to DTLS was seemingly #if 0'd or commented out and left for others to find. d1_pkt.c is copied from s3_pkt.c and it has a do_dtls1_write() function that has the same function signature as do_ssl3_write(), except that the create_empty_fragement (yes, that is the spelling in ssl_locl.h) argument is unused for DTLS (although there is code that pretends to use it) since it uses explicit IV (as the comment notes). Instead of leaving this turd lying around, nuke the #if 0'd code (along with the check for *not* DTLS) and remove the pointless create_empty_fragment argument given the only two do_dtls1_write() calls specify zero. This kind of thing also makes you wonder how much actual peer review occurred before the code was initially committed... ok beck@
2014-05-30remove CONST_STRICT. ok beck deraadtTed Unangst
2014-05-30no need for null check before free. from Brendan MacDonellTed Unangst
2014-05-30Don't write out more than we have allocated in obj_txt, as the gloryBob Beck
that is OBJ_obj2txt() can return a larger value.. ok tedu@
2014-05-30remove some of the bigger lies, as applicable to libressl.Ted Unangst
2014-05-29I do not have time to describe how bad the realloc() uses in here, nowTheo de Raadt
being relaced by reallocarray(). you will have to look at the diff. there can be no explanations for the extra casts. as beck says, "Don't go towards the light theo!" ok beck tedu
2014-05-29the comment says RAND_pseudo_bytes should be RAND_bytes. make it so.Ted Unangst
ok deraadt
2014-05-29we no longer care that these aren't used for ssl2Ted Unangst
2014-05-29ok, next pass after review: when possible, put the reallocarray argumentsTheo de Raadt
in the "size_t nmemb, size_t size"
2014-05-29convert 53 malloc(a*b) to reallocarray(NULL, a, b). that is 53Theo de Raadt
potential integer overflows easily changed into an allocation return of NULL, with errno nicely set if need be. checks for an allocations returning NULL are commonplace, or if the object is dereferenced (quite normal) will result in a nice fault which can be detected & repaired properly. ok tedu
2014-05-29Everything sane has stdio, and FILE *. we don't need ifdefs for this.Bob Beck
ok to firebomb from tedu@
2014-05-29remove back compat that was already disabled back in 1998.Ted Unangst
from Alexander Schrijver
2014-05-29Any sane platform has stdio. Stop pretending we will ever use a platformBob Beck
that does not. "fire bomb" tedu@
2014-05-29no space before labelTed Unangst
2014-05-29line up else betterTed Unangst
2014-05-29consistent bracesTed Unangst
2014-05-29unidef DH, ECDH, and ECDSA. there's no purpose to a libssl without them.Ted Unangst
ok deraadt jsing
2014-05-29repair KNF indentTheo de Raadt
2014-05-29use calloc, from Benjamin BaierTed Unangst
2014-05-29Make it substantially easier to identify protocol version requirementsJoel Sing
by adding an enc_flags field to the ssl3_enc_method, specifying four flags that are used with this field and providing macros for evaluating these conditions. Currently the version requirements are identified by continually checking the version number and other criteria. This change also adds separate SSL3_ENC_METHOD data for TLS v1.1 and v1.2, since they have different enc_flags from TLS v1. Based on changes in OpenSSL head. No objection from miod@
2014-05-29When you have functions that perform specific functions, use them.Joel Sing
EVP_CIPHER_CTX_free() does a NULL check, then calls EVP_CIPHER_CTX_cleanup() and frees the memory. COMP_CTX_free() also had its own NULL check, so there is no point in duplicating that here. ok beck@
2014-05-29Fix another two cases where the return value of ssl_replace_hash() isJoel Sing
unchecked. In the case of tls1_change_cipher_state(), it is fairly pointless to use ssl_replace_hash(), since it does not initialise the hash and there is special handling required in the DTLS write case. Instead, just inline the part of ssl_replace_hash() that is needed and only ssl_clear_hash_ctx() the write hash in the non-DTLS case. Also add a detailed comment explaining why there needs to be specialised handling for DTLS write context and where the contexts are actually freed. ok miod@
2014-05-28More KNF.Joel Sing
2014-05-28Refactor tls1_change_cipher_state() and split the compression handling outJoel Sing
from the cipher and message digest handling, allowing for upcoming changes. Based on Adam Langley's chromium diffs. ok miod@
2014-05-28EVP_MD_CTX_create() calls malloc and can return NULL. However, only one ofJoel Sing
the calls in libssl actually checks the return value before using it. Add NULL checks for the remaining three calls. ok miod@
2014-05-28There is no point in checking if a pointer is non-NULL before calling free,Joel Sing
since free already does this for us. Also remove some pointless NULL assignments, where the result from malloc(3) is immediately assigned to the same variable. ok miod@
2014-05-28More KNF.Joel Sing
2014-05-27Fix a Y2038 problem, by conversion of long to time_t.Theo de Raadt
The TS_RESP_CTX_set_time_cb() API gets removed. Nothing in the greater ecosystem ever calls it. This API needs to be removed, because if anyone ever calls on a BE 32 system assuming long rather than time_t, it will be dangerously incompatible. ok miod guenther
2014-05-27Remove unused defines.Miod Vallat
2014-05-27Remove redundant test introduced in s3_pkt.c on 20001225, which got cargo-cultedMiod Vallat
(with an XXX comment, though) in d1_pkt.c in 2005.
2014-05-27Wrap some long lines.Joel Sing
2014-05-27Remove MemCheck_{on,off} that escaped last time around.Joel Sing
2014-05-27More KNF.Joel Sing
2014-05-27Fix ia64 cross-gcc target.Tobias Ulmer
opensslconf.h is just a dummy, we're lightyears away from working userspace. ok deraadt@
2014-05-26Replace the following logic:Miod Vallat
if (nothing to allocate) ptr = malloc(1) else { if ((ptr = malloc(size to allocate)) memcpy(ptr, data to copy, size to allocate) } if (ptr == NULL) OMG ERROR with a saner logic where the NULL pointer check if moved to the actual malloc branch, so that we do not need to malloc a single byte, just to avoid having a NULL pointer. Whoever thought allocating a single byte was a smart idea was obviously not taking his meds. ok beck@ guenther@
2014-05-26Unchecked malloc() return value in SSL_COMP_add_compression_method(), in theMiod Vallat
!OPENSSL_NO_COMP case. Does not affect OpenBSD as we compile the opposite code path.
2014-05-26We don't really to keep history in constructs such as:Miod Vallat
#if 1 /* new with openssl 0.9.4 */ current code; #else obsolete code; #endif
2014-05-26tls_decrypt_ticket(): memory leak and uncleaned EVP_CIPHER_CTX upon error.Miod Vallat
2014-05-26Make sure all error paths in dtls1_buffer_record() invoke SSLErr byMiod Vallat
factoring error handling. ok jsing@
2014-05-26Implement an improved version of the EVP AEAD API. TheJoel Sing
EVP_AEAD_CTX_{open,seal} functions previously returned an ssize_t that was overloaded to indicate success/failure, along with the number of bytes written as output. This change adds an explicit *out_len argument which is used to return the number of output bytes and the return value is now an int that is purely used to identify success or failure. This change effectively rides the last libcrypto crank (although I do not expect there to be many users of the EVP AEAD API currently). Thanks to Adam Langley for providing the improved code that this diff is based on. ok miod@
2014-05-26Use C99 initialisers for BIO_METHOD.Joel Sing
2014-05-26KNF.Joel Sing
2014-05-26repair some KNF missed by the script; ok jsingTheo de Raadt
2014-05-26KNF.Joel Sing
2014-05-26KNF.Joel Sing
2014-05-25heartbearts->heartbeats fixLoganaden Velvindron
From Marcos Marado: OK from tedu@