3 个版本 (破坏性更新)
0.3.1 | 2022年2月9日 |
---|---|
0.3.0 |
|
0.2.0 | 2021年12月9日 |
0.1.0 | 2021年11月24日 |
#20 in #handshake
每月24次下载
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