# 龙信枢钥 **Repository Path**: sh_huahui/DragonKey ## Basic Information - **Project Name**: 龙信枢钥 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DragonKey 会议终端与龙传共用的离线授权源码仓库。统一维护 Node 签发器、Node/Dart 验证 SDK、Rust 原生门禁和公开测试向量;两个产品继续使用既有 Ed25519 签发机构及各自协议。 ## 目录 | 路径 | 内容 | | --- | --- | | `tools/issuer/` | Node 24 双产品签发 UI、CLI、SEA EXE 构建和测试 | | `packages/node/` | `@dragonkey/license-node`:会议 EMT1 验签、机器码、授权存储/状态 | | `packages/dart/dragonkey_license/` | 纯 Dart SDK:hhsend-pro 验签、CDK、硬件绑定、DPAPI 时钟与服务 | | `packages/rust/dragonkey-license/` | Rust SDK:默认拒绝、授权租约、功能检查、进行中操作中止 | | `tools/python_reference/` | Python 协议参考、开发 GUI/CLI、测试和可选打包 | | `test-vectors/hhsend-pro/` | Node/Python/Dart 共用的公开废弃测试向量 | | `docs/` | 协议、迁移说明、验证记录 | | `scripts/check-source-assets.py` | 检查候选 Git 源码中误入的管理员资产 | 协议约束见 [协议规范](docs/protocols.md),本次变更与实测见 [迁移验证](docs/migration-validation.md)。 ## 本地布局与应用接入 当前交付位于 `D:\workspace\DragonKey`;两个原应用也在 `D:\workspace`,使用同级相对依赖。其他机器可复制相同布局,或从目标仓库拉取经过验证的版本: ```text D:\workspace\ DragonKey\ 加密会议终端会议管理\ 龙传\ DragonKey-admin-assets\ # 管理员资产,不是 Git 仓库 ``` 会议服务的 `server/package.json` 使用 `file:../../DragonKey/packages/node`。 `server/services/licenseService.js` 只配置公钥和数据目录,路由、管理员认证、平板数量限制及 PC UI 保留在产品里。进入会议项目 `server` 执行 `npm install` 即可连接 SDK;客户离线打包会物化 SDK 文件,运行时不依赖开发机的相邻仓库。 龙传 `app/pubspec.yaml` 使用 `../../DragonKey/packages/dart/dragonkey_license`,`packages/core/Cargo.toml` 使用 `../../../DragonKey/packages/rust/dragonkey-license`。在龙传运行 `fvm flutter pub get`。应用继续显式配置 `hhsend-pro`、单设备策略、原生产公钥、缓存目录及 30 秒刷新;Refena、激活页、启动/HTTP/WebRTC 门禁与 FRB 桥接留在应用。 各 SDK 的 API 示例见 [Node](packages/node/README.md)、[Dart](packages/dart/dragonkey_license/README.md)、[Rust](packages/rust/dragonkey-license/README.md)。需要不同部署布局时,在应用中改依赖路径,不复制 SDK 源码。 ## 签发器与管理员资产 现有生产 EXE 继续在会议项目 `deploy/license-issuer/EncryptedMeetingTerminalLicenseIssuer.exe` 运行,历史台账保持原位。选择会议产品可签发原 EMT1 管理电脑/多平板授权;选择龙传则只签发一机一码。 原私钥已备份、校验并迁到 `D:\workspace\DragonKey-admin-assets\private\meeting-license-private-key.pem`。该目录在三个源码仓库外。Node 源码默认读此相邻资产位置;可以设置 `DRAGONKEY_PRIVATE_KEY`,公钥可用 `DRAGONKEY_PUBLIC_KEY` 指定。既有机构不要运行新密钥生成。 ```powershell cd D:\workspace\DragonKey # 只显示公钥: node tools/issuer/issue-license.js --public-key # 构建到仓库外 DragonKey-admin-assets/issuer: npm run build:issuer ``` 源码签发 UI 使用独立端口和安全数据目录前,按 [签发器说明](tools/issuer/README.md) 配置,以免与现有 17751 服务冲突。构建脚本默认输出到仓库外资产目录;需要升级原部署时显式设置 `DRAGONKEY_ISSUER_OUTPUT_DIR` 为原 `deploy/license-issuer`。脚本只原子替换 EXE 并备份旧 EXE,保留历史和 SQLite 台账。本次迁移未重打或替换生产 EXE。 生产私钥、包含私钥的 EXE/备份、JSON/SQLite 台账和真实客户激活码禁止进入 Git。公开公钥可以进入客户端;`test-vectors` 使用的公开测试种子只能用于验证。 ## 验证与环境 Node 24.14.0、Python 3.13、Rust 1.97.1、Flutter 3.41.9 / Dart 3.11.5。 Dart 开发优先使用 FVM;本机备用固定 SDK 为 `D:\workspace\龙传\.local-tools\flutter\bin`。 ```powershell npm test python -m unittest discover -s tools/python_reference/tests -v python tools/python_reference/tests/smoke_gui.py python scripts/check-source-assets.py cargo test --workspace cargo clippy --workspace --all-targets -- -D warnings cd packages/dart/dragonkey_license fvm dart pub get fvm dart analyze fvm dart test ``` 共享单测在 `.github/workflows/checks.yml` 维护;原应用工作流只保留产品回归,并准备同级 DragonKey。龙传仓库变量 `DRAGONKEY_REF` 可固定已发布 commit/tag,防止共享 SDK 漂移。 源码通过各仓库 origin 分发;远程 CI 需能访问 DragonKey,并可用 DRAGONKEY_REF 固定已验证的 SDK 版本。完整龙传 Windows EXE 尚受开发者模式/符号链接权限和 Visual Studio C++ CMake 组件缺失限制,不能把 DLL 构建当作客户端 EXE 交付。