summaryrefslogtreecommitdiff
path: root/lib/libssl/s3_lib.c
AgeCommit message (Collapse)Author
2016-11-06Adjust cipher suite strengths - move MD5 to LOW, RC4 to LOW and 3DES toJoel Sing
MEDIUM. ok beck@ bcook@
2016-11-06Remove the single IDEA cipher suite. There is no good reason to supportJoel Sing
this. ok beck@ bcook@
2016-11-06unifdef -m -UOPENSSL_NO_CHACHA -UOPENSSL_NO_POLY1305Joel Sing
ok beck@
2016-10-19Remove support for fixed ECDH cipher suites - these is not widely supportedJoel Sing
and more importantly they do not provide PFS (if you want to use ECDH, use ECDHE instead). With input from guenther@. ok deraadt@ guenther@
2016-04-28Implement the IETF ChaCha20-Poly1305 cipher suites.Joel Sing
Rename the existing ChaCha20-Poly1305 cipher suites with an "-OLD" suffix, effectively replaces the original Google implementation. We continue to support both the IETF and Google versions, however the existing names now refer to the ciphers from draft-ietf-tls-chacha20-poly1305-04. Feedback from doug@
2016-01-27deprecate SSL_OP_SINGLE_DH_USEBob Beck
ok jsing@
2015-09-12Remove most of the SSLv3 version checks and a few TLS v1.0.Doug Hogan
We can now assume >= TLS v1.0 since SSL2_VERSION, SSL3_VERSION and DTLS1_BAD_VER support was removed. "reads ok" miod@
2015-09-12Move handshake message header length determination into a separateJoel Sing
ssl3_handshake_msg_hdr_len() function. Use this to correct several places that have magic numbers with header lengths hardcoded as '4'. ok beck@
2015-09-11Rename functions that moved to t1_enc.c, with a tls1_ prefix instead of aJoel Sing
ssl3_ prefix. ok beck@
2015-09-11Nuke ssl3_default_timeout().Joel Sing
ok "flensing knife"
2015-09-11Nuke SSLv3_enc_data.Joel Sing
ok "flensing knife"
2015-09-10Correct spelling of OPENSSL_cleanse.Joel Sing
ok miod@
2015-08-27Remove SSLv3 support from LibreSSL.Doug Hogan
This is the first wave of SSLv3 removal which removes the main SSLv3 functions. Future commits will remove the rest of the SSLv3 support. Discussed the plan at c2k15. Input from jsing@, beck@, miod@, bcook@, sthen@, naddy@, and deraadt@. ok jsing@, beck@
2015-07-19Crank major and remove legacy variables.Doug Hogan
Libtls is riding this crank. ok miod@ bcook@
2015-07-17Remove compat hack that disabled ECDHE-ECDSA on OS X.Doug Hogan
For a few old releases, ECDHE-ECDSA was broken on OS X. This option cannot differentiate between working and broken OS X so it disabled ECDHE-ECDSA support on all OS X >= 10.6. 10.8-10.8.3 were the faulty releases but these are no longer relevant. Tested on OS X 10.10 by jsing. ok jsing@
2015-07-14Convert ssl3_get_cipher_by_char to CBS.Doug Hogan
ok miod@ jsing@
2015-05-25Make SSL_CIPHER_get_bits() report ChaCha20-Poly1305 ciphers as usingPhilip Guenther
256bit keys problem noted by Tim Kuijsten (info (at) netsend.nl) ok deraadt@ miod@ bcook@
2015-02-08Rely upon enc_flags rather than the tls version, to upgrade SHA1+MD5 toMiod Vallat
SHA256 in ssl_get_algorithm2(). From OpenSSL HEAD; ok jsing@
2015-02-07Clean up the {get,put}_cipher_by_char() implementations. Also useJoel Sing
ssl3_get_cipher_by_value() in other parts of the code where it simplifies things. ok doug@
2015-02-07Provide a SSL_CIPHER_get_by_value() function that allows a cipher to beJoel Sing
retrieved via its cipher suite value. A corresponding SSL_CIPHER_by_value() function returns the cipher suite value for a given SSL_CIPHER. These functions should mean that software does not need to resort to put_cipher_by_char()/get_cipher_by_char() in order to locate a cipher. Begrudgingly also provide a SSL_CIPHER_get_by_id() function that locates a cipher via the internal cipher identifier. Unfortunately these have already been leaked outside the library via SSL_CIPHER_by_id() and the various SSL3_CK_* and TLS1_CK_* defines in the ssl3.h/tls1.h headers. ok beck@ miod@
2015-02-06Bring back the horrible API that is get_cipher_by_char/put_cipher_by_char.Joel Sing
This API was intended to be an internal only, however like many things in OpenSSL, it is exposed externally and parts of the software ecosystem are now using it since there is no real alternative within the public API. ok doug@, tedu@ and reluctantly miod@
2014-12-16Now that we have Camellia support in libcrypto, bring in the SHA256 flavour ofMiod Vallat
the Camellia ciphersuites for TLS 1.2 introduced in RFC 5932. From OpenSSL HEAD.
2014-12-14Provide functions for starting, finishing and writing SSL handshakeJoel Sing
messages. This will allow for removal of repeated/duplicated code. Additionally, DTLS was written by wholesale copying of the SSL/TLS code, with some DTLS specifics being added to the duplicated code. Since these SSL handshake message functions know how to handle both SSL/TLS and DTLS, upon conversion the duplicate versions will become identical (or close to), at which point the DTLS versions can be removed and the SSL/TLS versions used for both protocols. Partially based on similar changes in OpenSSL. ok miod@
2014-12-14Remove trailing whitespace.Joel Sing
2014-12-14unifdef OPENSSL_NO_NEXTPROTONEG, which is one of the last standing #ifndefJoel Sing
mazes in libssl. NPN is being replaced by ALPN, however it is still going to be around for a while yet. ok miod@
2014-12-10Remove support for GOST R 34.10-94 signature authentication, along withJoel Sing
the two ciphersuites that use it. GOST94 public/private keys have been long obsoleted and libcrypto does not have support for them anyway. Discussed with Dmitry Eremin-Solenikov.
2014-12-10Add support for ALPN.Joel Sing
Based on OpenSSL and BoringSSL. ok bcook@
2014-11-18Update the GOST code in libssl, as contributed by Dmitry Eremin-Solenikov.Miod Vallat
This causes a libssl major version bump as this affects the layout of some internal-but-unfortunately-made-visible structs.
2014-10-31Add support for automatic DH ephemeral keys.Joel Sing
This allows an SSL server to enable DHE ciphers with a single setting, which results in an DH key being generated based on the server key length. Partly based on OpenSSL.
2014-10-31Remove support for ephemeral/temporary RSA private keys.Joel Sing
The only use for these is via SSL_OP_EPHEMERAL_RSA (which is effectively a standards violation) and for RSA sign-only, should only be possible if you are using an export cipher and have an RSA private key that is more than 512 bits in size (however we no longer support export ciphers). ok bcook@ miod@
2014-10-03Add support for automatic ephemeral EC keys.Joel Sing
This allows an SSL server to enable ECDHE ciphers with a single setting, which results in an EC key being generated using the first preference shared curve. Based on OpenSSL with inspiration from boringssl. ok miod@
2014-09-30Clean up EC cipher handling in ssl3_choose_cipher().Joel Sing
The existing code reaches around into various internals of EC, which it should not know anything about. Replace this with a set of functions that that can correctly extract the necessary details and handle the comparisions. Based on a commit to OpenSSL, with some inspiration from boringssl. ok miod@
2014-09-07Remove SSL_kDHr, SSL_kDHd and SSL_aDH. No supported ciphersuites use them,Joel Sing
nor do we plan on supporting them. ok guenther@
2014-08-24Replace the remaining uses of ssl3_put_cipher_by_char() with s2n and aJoel Sing
ssl3_cipher_get_value() helper function, which returns the cipher suite value for the given cipher. ok miod@
2014-08-23Remove non-standard GOST cipher suites (which are not compiled inJoel Sing
currently). From Dmitry Eremin-Solenikov.
2014-08-23Replace the remaining ssl3_get_cipher_by_char() calls with n2s() andJoel Sing
ssl3_get_cipher_by_id(). ok bcook@
2014-08-11Provide a ssl3_get_cipher_by_id() function that allows ciphers to be lookedJoel Sing
up by their ID. For one, this avoids an ugly mess in ssl_sess.c, where the cipher value is manually written into a buffer, just so the cipher can be located using ssl3_get_cipher_by_char(). ok bcook@ miod@
2014-08-10Tweak cipher list comments and add missing cipher value comments.Joel Sing
2014-08-10Remove disabled (weakened export and non-ephemeral DH) cipher suites fromJoel Sing
the cipher list. This reduces code size, saves data segment space and prevents them from being turned back on at runtime by flipping a bit in memory. ok guenther@
2014-08-07Oops, revert changes commited by mistake. The previous commit was supposedMiod Vallat
to only apply to s23_srvr.c.
2014-08-07When you expect a function to return a particular value, don't put a commentMiod Vallat
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@
2014-07-13The bell tolls for BUF_strdup - Start the migration to usingBob Beck
intrinsics. This is the easy ones, a few left to check one at a time. ok miod@ deraadt@
2014-07-12The correct name for EDH is DHE, likewise EECDH should be ECDHE.Joel Sing
Based on changes to OpenSSL trunk. ok beck@ miod@
2014-07-11Remove the PSK code. We don't need to drag around thisBob Beck
baggage. ok miod@ jsing@
2014-07-10decompress libssl. ok beck jsingTed Unangst
2014-07-09tedu the SSL export cipher handling - since we do not have enabled exportJoel Sing
ciphers we no longer need the flags or code to support it. ok beck@ miod@
2014-07-09remove unused, private version strings except SSL_version_strBrent Cook
Also remove unused des_ver.h, which exports some of these strings, but is not installed. ok miod@ tedu@
2014-07-08Mark the weakened 40-bit export ciphers as invalid - no one in their rightJoel Sing
mind should be using them. ok deraadt@ miod@
2014-07-08Remove SSL_FIPS.Joel Sing
ok deraadt@ miod@
2014-07-08Nuke SSL_NOT_EXP since it does nothing.Joel Sing
ok deraadt@ miod@