openssl-ktls
Use openssl with kernel TLS offload, optionally with tokio.
This crate implements sync SslStream and async tokio SslStream that are ktls capable, extending the openssl crate.
Get started
Add to Cargo.toml
= { = "*", = false, = ["tokio", "vendored"]}
- feature
tokioenables tokio based async SslStream. - feature
vendoredenableds build openssl from source with ktls enabled. If your system openssl is already built with ktls enabled, you can skip this feature.
Examples
SslStream works the same way as openssl::ssl::SslStream.
let mut connector =
builder.unwrap;
let connector = connector.set_options
.set_cipher_list.unwrap
.configure.unwrap;
let ssl = connector.into_ssl.unwrap;
let tcp_stream = connect.await.unwrap;
let mut ssl_stream = new.unwrap;
// read and write data on ssl_stream...
// check ktls is used.
let receive_enabled = ssl_s.ktls_recv_enabled;
let send_enabled = ssl_s.ktls_send_enabled;
License
This project is licensed under the MIT license.