| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ok beck@
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
|
|
| |
We also no longer need the ssl3_pad_1 and ssl3_pad_2 arrays...
ok "flensing knife"
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
| |
ok "flensing knife"
|
|
|
|
| |
ok miod@
|
|
|
|
|
|
| |
This mimics free()'s behavior which makes error handling simpler.
ok bcook@ miod@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows for clients that willingly choose to perform a downgrade and
attempt to establish a second connection at a lower protocol after the
previous attempt unexpectedly failed, to be notified and have the second
connection aborted, if the server does in fact support a higher protocol.
TLS has perfectly good version negotiation and client-side fallback is
dangerous. Despite this, in order to maintain maximum compatability with
broken web servers, most mainstream browsers implement this. Furthermore,
TLS_FALLBACK_SCSV only works if both the client and server support it and
there is effectively no way to tell if this is the case, unless you control
both ends.
Unfortunately, various auditors and vulnerability scanners (including
certain online assessment websites) consider the presence of a not yet
standardised feature to be important for security, even if the clients do
not perform client-side downgrade or the server only supports current TLS
protocols.
Diff is loosely based on OpenSSL with some inspiration from BoringSSL.
Discussed with beck@ and miod@.
ok bcook@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A few EVP_DigestInit_ex() calls were left alone since reporting an
error would change the public API.
Changed internal ssl3_cbc_digest_record() to return a value due to the above
change. It will also now set md_out_size=0 on failure.
This is based on part of BoringSSL's commit to fix malloc crashes:
https://boringssl.googlesource.com/boringssl/+/69a01608f33ab6fe2c3485d94aef1fe9eacf5364
ok miod@
|
|
|
|
|
|
|
|
| |
calls malloc(). Instead of silently continuing on failure, check the return
value of BIO_new() and propagate failure back to the caller for appropriate
handling.
ok bcook@
|
| |
|
|
|
|
| |
ok deraadt@
|
|
|
|
| |
to only apply to s23_srvr.c.
|
|
|
|
|
|
|
|
|
|
|
| |
saying that you expect it to return that value and compare it against zero
because it is supposedly faster, for this leads to bugs (especially given the
high rate of sloppy cut'n'paste within ssl3 and dtls1 routines in this
library).
Instead, compare for the exact value it ought to return upon success.
ok deraadt@
|
| |
|
|
|
|
|
|
| |
ciphers we no longer need the flags or code to support it.
ok beck@ miod@
|
| |
|
|
|
|
|
|
|
| |
so that it reflects what it is actually doing. Use this function in a
number of places that still have the hand rolled version.
ok beck@ miod@
|
|
|
|
|
| |
meaningful variable names with use with pointer arithmitic rather than
complex array indexing.
|
|
|
|
| |
While here, use meaningful variable names and simplify the calculation.
|
| |
|
|
|
|
|
| |
throw it away and create a new one. This simplifies the code and also
allows ASR to do its thing.
|
|
|
|
| |
ssl3_change_cipher_state().
|
|
|
|
| |
Also use c rather than &c[0].
|
|
|
|
| |
This also brings it inline with tls1_change_cipher_state_cipher().
|
|
|
|
| |
do it properly.
|
| |
|
|
|
|
|
|
| |
OpenSSL 1.0.0.
ok miod@ (a little while back)
|
|
|
|
|
|
|
|
| |
to avoid potential null pointer dereference.
Based on david ramos work.
OK from miod@ and jsing@
|
|
|
|
|
|
| |
thing for an unsigned char array.
ok deraadt@
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the return value of EVP_MD_CTX_copy_ex(). If the copy fails early then
EVP_DigestUpdate() will invoke md_ctx.update(), which will be a NULL
function pointer.
Analysis and patch from David Ramos.
ok deraadt@
|
|
|
|
|
|
|
|
|
| |
fails, the NULL check will add an error but it does not abort. This will
result in EVP_DigestInit_ex() being called with a NULL context.
Also ensure that we check the return values from EVP_DigestInit_ex() and
EVP_DigestUpdate().
ok deraadt@ miod@
|
|
|
|
|
|
|
|
|
| |
handshake MAC calculation fails. Currently, the result from both
ssl3_handshake_mac() calls is added together. This means that unless both
MD5 and SHA1 fail, a positive value will be returned to the caller,
indicating success rather than failure.
ok deraadt@ miod@ sthen@
|
| |
|
|
|
|
|
|
| |
magic numbers around.
ok deraadt@
|
| |
|
|
|
|
| |
before calling it.
|
|
|
|
|
|
|
| |
calls EVP_MD_CTX_create(), which will return NULL if it fails to allocate
memory.
ok miod@
|
|
|
|
|
|
|
| |
the calls in libssl actually checks the return value before using it. Add
NULL checks for the remaining three calls.
ok miod@
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
compression associated with the SSL session. Based on one of Adam Langley's
chromium diffs, factor out the compression handling code into a separate
ssl_cipher_get_comp() function.
Rewrite the compression handling code to avoid pointless duplication and so
that failures are actually returned to and detectable by the caller.
ok miod@
|
| |
|
|
|
|
|
|
|
| |
APIs that pass times as longs will have to change at some point...
Bump major on both libcrypto and libssl.
ok tedu@
|
|
|
|
|
|
|
|
| |
OPENSSL_foo wrappers. This changes:
OPENSSL_malloc->malloc
OPENSSL_free->free
OPENSSL_relloc->realloc
OPENSSL_freeFunc->free
|