Struct openssl::ssl::SslStreamBuilder[][src]

pub struct SslStreamBuilder<S> { /* fields omitted */ }

A partially constructed SslStream, useful for unusual handshakes.

Methods

impl<S> SslStreamBuilder<S> where
    S: Read + Write
[src]

Begin creating an SslStream atop stream

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

Configure as an outgoing stream from a client.

This corresponds to SSL_set_connect_state.

Configure as an incoming stream to a server.

This corresponds to SSL_set_accept_state.

See Ssl::connect

See Ssl::accept

Initiates the handshake.

This will fail if set_accept_state or set_connect_state was not called first.

This corresponds to SSL_do_handshake.

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.

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.

impl<S> SslStreamBuilder<S>
[src]

Important traits for &'a mut R

Returns a shared reference to the underlying stream.

Important traits for &'a mut R

Returns a mutable reference to the underlying stream.

Warning

It is inadvisable to read from or write to the underlying stream as it will most likely corrupt the SSL session.

Returns a shared reference to the Ssl object associated with this builder.

Auto Trait Implementations

impl<S> Send for SslStreamBuilder<S> where
    S: Send

impl<S> Sync for SslStreamBuilder<S> where
    S: Sync