单 C 文件 TLS 1.2/1.3 实现,使用 tomcrypt 作为加密库
单个 C 文件 TLS 1.3、1.2、1.1 和 1.0(不含弱加密算法)实现,使用 libtomcrypt 作为加密库。它还支持 DTLS 1.2 和 1.0。在使用 tlse.c 之前,您可能需要下载并编译 tomcrypt;或者,您可以使用 libtomcrypt.c(请参阅编译)。 作为次要功能,它支持 SRTP 密钥交换、加密和解密、DTLS-SRTP 和 WebRTC RTCPeerConnection,且不依赖任何其他组件(它可以通过 WebRTC 将音频/视频流从 C 服务器传输到浏览器)。 注意: 它不实现 0-RTT。客户端 TLS 1.3 支持为实验性支持。
如果您喜欢这个项目,可以为该项目捐赠比特币,地址为 14LqvMzFfaJ82C7wY5iavvTf9HPELYWsax。
tlse.h 是可选的(只需要包含 tlse.c 即可)。或者,您可以包含 tlse.h 并将 tlse.c 添加到您的 makefile 中(在链接到 C++ 时很有用)。如果需要线程安全,您需要在允许其他线程访问之前调用 tls_init(),并且不要在没有互斥锁的情况下从多个线程使用同一个对象。除了这些情况之外,TLSe 和 libtomcrypt 都是线程安全的。此外,如果您使用 libtomcrypt,您可能需要定义 LTC_PTHREAD。
TLSe 支持 linux 内核 4.13 或更高版本上的 KTLS。KTLS 是 linux 内核中的 TLS 实现。如果未定义 TLS_RX,则 KTLS 仅支持发送(您可以使用 send 或 sendfile 发送数据,但不能使用 recv)。此外,协商必须由 TLSe 处理。如果需要 KTLS 支持,请定义 WITH_KTLS(使用 -DWITH_KTLS 进行编译)。请注意,对于 linux 结构,还不清楚应该包含哪个头文件。
暂无开放 Issues,或尚未同步最近议题。