DAT C / C++ 库

GitHub

安装

Until it is officially merged into vcpkg, you will need to manually install and integrate the project using this repository.
https://github.com/microsoft/vcpkg/pull/52088
version: 4.7.0

快速开始

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

c

分步说明

1. 连接 CMS

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

c

2. 签发 DAT

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

c

3. 验证 DAT

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

c

关键函数

函数用途
dat_cms_manager_sync立即同步证书。
dat_cms_manager_issue分配并返回 DAT 字符串。
dat_cms_manager_parse分配并返回已验证载荷。
dat_cms_manager_last_error返回最后一个同步错误。

数据区域

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

JSON 之外的选项

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

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

c

当前 C 签发 API 接受以 NUL 结尾的字符串。将任意字节编码为 Base64Url 或 Hex,并使用载荷长度读取结果。

仅验证服务

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

关闭与错误

使用各自的清理函数释放 dat、payload 和 cms。

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