DAT Rust 库

GitHub crates.io

安装

toml

快速开始

此完整流程从 CMS 获取证书,创建包含 JSON 数据的 DAT,并进行验证。

rust

分步说明

1. 连接 CMS

签发服务使用完整证书令牌。启动时立即同步,可防止在证书可用前签发。

rust

2. 签发 DAT

此示例将公开 JSON 放入 plain,将受保护的用户信息作为 JSON 放入 secure。

rust

3. 验证 DAT

parse 检查有效期和签名,然后解密 secure。只使用验证成功后返回的载荷。

rust

关键函数

函数用途
sync().await立即同步证书。
issue(plain, secure)用当前签发证书创建 DAT。
parse(dat)验证 DAT 并返回载荷。
last_error().await返回最后一个同步错误。

数据区域

  • plain: 已签名但未加密的字节。
  • secure: 加密字节。
  • payload: 仅在 parse 成功后才可信任。

JSON 之外的选项

示例使用常见的 JSON。为加快处理,二进制数据可避免 JSON 序列化和解析,同时减少数据大小。

将简单值存为文本,或将 Protobuf、MessagePack 等二进制格式的结构化数据放入 plain 和 secure。

rust

由于 issue 当前接受字符串,请将任意字节编码为 Base64Url 或 Hex,验证后再解码。

仅验证服务

不签发 DAT 的服务使用仅验证选项和仅验证令牌,且只调用 parse。

关闭与错误

最后一个 Arc 被 drop 时,自动同步任务结束。

使用错误代码和重试分类,而不是错误消息。