Struct openssl::ssl::SslStreamBuilder
source · pub struct SslStreamBuilder<S> { /* private fields */ }
Expand description
A partially constructed SslStream
, useful for unusual handshakes.
Implementations
sourceimpl<S> SslStreamBuilder<S>where
S: Read + Write,
impl<S> SslStreamBuilder<S>where
S: Read + Write,
sourcepub fn stateless(&mut self) -> Result<bool, ErrorStack>
pub fn stateless(&mut self) -> Result<bool, ErrorStack>
Perform a stateless server-side handshake
Requires that cookie generation and verification callbacks were set on the SSL context.
Returns Ok(true)
if a complete ClientHello containing a valid cookie
was read, in which case the handshake should be continued via
accept
. If a HelloRetryRequest containing a fresh cookie was
transmitted, Ok(false)
is returned instead. If the handshake cannot
proceed at all, Err
is returned.
This corresponds to SSL_stateless
sourcepub fn set_connect_state(&mut self)
pub fn set_connect_state(&mut self)
Configure as an outgoing stream from a client.
This corresponds to SSL_set_connect_state
.
sourcepub fn set_accept_state(&mut self)
pub fn set_accept_state(&mut self)
Configure as an incoming stream to a server.
This corresponds to SSL_set_accept_state
.
sourcepub fn connect(self) -> Result<SslStream<S>, HandshakeError<S>>
pub fn connect(self) -> Result<SslStream<S>, HandshakeError<S>>
See Ssl::connect
sourcepub fn accept(self) -> Result<SslStream<S>, HandshakeError<S>>
pub fn accept(self) -> Result<SslStream<S>, HandshakeError<S>>
See Ssl::accept
sourcepub fn handshake(self) -> Result<SslStream<S>, HandshakeError<S>>
pub fn handshake(self) -> Result<SslStream<S>, HandshakeError<S>>
Initiates the handshake.
This will fail if set_accept_state
or set_connect_state
was not called first.
This corresponds to SSL_do_handshake
.
sourcepub fn read_early_data(&mut self, buf: &mut [u8]) -> Result<usize, Error>
pub fn read_early_data(&mut self, buf: &mut [u8]) -> Result<usize, Error>
Read application data transmitted by a client before handshake completion.
Useful for reducing latency, but vulnerable to replay attacks. Call
set_accept_state
first.
Returns Ok(0)
if all early data has been read.
Requires OpenSSL 1.1.1 or newer.
This corresponds to SSL_read_early_data
.
sourcepub fn write_early_data(&mut self, buf: &[u8]) -> Result<usize, Error>
pub fn write_early_data(&mut self, buf: &[u8]) -> Result<usize, Error>
Send data to the server without blocking on handshake completion.
Useful for reducing latency, but vulnerable to replay attacks. Call
set_connect_state
first.
Requires OpenSSL 1.1.1 or newer.
This corresponds to SSL_write_early_data
.