aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/tls
Commit message (Collapse)AuthorAgeFilesLines
* Fix more MSVC warningsJack Lloyd2019-06-141-2/+2
|
* TLS::Context holds references rather than pointersHannes Rantzsch2019-06-132-47/+60
| | | | | | | | Parameters passed from TLS::Context to TLS::Client for initialization are now held as references in the context. Ownership of these members is thereby explicitly left with the user. Co-authored-by: Tim Oesterreich <[email protected]>
* Update comments as suggested per reviewHannes Rantzsch2019-06-042-9/+14
| | | | Co-Authored-By: René Meusel <[email protected]>
* Refactor: template meta-programming to reuse the callback signatureRené Meusel2019-06-031-7/+16
|
* Use TLS::Context::verifyCallback as tls_verify_cert_chain callbackHannes Rantzsch2019-06-031-22/+62
| | | | | | | | | StreamCore uses the user-provided verify callback as a tls_verify_cert_chain if any is provided to the Context. Stream allows configuring the context as well using Stream::set_verify_callback. Stream now keeps a reference to the Context, rather than copying it. This allows users to configure the Context after constructing the Stream, but requires them to manage its lifetime.
* allow setting a verify_callback in TLS::ContextHannes Rantzsch2019-06-031-7/+61
| | | | | This will allow customizing the tls_verify_cert_chain callback for TLS::Stream. TLS::Context is now a class and its members are protected.
* Merge GH #1982 Ask for updated cert status during a TLS resumptionJack Lloyd2019-05-281-0/+3
|\
| * Ask for certificate status even on a resumption attemptJack Lloyd2019-05-281-0/+3
| | | | | | | | | | This makes sense to do since if the server doesn't resume, we would like to see a updated status message.
* | Fix problem in TLS message parsing testsJack Lloyd2019-05-271-2/+2
|/ | | | | | | This started failing due to use of store_be in Buffered_Computation::update_be in this PR. The hello request cookie generation depended on the size of size_t, however the lib code and test had the same bug so it was missed. Force the lengths to be 64 bit.
* Merge AEAD and CBC codepaths hereJack Lloyd2019-05-251-5/+8
|
* Return reference hereJack Lloyd2019-05-252-13/+16
|
* TweakJack Lloyd2019-05-252-12/+13
|
* More record layer refactoringsJack Lloyd2019-05-244-74/+56
|
* Simplification in record layerJack Lloyd2019-05-244-10/+34
|
* Make it possible to regen tls_suite_info.cpp with recent tls-parameters.txtJack Lloyd2019-05-241-2/+2
|
* Remove bogus commentJack Lloyd2019-05-242-2/+0
|
* Add reminder comments re enum classJack Lloyd2019-05-242-0/+4
|
* Let TLS serialization know which side we are sending asJack Lloyd2019-05-245-59/+56
| | | | Since this matters for some extensions
* Add support for supported versions extension from TLS 1.3Jack Lloyd2019-05-248-30/+174
|
* Allow servers to prohibit renegotiation with fatal alertJack Lloyd2019-05-241-1/+4
|
* Add script for running TLS fuzzerJack Lloyd2019-05-243-1/+8
| | | | Fix a few minor issues found thereby
* Avoid unnecessary copies during TLS handshakeJack Lloyd2019-05-243-24/+28
|
* Ignore large DTLS ciphertextsJack Lloyd2019-05-231-2/+6
|
* Fix bugs when DTLS initial handshake messages are replayedJack Lloyd2019-05-233-0/+13
|
* Fix some issues with DTLS version intoleranceJack Lloyd2019-05-233-7/+21
|
* Verify contents of DTLS CCS messageJack Lloyd2019-05-231-0/+3
|
* Merge GH #1968 Document TLS::StreamJack Lloyd2019-05-231-1/+1
|\
| * fix Stream::async_handshake documentationHannes Rantzsch2019-05-231-1/+1
| |
* | Clean up extension decodingJack Lloyd2019-05-222-27/+11
| | | | | | | | TLS_Reader handles the offset checks for us
* | Shorten callback nameJack Lloyd2019-05-222-3/+3
| |
* | Add BoGo tests and fix resumption caseJack Lloyd2019-05-222-5/+8
| |
* | Formatting and post-rebase fixesJack Lloyd2019-05-224-34/+40
| |
* | added status_request extension and cert chain to the stapling-reponse ↵Falko Strenzke2019-05-224-14/+56
| | | | | | | | generating callback's signature
* | implemented ocsp stapling (code not yet formatted properly)Falko Strenzke2019-05-224-2/+36
| |
* | Fix more BoGo testsJack Lloyd2019-05-221-0/+3
|/ | | | | Now all tests either pass or are known to fail for some reason. Disable -allow-unimplemented
* Fix DTLS MTU splittingJack Lloyd2019-05-211-19/+5
| | | | We could/would send packets somewhat larger than MTU
* Fix TLS CBC in DTLS when a bad packet is received.Jack Lloyd2019-05-213-11/+25
| | | | | | The Lucky13 countermeasure causes the mac state to become corrupted, due to the extra inputs. Then the next packet fails its mac check. This causes the Lucky13 countermeasure to go off again, ...
* Fix various issues in TLS found using BoGoJack Lloyd2019-05-2027-187/+469
| | | | | | | | | | | | | | | | | | | | | | | | | - BoGo sends unparseable OCSP responses, so we have to accomodate for this by delaying decoding until verification and simply ignoring OCSP responses that we can't parse. - Check that there is no trailing garbage at the end of various messages. - Don't send empty SNI - Check the TLS record header versions (previously ignored) - For CBC 1/n-1 splitting split every record instead of just first. I think this is not a problem but it is what BoGo expects. - New Channel::application_protocol virtual (previously was implemented on both Client and Server but not shared). - Changes to resumption version handling. - Fix server version selection when newer versions are disabled. New policy hooks added in service of BoGo: - maximum_certificate_chain_size gives the maximum cert chain in bytes that we'll accept. - allow_resumption_for_renegotiation specifies if a renegotiation attempt can be simply (re-)resumed instead. - abort_handshake_on_undesired_renegotiation - previously we just ignored it with a warning alert. Now behavior is configurable. - request_client_certificate_authentication - require_client_certificate_authentication
* make template friends compile on clang and MSVCHannes Rantzsch2019-05-032-4/+4
|
* review: buffer accessors visibility, ignore ALERT::CLOSE_NOTIFY, docsHannes Rantzsch2019-04-292-72/+74
|
* simplify read_some and shutdownHannes Rantzsch2019-04-261-36/+23
|
* simplify error_code handling for handshake and writeHannes Rantzsch2019-04-261-39/+16
|
* Further cleanup of asio stream header filesHannes Rantzsch2019-04-269-600/+473
| | | | | | | * all async ops are now collected in one header and moved to the detail namespace * error categories are no longer a detail, as they are visible to the user * more documentation in asio_stream.h * remove asio_includes.h helper header
* tidy up StreamCore as an implementation detail of StreamHannes Rantzsch2019-04-264-132/+131
|
* start restructuring asio stream headersHannes Rantzsch2019-04-247-319/+176
| | | | | | | | | | | | | | | StreamCore is now a nested class of Stream and will soon be hidden from the public interface. The goal is to offer buffer-handling methods (like CopyReceivedData) directly in Steam and have StreamCore be responsible for Botan::TLS::Callbacks implementation only. This will remove the need to provide StreamCore as a parameter for Async Ops construction. StreamBase has been removed. Stream no longer decides whether it is a Client or a Server when constructed, but when performing the handshake. This resembles the interface of boost::asio::ssl::stream and hides the implementation detail from the user. In order to allow testing with mocked TLS::Channels anyways, we use SPHINAE to setup either a real channel or a mocked channel.
* remove convertException entirelyHannes Rantzsch2019-04-234-36/+73
|
* use ErrorType instead of TLS::error and remove convert_exceptions headerHannes Rantzsch2019-04-237-232/+43
|
* use existing TLS::Connection_Side instead of handshake_typeHannes Rantzsch2019-04-232-31/+24
|
* use class instead of structHannes Rantzsch2019-04-235-5/+10
|
* remove superfluous #ifdef guardsHannes Rantzsch2019-04-2310-30/+0
|