#tls #tcp #relay #networking #tcp-stream #tls-certificate

sslrelay

一个通过实现回调代码来中继/修改/伪造TCP流量的TCP中继库

8个版本

0.6.2 2021年10月10日
0.6.1 2021年10月10日
0.5.0 2021年10月9日
0.4.31 2021年10月7日

#32 in #tcp-stream

Apache-2.0

45KB
768

SSLRelay

文档:sslrelay - docs.rs 仓库:sslrelay - crates.io

摘要

一个可以处理原始TCP和SSL/TLS连接的TCP中继库。您可以在接收到数据流时(无论来自上游还是下游)读取和写入数据。要编写回调,您必须将 HandlerCallbacks 特征实现到您的处理程序结构体中。您的处理程序结构体还可以包括您可以在非阻塞回调中 读取,并在阻塞回调中 读取和写入 的字段。

更新日志

2021年09月02日 | 此库现在支持连续TCP会话。

2021年09月13日 | 修复了在TCP流意外关闭时流线程锁定的问题。

2021年09月14日 | 修复了UP/DOWN流线程之间的竞争条件。以及重大的性能改进!

2021年09月16日 | 添加了回调返回类型,提供了更多对数据控制的能力。

2021年09月16日 | 版本 0.3

2021年09月21日 | v0.3.1 | 完全支持IPv6。

2021年09月28日 | v0.4.0 | 添加了新功能:流数据类型。现在可以设置流数据的类型为TLS或RAW。以及一些性能改进。

2021年09月28日 | v0.4.1 | 代码重构和组织。

2021年10月06日 | v0.4.2 | 添加了文档。

2021年10月07日 | v0.4.3 | 阻塞回调现在将self作为可变引用传递。这允许开发人员创建可以在每次流写入时访问的结构。 (仅在阻塞回调中)。self对象会根据TCP连接刷新。不同的TCP连接不能相互访问数据。

2021年10月08日 | v0.4.4 | 添加了设置TLS证书和证书私钥为空的能力。在将RelayConfig传递给中继对象时使用Option枚举的'None'变体。在配置文件中,将证书路径和密钥路径作为空字符串指定为'None'。

2021年10月09日 | v0.6.0 | 废弃了'ConfigType'!除非开发人员自己实现,否则不再指定配置文件。引入了新的配置枚举'TLSConfig'。它有3种变体:FILE(指定证书和私钥文件路径)、DATA(将证书(PEM)数据和私钥(PEM)数据作为字节传递)、NONE(这是在您不在中继的监听/下游侧使用TLS时)。

2021年10月10日 | v0.6.2 | 当对端流随机断开时,StreamWrite到主线程不再冗长。

依赖项

~1.8–2.6MB
~58K SLoC