3 个版本 (破坏性更新)

0.3.1 2022年2月9日
0.3.0 2022年2月9日
0.2.0 2021年12月9日
0.1.0 2021年11月24日

#20 in #handshake

每月24次下载

MIT/Apache

200KB
5.5K SLoC

KEYNESIS-NETWORK

此软件包实现了匿名安全邮件传输协议(ASMTP)的网络部分。有关协议的其他部分以及keynesis,请参阅其他库。

此软件包不包含用于保持和管理多个连接的材料,有关该内容,请参阅 asmtpd 的代码。相反,我们在这里关注协议的低级别部分。提供核心功能,如建立握手的协议(启用前向安全的双向连接:noise)。

握手

握手相当简单,它由一个协议版本字节组成,后跟 [IK] noise 模式握手消息。这允许发起者仅向预期的对等方公开其身份。

消息

一旦建立连接,所有入站和出站消息都使用前向安全加密。我们保证远程对等方是预期的对等方,他们也有手段对我们的节点进行身份验证。

现在我们可以发送消息了。

缺乏多路复用

如您所见,消息中没有请求/响应。虽然请求对等方为我们执行某些操作是可能的,但没有方法知道节点是否会响应该特定请求。如果在一段时间后没有响应,您可能想再次尝试。但到目前为止,为了简化网络协议的实现,没有查询的多路复用。

通过网络传输的消息类型恰好有 7 种(包括握手的 8 种),尽管有扩展到 255 的空间,但不太可能大幅增长。

许可

本项目采用MIT Apache-2.0 双许可协议。

贡献

除非您明确声明,否则您提交给 ASMTP 的任何有意贡献都将按照 MIT Apache-2.0 双许可协议进行许可,不附加任何额外条款或条件。

依赖关系

~5–17MB
~178K SLoC