encryption4all/postguard

GitHub: encryption4all/postguard

基于身份加密(IBE)协议的加密服务,无需交换公钥即可通过收件人身份标识加密消息和文件。

Stars: 8 | Forks: 3

#

PostGuard

PostGuard 是一个基于身份加密 (IBE) 的服务,用于加密消息和文件。发送方无需交换公钥,只需要接收方的身份(例如电子邮件地址)以及系统的主公钥。接收方通过向私钥生成器 (PKG) 证明其身份来获取解密密钥。 PostGuard 使用 [Yivi](https://yivi.app)(一个注重隐私的身份平台)进行身份验证。本仓库包含核心协议库、PKG 服务器、WASM 绑定、CLI 工具和 FFI 绑定。所有其他 PostGuard 工具和 SDK 均依赖于本项目。 ### 工作区 | Crate/包 | 描述 | | ------------- | ----------- | | `pg-core` | 核心 IBE 库。管理加密元数据、密钥和密文序列化,并提供带有高效 WASM 后端(使用 WebCrypto API)的流式加密接口。 | | `pg-pkg` | HTTP API 服务器 (actix-web),运行私钥生成器 (PKG) 实例。 | | `pg-wasm` | WebAssembly 绑定(通过 wasm-pack),用于在 Web 应用中使用核心库。 | | `pg-cli` | 用于加密和解密文件的命令行工具。 | | `pg-ffi` | 外部函数接口绑定,用于从其他语言(C, C# 等)调用 pg-core。 | ### 会话流程 典型的 PostGuard 会话流程如下。红色的操作需要用户交互;所有其他操作都是自动完成的。

PostGuard session flow

0. PKG 生成一个主密钥对。 1. Alice 的客户端从 PKG 获取主公钥。 2. Alice 使用主公钥和 Bob 的身份加密消息。 3. Alice 的客户端通过任何渠道将密文发送给 Bob。 4. Bob 的客户端请求一个密钥来解密密文。 5. PKG 在 Yivi 服务器上启动一个身份验证会话。 6. 系统提示 Bob 通过二维码揭示他的身份。 7. Bob 揭示他的身份。 8. Yivi 服务器将身份验证结果发送给 PKG。 9. PKG 为 Bob 的身份签发一个密钥。 10. Bob 的客户端使用他的密钥解密密文。 ## 开发 安装 Rust 和 Cargo: ``` curl https://sh.rustup.rs -sSf | sh ``` 构建工作区: ``` cargo build --release ``` 运行测试: ``` cargo test ``` ## 发布 发布过程通过 [release-plz](https://release-plz.ieni.dev/) 自动化。当更改合并到 `main` 分支时,release-plz 会发起一个发布 PR。合并该 PR 将发布到: - **crates.io** (pg-core, pg-cli, pg-pkg, pg-ffi) - **npm** (pg-wasm) - **Docker Hub** (pg-pkg) - **GitHub Releases** (FFI 本地库) ## 许可证 MIT
标签:actix-web, AI工具, CLI, C语言绑定, C#集成, FFI, HTTP服务器, IBE, PKG, PostGuard, Rust, WASM, WebAssembly, WebCrypto API, WiFi技术, Yivi, 公钥加密, 加密库, 去中心化身份, 可视化界面, 基于身份的加密, 密码学, 开源加密工具, 手动系统调用, 数字信封, 文件加密, 暗色界面, 流式加密, 消息加密, 私钥生成器, 端到端加密, 网络安全, 网络安全, 网络流量审计, 请求拦截, 跨语言调用, 通知系统, 隐私保护, 隐私保护