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 加密学

Download history 1/week @ 2024-04-22 8/week @ 2024-05-27 10/week @ 2024-06-03 8/week @ 2024-06-17 8/week @ 2024-07-01 138/week @ 2024-07-08 25/week @ 2024-07-15 83/week @ 2024-07-29

每月 246 次下载

MIT/Apache

95KB
2K SLoC

Threema Gateway 的 Rust SDK

GitHub CI Crates.io Version Crates.io Downloads

这是一个在 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许可证定义的、有意提交以包含在作品中的贡献,都将按照上述方式双重许可,不附加任何额外条款或条件。

依赖项

~6–20MB
~315K SLoC