Skip to content

incisakura/compio-openssl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

compio-openssl

An asynchronous OpenSSL stream for compio.

Features

  • Asynchronous support: Built on top of compio's asynchronous manner, async-based SSL/TLS communication.
  • Compatibility: Maintain API compatibility with the original synchronous SslStream.
  • Wide OpenSSL version support: Compatible with wide versions of OpenSSL just like the openssl crate dose.

*Note: to use TLS 1.3 early data, you need OpenSSL 1.1.1 at least.

Example

use compio::net::TcpStream;
use openssl::ssl::{SslConnector, SslMethod};

let mut builder = SslConnector::builder(SslMethod::tls_client()).unwrap();
let tls_connector = builder.build();

let stream = TcpStream::connect(("www.google.com", 443)).await.unwrap();
let tls_ctx = tls_connector.configure().unwrap().into_ssl("www.google.com").unwrap();
let mut stream = SslStream::new(tls_ctx, stream).unwrap();
stream.connect().await.unwrap();

// Now you get a full async TLS stream!

Fore more examples, see our test.

Vendored

To make OpenSSL static links to your binary, please use openssl's vendored feature.

[dependencies]
openssl = { version = "0.10", features = ["vendored"] }

License

MIT License

About

An async OpenSSL stream for compio

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages