aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/tls/asio
Commit message (Collapse)AuthorAgeFilesLines
* TLS::Stream Asio extensible model compatibilityHannes Rantzsch2021-03-301-71/+81
| | | | | Async functions can now handle generic completion tokens rather than callback functions only. Fixes #2648
* fix: forward executor through async_shutdown wrapperHannes Rantzsch2021-03-291-19/+27
|
* add virtual destructors for asio error typesHannes Rantzsch2021-03-291-13/+18
|
* fix: TLS::Stream broke on being std::move'dHannes Rantzsch2021-03-121-31/+25
| | | | | | | | Fixes #2635 * Add a regression test * Avoid breaking Stream reference within StreamCore by inverting dependencies
* Merge GH #2510 Fix some C++17 todosJack Lloyd2020-11-241-33/+30
|\
| * try to calm gcc 9Hannes Rantzsch2020-11-241-0/+2
| |
| * use if constexpr rather than sfinaeHannes Rantzsch2020-11-241-33/+28
| | | | | | | | to disable asio_stream setup_native_handle setup in test code
* | Remove outer shared_ptr from Certificate in certstore interfaceJack Lloyd2020-11-231-1/+1
|/ | | | | | Since 2.4.0 X509_Certificate and X509_CRL have been internally shared so an other shared_ptr is just overhead and API complexity. Use std::optional for APIs where the object was optional.
* Improve error category namesHannes Rantzsch2020-03-171-5/+17
|
* use boost::beast provided lowest_layer utilitiesHannes Rantzsch2020-03-171-6/+19
| | | | | This allows using the TLS::Stream with a boost::beast::tcp_stream as its next layer.
* implement server-side of TLS::StreamHannes Rantzsch2020-03-172-29/+38
| | | | | Allows the TLS::Stream to perform the handshake as the server-side. Also adds a client-server integration test for the stream.
* implement async_shutdownHannes Rantzsch2020-03-171-5/+47
|
* FIX: Detect stream truncation errorsHannes Rantzsch2020-03-173-121/+191
| | | | | | TLS::Stream now detects connections that have been improperly closed by the peer without sending a close_notify alert first. This is indicated by a StreamTruncated error code.
* fail gracefully when using Stream w/o handshakeHannes Rantzsch2020-03-161-1/+6
|
* Try to appease MSVCJack Lloyd2019-10-251-4/+3
|
* Fix various Doxygen warningsJack Lloyd2019-10-251-12/+15
| | | | Some due to missing comments, others due to various misparsing of the code.
* 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.
* fix Stream::async_handshake documentationHannes Rantzsch2019-05-231-1/+1
|
* 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
|
* review: low hanging fruitsHannes Rantzsch2019-04-165-26/+30
|
* Apply comment suggestions from code reviewRené Meusel2019-04-164-5/+8
| | | Co-Authored-By: hrantzsch <[email protected]>
* include build.h in all headers to make sure definitions are availableHannes Rantzsch2019-04-1611-0/+22
|
* documentation and minor fixes for async opsHannes Rantzsch2019-04-167-80/+149
|
* fix: require boost 1.66Hannes Rantzsch2019-04-1610-10/+10
|
* FIX: async_base immediate completionHannes Rantzsch2019-04-161-1/+1
| | | | see boostorg/beast#1557
* FIX: do not block when reading into zero-sized bufferHannes Rantzsch2019-04-161-3/+6
|
* use boost::beast::flat_buffer instead of our own buffer type in coreHannes Rantzsch2019-04-161-25/+16
|
* handle exceptions directly where native_handle is usedHannes Rantzsch2019-04-161-42/+33
|
* improve constructor interface of StreamHannes Rantzsch2019-04-165-38/+64
|
* add docs for asio_stream.h pulblic functionsTim Oesterreich2019-04-161-0/+128
|
* async_write_some returns amount of bytes commited to the core, instead of ↵Tim Oesterreich2019-04-163-4/+12
| | | | bytes sent on the wire; do not use boost::asio::async_read/write
* async ops will now call operator() from their constructor -> initiating ↵Tim Oesterreich2019-04-165-32/+25
| | | | functions do not have to call async_read/write anymore
* do not call completion_handler directly; allow async ops to be constructed ↵Tim Oesterreich2019-04-164-25/+35
| | | | with optional error_code
* don't pass int to size_tTim Oesterreich2019-04-161-3/+3
|
* factor out template-independent codeTim Oesterreich2019-04-161-37/+47
|