Trait tls_api::TlsAcceptor [−][src]
A builder for server-side TLS connections.
Associated Types
type Builder: TlsAcceptorBuilder<Acceptor = Self>
[src]
Type of the builder for this acceptor.
type Underlying
[src]
Type of the underlying acceptor.
type TlsStream: TlsStreamDyn
[src]
crate::TlsStream<tls_api::AsyncSocketBox>
.
In the world of HKT this would be:
type TlsStream<S: TlsStreamDyn> : TlsStreamWithSocketDyn<S>;
Note each implementation has accept_impl
function
which returns more specific type, providing both access to implementation details
and the underlying socket.
Associated Constants
const IMPLEMENTED: bool
[src]
Whether this acceptor type is implemented.
For example, tls-api-security-framework
is available on Linux,
but all operations result in error, so IMPLEMENTED = false
for that implementation.
const SUPPORTS_ALPN: bool
[src]
Whether this implementation supports ALPN negotiation.
const SUPPORTS_DER_KEYS: bool
[src]
Whether this implementation supports construction of acceptor using a pair of a DER certificate and file pair.
const SUPPORTS_PKCS12_KEYS: bool
[src]
Whether this implementation supports construction of acceptor using PKCS #12 file.
const TYPE_DYN: &'static dyn TlsAcceptorType
[src]
Dynamic (without type parameter) version of the acceptor.
This function returns an acceptor type, which can be used to constructor acceptors.
Required methods
fn underlying_mut(&mut self) -> &mut Self::Underlying
[src]
Get the underlying acceptor.
API intentionally exposes the underlying acceptor builder to allow fine acceptor not possible in common API.
fn info() -> ImplInfo
[src]
Implementation info.
fn accept_with_socket<'a, S>(
&'a self,
stream: S
) -> BoxFuture<'a, Result<TlsStreamWithSocket<S>>>ⓘ where
S: AsyncSocket + Debug + Unpin,
[src]
&'a self,
stream: S
) -> BoxFuture<'a, Result<TlsStreamWithSocket<S>>>ⓘ where
S: AsyncSocket + Debug + Unpin,
Accept a connection.
This operation returns a future which is resolved when the negotiation is complete, and the stream is ready to send and receive.
This version of accept
returns a stream parameterized by the underlying socket type.
fn accept_impl_tls_stream<'a, S>(
&'a self,
stream: S
) -> BoxFuture<'a, Result<Self::TlsStream>>ⓘ where
S: AsyncSocket,
[src]
&'a self,
stream: S
) -> BoxFuture<'a, Result<Self::TlsStream>>ⓘ where
S: AsyncSocket,
Accept a connection.
This operation returns a future which is resolved when the negotiation is complete, and the stream is ready to send and receive.
This version of accept
returns a stream parameterized by the underlying socket type.
Practically, accept
is usually enough.
Provided methods
fn into_dyn(self) -> TlsAcceptorBox
[src]
Dynamic (without type parameter) version of the connector.
fn builder_from_der_key(cert: &[u8], key: &[u8]) -> Result<Self::Builder>
[src]
New builder from given server key.
Parameters are DER-encoded (binary) X509 cert and corresponding private key.
Note if this implementation does not support DER keys directly,
openssl
command is used to convert the certificate.
fn builder_from_pkcs12(pkcs12: &[u8], passphrase: &str) -> Result<Self::Builder>
[src]
New builder from given server key.
Note if this implementation does not support PKCS #12 keys directly,
openssl
command is used to convert the certificate.
fn accept<'a, S>(&'a self, stream: S) -> BoxFuture<'a, Result<TlsStream>>ⓘ where
S: AsyncSocket + Debug + Unpin,
[src]
S: AsyncSocket + Debug + Unpin,
Accept a connection.
This operation returns a future which is resolved when the negotiation is complete, and the stream is ready to send and receive.
This version return a stream of the underlying implementation, which might be useful to obtain some TLS implementation-specific data.
Practically, accept
is usually enough.