summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_methods.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-01-21In ssl_lib.c rev. 1.197, jsing@ added TLSv1.3 support to SSL_get_version(3).schwarze1-2/+4
Document it.
2019-01-21The main handshake loop can be shared between client and server.jsing2-29/+15
Pull the shared code up into a function and call it from tls13_connect() and tls13_accept() instead of duplicating it. "Yes, please!" tb@
2019-01-21Use ssl_cipher_is_permitted() in ssl_cipher_list_to_bytes().tb1-9/+6
ok jsing
2019-01-21Add ssl_cipher_is_permitted(), an internal helper function thattb3-2/+49
will be used in a few places shortly, e.g. in ssl_cipher_list_to_bytes(). ok jsing
2019-01-21Correct some rwstate handling that I broke when refactoring.jsing1-3/+13
2019-01-21Provide TLS 1.3 cipher AEAD/hash and legacy I/O handling functions.jsing3-2/+210
Provide functionality for determining AEADs and hashes for TLS 1.3 ciphers. Also provide wire read/write callbacks that interface with BIO and functions that interface between SSL_read/SSL_write and the TLS 1.3 record layer API. ok tb@
2019-01-21Move struct tls13_ctx into a header since other things need access to it.jsing3-21/+21
While here, rename struct handshake to struct handshake_stage to avoid potential ambiguity/conflict with the handshake data struct. Also add forward and back pointers between SSL and struct tls13_ctx. ok tb@
2019-01-21Ensure we free TLS 1.3 handshake state.jsing1-6/+11
There is no guarantee that ssl3_clear() is called before ssl3_free(), so free things here. Also move the chunk in ssl3_clear() up so that it is with the "free" code rather than the "reinit" code. ok beck@ tb@
2019-01-21Teach ssl_version_string() about TLS1_3_VERSION.jsing1-1/+3
2019-01-21Store the record version and make it available for use.jsing2-10/+21
While here correct an int vs size_t mismatch. ok tb@
2019-01-20Fix header guardtb1-2/+5
2019-01-20Provide a handshake message handling implementation for TLS 1.3.jsing3-3/+213
It receives handshake messages by reading and parsing data from the record layer. It also provides support for building and sending handshake messages. ok tb@
2019-01-20Provide an initial implementation of the TLS 1.3 record layer.jsing3-6/+790
This is entirely self-contained and knows nothing about SSL or BIO. The bottom of the stack is provided by wire read and write callbacks, with the API to the record layer primarily being via tls13_{read,write}_{application,handshake}_data(). This currently lacks some functionality, however will be worked on in tree. ok tb@
2019-01-20Update record regress to match functionality changes.jsing1-6/+37
2019-01-20Provide a way to get just the record header.jsing2-7/+33
Also check record size limits when reading records and setting data. ok tb@
2019-01-20hook handshake testtb1-1/+2
2019-01-20Add a simple test that verifies that every valid handshaketb2-0/+76
sets action->handshake_complete.
2019-01-20revert second hunk of previous that was committed by accidenttb1-2/+2
2019-01-20Add missing prototype for tls13_handshake_active_action().tb1-2/+4
ok jsing
2019-01-20include stdint.h over sys/types.hbcook1-2/+2
ok deraadt@ tedu@
2019-01-20Add some internal consistency checks to the handshake state handling.jsing1-9/+23
Fix the tls13_handshake_advance_state_machine() return value, which inadvertantly got flipped in an earlier commit. Also move this function to a more suitable location. ok tb@
2019-01-20TLS 1.3 clients always need to send the supported groups extension.jsing1-4/+5
A couple of cleanup/style tweaks while here. ok tb@
2019-01-20Add an explicit flag to indicate a successful handshake insteadtb1-8/+6
of overloading/abusing action->sender. ok jsing
2019-01-20Fix BN_is_prime_* calls in openssl(1), the API returns -1 on error.tb1-4/+8
Found thanks to BoringSSL's commit 53409ee3d7595ed37da472bc73b010cd2c8a5ffd by David Benjamin. ok djm, jsing
2019-01-20Fix BN_is_prime_* calls in libcrypto, the API returns -1 on error.tb3-18/+35
From BoringSSL's commit 53409ee3d7595ed37da472bc73b010cd2c8a5ffd by David Benjamin. ok djm, jsing
2019-01-19change the default digest used byjsg2-4/+4
openssl x509 -fingerprint openssl crl -fingerprint from sha1 to sha256 ok jsing@
2019-01-19spelling;jmc1-2/+2
2019-01-19In evp.h rev. 1.71, tb@ added EVP_ENCODE_CTX_new(3) andschwarze1-4/+38
EVP_ENCODE_CTX_free(3). Docomuent them, in part using text from OpenSSL that was still published under a free license.
2019-01-19Sort HDRS/SRCS lists and use one line per source file for maintainability.jsing1-16/+44
ok tb@
2019-01-19Add handshake message type checking and special case certificate requests.jsing1-1/+30
Check that the handshake message type received matches that required by the state machine. However, thanks to poor state design in the TLSv1.3 RFC, there is no way to know if you're going to receive a certificate request message or not, hence we have to special case it and teach the receive handler how to handle this situation. Discussed at length with beck@ and tb@ during the hackathon. ok tb@
2019-01-19Tweak return value handling in the TLSv1.3 handshake code.jsing2-44/+47
The I/O paths are from the tls13_handshake_send_action() and tls13_handshake_recv_action() functions - both of these need to propagate I/O conditions (EOF, failure, want poll in, want poll out) up the stack, so we need to capture and return values <= 0. Use an I/O condition to indicate successful handshake completion. Also, the various send/recv functions are currently unimplemented, so return 0 (failure) rather than 1 (success). ok tb@
2019-01-19Hook record regress.jsing1-1/+3
2019-01-19Add regress for TLSv1.3 record handling.jsing2-0/+533
2019-01-19Provide a TLS record handling implementation.jsing3-2/+220
This is a self-contained struct and set of functions that knows how to decode and read a TLS record from data supplied via a read callback, and send itself via a write callback. This will soon be used to build the TLSv1.3 record layer handling code. ok beck@ tb@
2019-01-19bump minors after symbol additiontb3-3/+3
2019-01-19provide EVP_ENCODE_CTX_{new,free}().tb3-2/+18
ok jsing
2019-01-19$OpenBSD$tb2-0/+2
2019-01-19Partial port of EC_KEY_METHOD from OpenSSL 1.1.tb3-12/+12
Pass const method to EC_KEY_METHOD_get_*() to get rid of an XXX. from markus
2019-01-19Partial port of EC_KEY_METHOD from OpenSSL 1.1.tb9-63/+213
This commit adds missing API for ECDH/ECDSA_verify. from markus
2019-01-19Partial port of EC_KEY_METHOD from OpenSSL 1.1.tb16-56/+659
This commit adds init/free, support for signing, setting and getting the method, engine support as well as extra data. from markus
2019-01-18switch the default algorithm for the dgst command from MD5 to SHA256naddy2-6/+6
ok deraadt@
2019-01-18Add -iter and -pbkdf2 to the usage synopsis.naddy1-15/+17
Reorder option descriptions so -iter and -pbkdf2 show up alphabetically. Add missing argument name for -iter. ok jmc@
2019-01-18initialize offset value so this passesbeck1-0/+1
ok jsing@
2019-01-18copyrightbeck1-1/+2
2019-01-18bump copyright years appopriatelybeck1-3/+3
2019-01-18Add client side of supported versions and keyshare extensions with basic regressbeck5-5/+454
ok jsing@
2019-01-18Improve the description of locale dependency:schwarze2-14/+20
* mention LC_COLLATE; * clarify that all these functions are infested, including the *_l() versions; * avoid ENVIRONMENT, these functions don't inspect it; * and point to the C library functions that change the locale. OK millert@
2019-01-18Replace the vague, incorrect, and confusing BUGS sections with CAVEATSschwarze3-12/+33
clearly stating which arguments have to be avoided, and mention the header files defining the constants required for the checks. Feedback and OK guenther@, OK bluhm@.
2019-01-18tweak previous;jmc1-7/+7
2019-01-18Expose some symbols in a new tls13_handshake.h for regression testing.tb3-99/+93
Update the handshake state tables and flag names according to the design decisions and naming conventions in the hackroom. Garbage collect some things that turn out not to belong here. ok jsing