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。
使用错误代码和重试分类,而不是错误消息。