summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl3.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Use internal versions of SSL3_BUFFER, SSL3_RECORD and DTLS1_RECORD_DATA.jsing2020-03-121-1/+3
| | | | | | | | | SSL3_BUFFER, SSL3_RECORD and DTLS1_RECORD_DATA are currently still in public headers, even though their usage is internal. This moves to using _INTERNAL suffixed versions that are in internal headers, which then allows us to change them without any potential public API fallout. ok inoguchi@ tb@
* Clean up and simplify the handshake transcript code.jsing2018-11-081-2/+2
| | | | | | | This provides a cleaner, simpler and more readable API, with code that uses a BUF_MEM instead of a BIO. ok beck@ ("hurry up") and tb@.
* Make more of libssl's record layer state internal.jsing2018-10-241-13/+1
| | | | | | | | | | In January 2017, we changed large amounts of libssl's data structures to be non-visible/internal, however intentionally left things that the software ecosystem was needing to use. The four or so applications that reached into libssl for record layer related state now implement alternative code. As such, make these data structures internal. ok tb@
* Nuke SSL3_FLAGS_DELAY_CLIENT_FINISHED and SSL3_FLAGS_POP_BUFFER.jsing2018-04-071-5/+1
| | | | | | | These flags enabled experimental behaviour in the write path, which nothing uses. Removing this code greatly simplifies ssl3_write(). ok beck@ inoguchi@ sthen@ tb@
* Completely remove NPN remnants.jsing2017-08-281-7/+1
| | | | Based on a diff from doug@, similar diff from inoguchi@
* Move most of the SSL3_STATE fields to internal - the ones that remain arejsing2017-01-221-115/+2
| | | | | | known to be used by ports. ok beck@
* Convert publically visible structs to translucent structs.jsing2017-01-221-1/+5
| | | | | | | | | | | | | This change adds an internal opaque struct for each of the significant publically visible structs. The opaque struct is then allocated and attached to the publically visible struct when the appropriate *_new() function is called, then cleared and freed as necessary. This will allow for changes to be made to the internals of libssl, without requiring a major bump each time the publically visible structs are modified. ok beck@
* Explicitly include openssl/opensslconf.h in headers that use OPENSSL_NO_*jsing2016-12-301-1/+2
| | | | defines - do not rely on another heading making those available for us.
* Add support for ECDHE with X25519.jsing2016-12-211-1/+3
| | | | | | Testing of an earlier revision by naddy@. ok beck@
* Crank major and remove legacy variables.doug2015-07-191-10/+1
| | | | | | Libtls is riding this crank. ok miod@ bcook@
* Remove SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER workaround.doug2015-07-181-2/+2
| | | | | | This was a hack to work around problems on IE 6 with SSLv3. ok miod@ bcook@
* Remove compat hack that disabled ECDHE-ECDSA on OS X.doug2015-07-171-4/+5
| | | | | | | | | 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@
* Remove workaround for TLS padding bug from SSLeay days.doug2015-07-171-2/+2
| | | | | | | | | OpenSSL doesn't remember which clients were impacted and the functionality has been broken in their stable releases for 2 years. Based on OpenSSL commit a8e4ac6a2fe67c19672ecf0c6aeafa15801ce3a5. ok jsing@
* Remove Microsoft Server Gated Crypto.doug2015-06-181-12/+1
| | | | | | | | | Another relic due to the old US crypto policy. From OpenSSL commit 63eab8a620944a990ab3985620966ccd9f48d681 and 95275599399e277e71d064790a1f828a99fc661a. ok jsing@ miod@
* Reluctantly add server-side support for TLS_FALLBACK_SCSV.jsing2015-02-221-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 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@
* unifdef -m -UOPENSSL_NO_NEXTPROTONEG - NPN is being replaced with ALPN,jsing2015-02-121-9/+1
| | | | | | however it is not likely to be removed any time soon. ok beck@ miod@
* Jettison DTLS over SCTP.jsing2015-02-091-9/+1
| | | | | | | | OpenBSD does not have SCTP support and it sees little use in the wild. OPENSSL_NO_SCTP is already specified via opensslfeatures.h, hence this is a code removal only and symbols should remain unchanged. ok beck@ miod@ tedu@
* unconditionally align SSL payloadsbcook2014-12-141-15/+2
| | | | | | | | Remove support for conditional payload alignment, since we would never want to turn it off. Also, consistently use size_t for calculating the alignment. ok miod@
* Provide functions for starting, finishing and writing SSL handshakejsing2014-12-141-2/+4
| | | | | | | | | | | | | | | 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@
* Remove trailing whitespace.jsing2014-12-141-14/+14
|
* Add support for ALPN.jsing2014-12-101-1/+15
| | | | | | Based on OpenSSL and BoringSSL. ok bcook@
* Update the GOST code in libssl, as contributed by Dmitry Eremin-Solenikov.miod2014-11-181-2/+2
| | | | | This causes a libssl major version bump as this affects the layout of some internal-but-unfortunately-made-visible structs.
* Remove now unused remnants from public structs.jsing2014-10-311-3/+1
|
* Remove support for ephemeral/temporary RSA private keys.jsing2014-10-311-2/+2
| | | | | | | | | 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@
* Currently, ssl3_put_char_by_bytes(NULL, NULL) is just a long handed wayjsing2014-08-111-1/+2
| | | | | | | | of writing "2". Add a define for the SSL3_CIPHER_VALUE_SIZE (rather than using a less-readable hardcoded constant everywhere) and replace the ssl3_put_char_by_bytes(NULL, NULL) calls with it. ok bcook@ miod@
* Put back some parts of the public SSL API that should not have beenjsing2014-07-101-2/+1
| | | | completely decompressed.
* decompress libssl. ok beck jsingtedu2014-07-101-15/+1
|
* Add support for handling SSL_CIPHER_ALGORITHM2_AEAD ciphers, which arejsing2014-06-131-1/+2
| | | | | | | | | | | | | those that use EVP_AEAD instead ov EVP_CIPHER. This means being able to change cipher state with an EVP_AEAD and being able to encrypt/decrypt TLS using the EVP_AEAD. This has no change on existing non-SSL_CIPHER_ALGORITHM2_AEAD ciphers. Based on Adam Langley's chromium patches. Rides the recent libssl bump. Tested by sthen@
* Remove support for the `opaque PRF input' extension, which draft has expiredmiod2014-06-131-10/+1
| | | | | | | | 7 years ago and never made it into an RFC. That code wasn't compiled in anyway unless one would define the actual on-the-wire extension id bytes; crank libssl major. With help and enlightenment from Brendan MacDonell.
* tags as requested by miod and teduderaadt2014-06-121-1/+1
|
* Add a define for the SSLv3 sequence size and use it, rather than sprinklingjsing2014-06-081-2/+3
| | | | | | magic numbers around. ok deraadt@
* Be selective as to when ChangeCipherSpec messages will be accepted.jsing2014-06-051-0/+1
| | | | | | | | | | | | | | | | | Without this an early ChangeCipherSpec message would result in session keys being generated, along with the Finished hash for the handshake, using an empty master secret. For a detailed analysis see: https://www.imperialviolet.org/2014/06/05/earlyccs.html This is a fix for CVE-2014-0224, from OpenSSL. This issue was reported to OpenSSL by KIKUCHI Masashi. Unfortunately the recent OpenSSL commit was the first we were made aware of the issue. ok deraadt@ sthen@
* ECDH and ECDSA will not work overly well if there is no EC, so unifdefjsing2014-05-311-2/+0
| | | | | | OPENSSL_NO_EC. ok tedu@
* TLS would not be entirely functional without extensions, so unifdefjsing2014-05-311-2/+0
| | | | | | OPENSSL_NO_TLSEXT. ok tedu@
* remove some #if 0 code. we don't need any more reminders that we're usingtedu2014-05-301-16/+0
| | | | a not quite appropriate data structure. ok jsing
* unidef DH, ECDH, and ECDSA. there's no purpose to a libssl without them.tedu2014-05-291-4/+0
| | | | ok deraadt jsing
* Whitespace fixes to align define values.jsing2014-05-251-85/+86
|
* First pass at applying KNF to the OpenSSL code, which almost makes itjsing2014-04-151-36/+34
| | | | | | | readable. This pass is whitespace only and can readily be verified using tr and md5. There is still a huge amount of inconsistency within these headers.
* Merge conflicts; remove MacOS, Netware, OS/2, VMS and Windows build machinery.miod2014-04-131-0/+15
|
* resolve conflictsdjm2012-10-131-1/+31
|
* OpenSSL 1.0.0f: mergedjm2012-01-051-0/+11
|
* resolve conflicts, fix local changesdjm2010-10-011-31/+102
|
* pull Ben Lauries blind prefix injection fix for CVE-2009-3555 frommarkus2009-11-101-4/+5
| | | | openssl 0.9.8l; crank minor version; ok djm@ deraadt@; initially from jsg@
* resolve conflictsdjm2008-09-061-1/+40
|
* merge 0.9.7b with local changes; crank majors for libssl/libcryptomarkus2003-05-121-13/+35
|
* OpenSSL 0.9.7 stable 2002 05 08 mergebeck2002-05-151-8/+83
|
* openssl-engine-0.9.6 mergebeck2000-12-151-1/+4
|
* OpenSSL 0.9.5 mergebeck2000-03-191-64/+31
| | | | | | *warning* this bumps shared lib minors for libssl and libcrypto from 2.1 to 2.2 if you are using the ssl26 packages for ssh and other things to work you will need to get new ones (see ~beck/libsslsnap/<arch>) on cvs or ~beck/src-patent.tar.gz on cvs
* OpenSSL 0.9.4 mergebeck1999-09-291-14/+18
|
* Import of SSLeay-0.9.0b with RSA and IDEA stubbed + OpenBSD buildryker1998-10-051-0/+455
functionality for shared libs. Note that routines such as sslv2_init and friends that use RSA will not work due to lack of RSA in this library. Needs documentation and help from ports for easy upgrade to full functionality where legally possible.