Merge Ssl impl blocks
This commit is contained in:
parent
78abc9b64f
commit
ff2c7ffefd
|
|
@ -1902,6 +1902,15 @@ foreign_type! {
|
||||||
pub struct SslRef;
|
pub struct SslRef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsafe impl Sync for Ssl {}
|
||||||
|
unsafe impl Send for Ssl {}
|
||||||
|
|
||||||
|
impl fmt::Debug for Ssl {
|
||||||
|
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
fmt::Debug::fmt(&**self, fmt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Ssl {
|
impl Ssl {
|
||||||
/// Returns a new extra data index.
|
/// Returns a new extra data index.
|
||||||
///
|
///
|
||||||
|
|
@ -1936,6 +1945,52 @@ impl Ssl {
|
||||||
Index::from_raw(idx)
|
Index::from_raw(idx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Creates a new `Ssl`.
|
||||||
|
///
|
||||||
|
/// This corresponds to [`SSL_new`].
|
||||||
|
///
|
||||||
|
/// [`SSL_new`]: https://www.openssl.org/docs/man1.0.2/ssl/SSL_new.html
|
||||||
|
pub fn new(ctx: &SslContext) -> Result<Ssl, ErrorStack> {
|
||||||
|
unsafe {
|
||||||
|
let ssl = cvt_p(ffi::SSL_new(ctx.as_ptr()))?;
|
||||||
|
Ok(Ssl::from_ptr(ssl))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Initiates a client-side TLS handshake.
|
||||||
|
///
|
||||||
|
/// This corresponds to [`SSL_connect`].
|
||||||
|
///
|
||||||
|
/// # Warning
|
||||||
|
///
|
||||||
|
/// OpenSSL's default configuration is insecure. It is highly recommended to use
|
||||||
|
/// `SslConnector` rather than `Ssl` directly, as it manages that configuration.
|
||||||
|
///
|
||||||
|
/// [`SSL_connect`]: https://www.openssl.org/docs/manmaster/man3/SSL_connect.html
|
||||||
|
pub fn connect<S>(self, stream: S) -> Result<SslStream<S>, HandshakeError<S>>
|
||||||
|
where
|
||||||
|
S: Read + Write,
|
||||||
|
{
|
||||||
|
SslStreamBuilder::new(self, stream).connect()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Initiates a server-side TLS handshake.
|
||||||
|
///
|
||||||
|
/// This corresponds to [`SSL_accept`].
|
||||||
|
///
|
||||||
|
/// # Warning
|
||||||
|
///
|
||||||
|
/// OpenSSL's default configuration is insecure. It is highly recommended to use
|
||||||
|
/// `SslAcceptor` rather than `Ssl` directly, as it manages that configuration.
|
||||||
|
///
|
||||||
|
/// [`SSL_accept`]: https://www.openssl.org/docs/manmaster/man3/SSL_accept.html
|
||||||
|
pub fn accept<S>(self, stream: S) -> Result<SslStream<S>, HandshakeError<S>>
|
||||||
|
where
|
||||||
|
S: Read + Write,
|
||||||
|
{
|
||||||
|
SslStreamBuilder::new(self, stream).accept()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Debug for SslRef {
|
impl fmt::Debug for SslRef {
|
||||||
|
|
@ -2541,63 +2596,6 @@ impl SslRef {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl Sync for Ssl {}
|
|
||||||
unsafe impl Send for Ssl {}
|
|
||||||
|
|
||||||
impl fmt::Debug for Ssl {
|
|
||||||
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
|
||||||
fmt::Debug::fmt(&**self, fmt)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Ssl {
|
|
||||||
/// Creates a new `Ssl`.
|
|
||||||
///
|
|
||||||
/// This corresponds to [`SSL_new`].
|
|
||||||
///
|
|
||||||
/// [`SSL_new`]: https://www.openssl.org/docs/man1.0.2/ssl/SSL_new.html
|
|
||||||
pub fn new(ctx: &SslContext) -> Result<Ssl, ErrorStack> {
|
|
||||||
unsafe {
|
|
||||||
let ssl = cvt_p(ffi::SSL_new(ctx.as_ptr()))?;
|
|
||||||
Ok(Ssl::from_ptr(ssl))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Initiates a client-side TLS handshake.
|
|
||||||
///
|
|
||||||
/// This corresponds to [`SSL_connect`].
|
|
||||||
///
|
|
||||||
/// # Warning
|
|
||||||
///
|
|
||||||
/// OpenSSL's default configuration is insecure. It is highly recommended to use
|
|
||||||
/// `SslConnector` rather than `Ssl` directly, as it manages that configuration.
|
|
||||||
///
|
|
||||||
/// [`SSL_connect`]: https://www.openssl.org/docs/manmaster/man3/SSL_connect.html
|
|
||||||
pub fn connect<S>(self, stream: S) -> Result<SslStream<S>, HandshakeError<S>>
|
|
||||||
where
|
|
||||||
S: Read + Write,
|
|
||||||
{
|
|
||||||
SslStreamBuilder::new(self, stream).connect()
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Initiates a server-side TLS handshake.
|
|
||||||
///
|
|
||||||
/// This corresponds to [`SSL_accept`].
|
|
||||||
///
|
|
||||||
/// # Warning
|
|
||||||
///
|
|
||||||
/// OpenSSL's default configuration is insecure. It is highly recommended to use
|
|
||||||
/// `SslAcceptor` rather than `Ssl` directly, as it manages that configuration.
|
|
||||||
///
|
|
||||||
/// [`SSL_accept`]: https://www.openssl.org/docs/manmaster/man3/SSL_accept.html
|
|
||||||
pub fn accept<S>(self, stream: S) -> Result<SslStream<S>, HandshakeError<S>>
|
|
||||||
where
|
|
||||||
S: Read + Write,
|
|
||||||
{
|
|
||||||
SslStreamBuilder::new(self, stream).accept()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// An SSL stream midway through the handshake process.
|
/// An SSL stream midway through the handshake process.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct MidHandshakeSslStream<S> {
|
pub struct MidHandshakeSslStream<S> {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue