27 个版本 (17 个重大更改)
0.18.0 | 2024 年 7 月 13 日 |
---|---|
0.17.0 | 2024 年 3 月 18 日 |
0.16.0 | 2023 年 9 月 4 日 |
0.15.1 | 2021 年 12 月 6 日 |
0.2.0 | 2016 年 12 月 15 日 |
#130 in 加密学
每月 246 次下载
95KB
2K SLoC
Threema Gateway 的 Rust SDK
这是一个在 Rust 中实现的大多数完整的异步 Threema Gateway 客户端库。有关实现状态,请查看下面的功能列表。
功能
发送
- 发送简单消息
- 发送端到端加密消息
加密
- 加密原始字节
- 加密文本消息
- 加密图片消息
- 加密文件消息
- 加密投递收据消息
查找
- 通过电话号码查找 ID
- 通过电子邮件查找 ID
- 通过电话号码哈希查找 ID
- 通过电子邮件哈希查找 ID
- 通过 ID 查找功能
- 通过 ID 查找公钥
- 查找剩余信用额度
接收
- 解码传入请求体
- 验证传入消息的 MAC
- 解密传入消息
- 解码传入消息
文件
- 上传文件
- 下载文件
用法
查看 examples/
目录中的示例,了解它们是如何实现的。
生成新的密钥对
cargo run --example generate_keypair
查找公钥
cargo run --example lookup_pubkey -- <our_id> <secret> <their_id>
发送简单的传输加密消息
cargo run --example send_simple -- <from> id <to-id> <secret> <text>...
cargo run --example send_simple -- <from> email <to-email> <secret> <text>...
cargo run --example send_simple -- <from> phone <to-phone> <secret> <text>...
发送端到端加密消息
cargo run --example send_e2e_text -- <from> <to> <secret> <private-key> <text>...
通过电话号码查找 Threema ID
cargo run --example lookup_id -- by_phone <from> <secret> 41791234567
通过电子邮件哈希查找 Threema ID
cargo run --example lookup_id -- by_email_hash <from> <secret> 1ea093239cc5f0e1b6ec81b866265b921f26dc4033025410063309f4d1a8ee2c
解码和解密传入消息的有效负载
cargo run --example receive -- <our-id> <secret> <private-key> <request-body>
下载 blob
cargo run --example download_blob -- <our-id> <secret> <private-key> <blob-id>
Cargo 功能
此库提供以下可选功能
receive
:添加处理传入消息的支持。默认启用。
Rust 版本要求 (MSRV)
此库通常跟踪最新的稳定 Rust 版本,但尽可能地保证与旧版稳定版本的向后兼容性。然而,在许多情况下,传递依赖项使得保证最小支持的 Rust 版本变得不可能(请参阅 此讨论)。
TLS
此库使用 rustls 以及本机(系统提供的)根证书来建立 TLS 连接。
许可
许可协议为以下之一
- Apache 许可证 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- 麻省理工学院许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)供您选择。
贡献
除非您明确表示,否则任何根据Apache-2.0许可证定义的、有意提交以包含在作品中的贡献,都将按照上述方式双重许可,不附加任何额外条款或条件。
依赖项
~6–20MB
~315K SLoC