@canton-network/core-signing-securosys

中文文档
0.5.4发布于 2026/11/06Apache-2.0TypeScriptESM + CJS近 30 天下载 1991

Secrosys TSB 钱包网关签名驱动程序

中文使用文档
文档目录10 节
  1. 特征
  2. 使用量
  3. 配置
  4. 钱包网关配置
  5. 钱包网关环境变量
  6. 关键标识符
  7. 本地钱包部署
  8. 流程管理
  9. 构建和测试
  10. 参考资料

@canton-network/core-signing-securosys (英语)

签署将Canton钱包网关与Secrososys TSB合并的驱动程序.

特征

  • createKey 创建带有硬码空策略的 TSB SKA 密钥, 然后 重命名为来自公钥的标签 .
  • getKeys 列出 TSB 密钥并返回与钱包网关兼容的公众 键.
  • signTransaction 创建 TSB 签名请求并将 TSB 请求ID 返回为 提供者 txId。见 关键标识符 怎么样 签名密钥解决.
  • getTransaction 将 TSB 请求状态/结果映射到钱包网关 交易状态/签名字段.
  • getTransactions 由提供者交易ID获取 。 仅公用钥匙 从此驱动程序内存储交易缓存支持过滤 .
  • 运行时配置可以通过检查和更改 getConfiguration 编号 : setConfiguration。 。 。 .

使用量

import SecurosysSigningDriver from '@canton-network/core-signing-securosys'

const driver = new SecurosysSigningDriver({
    baseUrl: 'http://localhost:8080',
    keyManagementApiKey: process.env.TSB_KEY_MANAGEMENT_API_KEY,
    keyOperationApiKey: process.env.TSB_KEY_OPERATION_API_KEY,
    mtlsP12Path: process.env.TSB_MTLS_P12_PATH,
    mtlsP12Password: process.env.TSB_MTLS_P12_PASSWORD,
})

驱动程序使用的TSB端点是:

  • GET /v1/key
  • POST /v1/key
  • POST /v1/key/attributes
  • PATCH /v1/key/changeAttributes
  • POST /v1/sign
  • GET /v1/request/{id}
  • POST /v1/filteredRequests
  • DELETE /v1/request/{id}

配置

财产说明
baseUrlTSB服务的基础 URL.
keyManagementApiKeyX-API-KEY 价值 /v1/key 结束点.
keyOperationApiKeyX-API-KEY 用于签名/请求-状态终点的值.
bearerToken可选的无记名访问符 .
mtlsP12Path当TSB需要mTLS时使用的PKCS#12/P12客户端证书的可选路径.
mtlsP12PasswordPKCS#12/P12客户端证书的可选密码.
keyPassword用于密钥属性和签名的可选 TSB 密钥密码 .
signatureAlgorithmTSB 签名算法. 默认为 EDDSA; 目前的钱包网关/州签署预期Ed25519兼容签名.

当通过钱包网关配置 RPC 更改这些值时,使用 现有的PascalCase公约: MtlsP12Path 财务报告和审定财务报表 MtlsP12Password。 。 。 . MtlsP12Password 隐蔽在 getConfiguration。 。 。 .

钱包网关配置

网关配置字段司机财产
signingProviders.securosys.baseUrlbaseUrl
signingProviders.securosys.mtlsP12PathmtlsP12Path
signingProviders.securosys.signatureAlgorithmsignatureAlgorithm
signingProviders.securosys.keyManagementApiKeyEnvkeyManagementApiKey
signingProviders.securosys.keyOperationApiKeyEnvkeyOperationApiKey
signingProviders.securosys.bearerTokenEnvbearerToken
signingProviders.securosys.mtlsP12PasswordEnvmtlsP12Password
signingProviders.securosys.keyPasswordEnvkeyPassword

这个 *Env 字段只存储环境变量 名称中保留秘密值 环境。 默认匹配下面的可变名称 .

钱包网关环境变量

环境变量司机财产使用量
SECUROSYS_TSB_BASE_URLbaseUrl仅发现遗产; 当 signingProviders 已配置
SECUROSYS_TSB_KEY_MANAGEMENT_API_KEYkeyManagementApiKey密钥管理 API 密钥的默认名称; 覆盖到 keyManagementApiKeyEnv
SECUROSYS_TSB_KEY_OPERATION_API_KEYkeyOperationApiKey密钥操作 API 密钥的默认名称; 覆盖到 keyOperationApiKeyEnv
SECUROSYS_TSB_BEARER_TOKENbearerToken无记名符号的默认名称; 覆盖到 bearerTokenEnv
SECUROSYS_TSB_MTLS_P12_PATHmtlsP12Path仅发现遗产; 当 signingProviders 已配置
SECUROSYS_TSB_MTLS_P12_PASSWORDmtlsP12PasswordPKCS# 12/ P12 密码的默认名称; 覆盖到 mtlsP12PasswordEnv
SECUROSYS_TSB_KEY_PASSWORDkeyPasswordTSB 密钥密码的默认名称; 覆盖到 keyPasswordEnv
SECUROSYS_TSB_SIGNATURE_ALGORITHMsignatureAlgorithm仅发现遗产; 当 signingProviders 已配置

此驱动程序创建的每个密钥都会先被发送到 TSB 并附带一个临时 wallet-{uuid} 标签。 TSB 返回公钥后,驱动程序重命名为 键入 PATCH /v1/key/changeAttributes 改为决定性标签 从公用钥匙。 标签使用 Base64url 形式,所以安全 TSB 密钥名处理并避免重复使用的用户或网络相撞 同样的聚会暗示.

关键标识符

signTransaction 接受标准签名 keyIdentifier数字 :

  • 何时 keyIdentifier.id 提供,它作为TSB键使用不变 标签.
  • 仅当 keyIdentifier.publicKey 提供,驱动程序获得标签 与 keyLabelFromPublicKey 在标签上查看钥匙 这是 组成钱包网关发送,并与创建的密钥的标签匹配 这个司机.

在这两种情况下,均提供 publicKey 保存, 如果 TSB 密钥签名失败 为标签找到的公钥不同 。 因此,一个直接的司机 只使用公用密钥的呼叫查看所生成的标签, 不扫描所有 TSB 键。 此驱动程序没有创建的密钥, 所以不要携带 衍生的标签,必须用明示的 id。 。 。 .

每个密钥都是用相同的空 SKA 策略创建的 :

{
    "ruleUse": null,
    "ruleBlock": null,
    "ruleUnblock": null,
    "ruleModify": null,
    "keyStatus": {
        "blocked": false
    }
}

对于 EdDSA 签名, 驱动程序验证并返回钱包 网关兼容格式: Base64-encoded 生于64字节 Ed25519 签名字节. TSB请求的有效载荷类型被硬编码为: UNSPECIFIED,签名类型 硬代码为 RAW,而 TSB Ed25519 DER/SPKI 公钥总是被转换 到钱包签名 API 所需的 32 字节原始密钥 。 简单 ASN.1 OCTET 装入/装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装入装 R,S 序列仍被转换为 a 返回签名前的相容性守护 .

本地钱包部署

从钱包寄存器根中运行钱包单列波命令 :

cd /path/to/wallet

见 docs/CONTRIBUTING.md 用于建立发展环境.

下载钱包浏览器测试所需的 Playwright 浏览器 :

pnpm playwright:install

下载本地 devnet 设置所用的 Canton 二进制 :

pnpm script:fetch:canton

在 devnet 配置上启动本地 Canton :

pnpm start:canton --network=devnet

等Canton的靴子完成再说 命令可以中断 与 Ctrl+C; Canton进程在PM2下持续运行.

配置 signingProviders.securosys 内 wallet-gateway/test/config.json,用于 示例:

{
    "signingProviders": {
        "securosys": {
            "baseUrl": "https://integration-test.cloudshsm.com/",
            "mtlsP12Path": "./etc/client_mtls_tsb.p12"
        }
    }
}

然后用剩下的 mTLS 密钥启动完整的钱包堆栈 :

SECUROSYS_TSB_MTLS_P12_PASSWORD=pass \
pnpm start:all

对于无记名证书, 设置 signingProviders.securosys.baseUrl 页:1 适当的终点,然后从符号开始:

SECUROSYS_TSB_BEARER_TOKEN="<JWT Token>" \
pnpm start:all

打开钱包网关 :

open http://localhost:3030

检查网关的健康和准备情况:

curl -i http://localhost:3030/healthz
curl -i http://localhost:3030/readyz

流程管理

列出所有 PM2 管理的钱包进程 :

pnpm pm2 list

查看远程钱包网关日志 :

pnpm pm2 logs remote

请检查date=中的日期值 (帮助)

pnpm pm2 logs canton

只重新启动远程钱包网关后端 :

pnpm pm2 restart remote

停止所有 PM2- 管理的钱包进程 :

pnpm stop:all

完全杀死 PM2 守护进程和所有管理的进程 :

pnpm pm2 kill

构建和测试

只构建此签名驱动程序 :

pnpm workspace @canton-network/core-signing-securosys build

只运行此签名驱动测试 :

pnpm nx test @canton-network/core-signing-securosys

运行此签名驱动测试 覆盖:

pnpm nx test @canton-network/core-signing-securosys -c coverage

构建远程钱包网关 :

pnpm workspace @canton-network/wallet-gateway-remote build

运行远程钱包网关交易签名测试 :

pnpm nx test @canton-network/wallet-gateway-remote -- src/ledger/transaction-service.test.ts

运行钱包分配测试 :

pnpm nx test @canton-network/wallet-gateway-remote -- src/ledger/wallet-allocation/wallet-allocation-service.test.ts

运行共享签名- 图书馆测试 :

pnpm nx test @canton-network/core-signing-lib

连续构建完整钱包 :

pnpm build:all:serial

运行完整的钱包单列波测试套件 :

pnpm test:all

参考资料

版本与发布记录

@canton-network/core-signing-securosys 共发布 12 个版本,首次发布于 2026/08/10;过去 12 个月发布了 12 个版本。

版本发布日期距今
0.5.4latest2026/11/063 天前
0.5.32026/10/2911 天前
0.4.1-backport.3bugfix2026/10/2614 天前
0.5.22026/10/2317 天前
0.5.12026/10/1228 天前
0.4.1-backport.12026/10/031 个月前

关于 @canton-network/core-signing-securosys 的常见问题

@canton-network/core-signing-securosys 是什么?

Secrosys TSB 钱包网关签名驱动程序

如何安装 @canton-network/core-signing-securosys?

在项目目录运行 npm install @canton-network/core-signing-securosys,或使用 pnpm add / yarn add / bun add。

@canton-network/core-signing-securosys 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@canton-network/core-signing-securosys 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@canton-network/core-signing-securosys 可以商用吗?

@canton-network/core-signing-securosys 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@canton-network/core-signing-securosys 的下载量有多少?

根据 npm 官方下载统计,@canton-network/core-signing-securosys 在 2026/10/09 – 2026/11/07 这 30 天内被下载 1,991 次,日均约 66 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@canton-network/core-signing-securosys 还在维护吗?

最新版本 0.5.4 发布于 2026/11/06(3 天前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/08/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。