#tls-stream #tokio #boring-ssl #tls-client #backed #future #accept

已删除 tokio-boring-patch

基于BoringSSL支持的Tokio SSL流实现

1 个发布版本 (0 个不稳定)

4.9.7-1 2024年8月10日

#2 in #accept

Download history 240/week @ 2024-08-05 28/week @ 2024-08-12

268 每月下载量
hyper-boring-patch 中使用

MIT/Apache

16MB
462K SLoC

GNU Style Assembly 206K SLoC // 0.0% comments C++ 98K SLoC // 0.2% comments C 78K SLoC // 0.2% comments Assembly 63K SLoC // 0.0% comments Rust 17K SLoC // 0.0% comments Bazel 1K SLoC

tokio-boring

基于BoringSSL构建的Tokio SSL流实现。

文档

用法

首先,将以下内容添加到您的 Cargo.toml

[dependencies]
tokio-boring = "1.0.0"

然后,根据需要使用 acceptconnect

use boring::ssl;
use tokio::net::TcpListener;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let listener = TcpListener::bind("127.0.0.1:8080").await?;
    let (tcp_stream, _addr) = listener.accept().await?;

    let server = ssl::SslMethod::tls_server();
    let mut ssl_builder = boring::ssl::SslAcceptor::mozilla_modern(server)?;
    ssl_builder.set_default_verify_paths()?;
    ssl_builder.set_verify(ssl::SslVerifyMode::PEER);
    let acceptor = ssl_builder.build();
    let _ssl_stream = tokio_boring::accept(&acceptor, tcp_stream).await?;
    Ok(())
}

此库使用BoringSSL进行连接协商,实现了TLS流。每个TLS流都实现了ReadWrite特质,以与其他futures I/O生态系统交互和互操作。从这个crate发起的客户端连接将自动验证主机名,默认情况下。

tokio-boring通过acceptconnect导出此功能。服务器应使用accept,客户端应使用connect。这些增强了由本crate构建的boring crate提供的功能。TLS参数的配置主要通过boring crate进行。

许可证

本项目采用以下任一许可证:

任选其一。

贡献

除非您明确说明,否则您根据Apache-2.0许可证定义的、有意提交给Serde的任何贡献,都将按照上述方式双许可,不附加任何额外条款或条件。

赞誉

该项目基于对tokio-openssl的分支。

依赖项

~9–13MB
~380K SLoC