OnBoard™ IoT Security FW Signing and Pushing CLI - v1.0.0
1. 修订记录
| 版本 | 更改时间 | 备注 |
|---|---|---|
| v1.0.0 | 2025/02/17 | 初始版本 |
2. 概述
OnBoard™ IoT Security (OBIS) FW Signing and Pushing CLI 是专为 OBIS 打造的命令行工具,专门用于固件的签名与推送。它集成了多项核心功能,包括基于 PKI(公钥基础设施)的证书签名,KMS(密钥管理系统)的密钥配置,固件签名,公钥导出,以及向 OBIS 的固件推送。
本文将介绍 OBIS FW Signing and Pushing CLI 的常用命令,并提供各命令的参数说明与使用示例,帮助你高效完成固件签名与推送操作。
3. 语法
snb [命令] [子命令] [参数]
4. 命令列表
4.1 密钥配置命令
设置访问密钥(Access Key)和私密密钥(Secret Key)。
4.1.1 命令
config
4.1.2 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
--accessKey | string | 是 | 设置访问密钥,可在 OBIS 的用户页面中查看。 |
--secretKey | string | 是 | 设置私密密钥,可在 OBIS 的用户页面中查看。 |
4.1.3 示例
snb config --accessKey <AK> --secretKey <SK>
4.2 固件签名命令
使用指定密钥对输入数据执行签名操作。
4.2.1 命令
kms
4.2.2 子命令
sign
4.2.3 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
--algorithm | string | 是 | 配置签名算法,当前支持 ecdsa_sha_256。 |
--keyId | string | 是 | 指定执行签名操作时使用的密钥 ID。 |
--inputFile | string | 否 | 指定需要进行签名的目标文件。 |
--inputData | string | 否 | 输入需要签名的数据,格式为十六进制的字符串。 |
--inputHash | string | 否 | 输入需要签名的预哈希数据,格式为十六进制的字符串。 |
--outputFile | string | 否 | 指定签名结果的输出文件,格式为 .der。默认为标准输出(stdout)。 |
--resourcePackageId | string | 否 | 指定产品的资源包 ID。当访问产品密钥时,此参数为必填项。 |
提示
- 必须在
inputFile,inputData或inputHash中提供至少一个参数。 - 当输出至标准输出(stdout)时,.der 格式的签名结果以十六进制字符串形式表示。
4.2.4 示例
snb kms sign --algorithm ecdsa_sha_256 --keyId <keyID> --inputFile ./firmware.bin --outputFile ./signedResult.der
4.3 公钥导出命令
导出指定密钥对的公钥。
4.3.1 命令
kms
4.3.2 子命令
exportPubKey
4.3.3 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
--keyId | string | 是 | 指定要导出的密钥 ID。 |
--outputFormat | string | 是 | 指定导出密钥的输出格式,可选 PEM 或 DER,默认格式为 DER。 |
--outputFile | string | 是 | 指定导出密钥的输出文件,默认为标准输出(stdout)。 |
--resourcePackageId | string | 否 | 指定产品的资源包 ID。当所使用的访问密钥属于个人账户时,此参数为必填项。 |
提示
当输出至标准输出(stdout)时,.der 格式的签名结果以十六进制字符串形式表示。
4.3.4 示例
snb kms exportPubKey --keyId <keyID> --outputFormat PEM --outputFile pubKey.pem
4.4 证书签名命令(例如 Matter DAC)
使用指定的证书模板对证书签名请求(CSR)文件进行签名。
4.4.1 命令
pki
4.4.2 子命令
sign
4.4.3 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
--inputFormat | string | 是 | 指定输入文件的格式(PEM 或 DER),默认格式为 PEM。 |
--certTemplateId | string | 是 | 指定证书(例如 Matter DAC)的模板 ID。 |
--outputFormat | string | 是 | 指定输出文件的格式(PEM 或 DER),默认格式为 DER。 |
--csrFile | string | 否 | 指定 CSR 文件的路径。 |
--csrContent | string | 否 | 提供 CSR 文件的内容。 |
--outputFile | string | 否 | 指定输出文件的文件名,默认为标准输出(stdout)。 |
提示
- 必须在
csrFile或csrContent中提供至少一个参数。 - 当输出至标准输出(stdout)时,.der 格式的签名结果以十六进制字符串形式表示。
4.4.4 示例
snb pki sign --csrFile ./csr.der --inputFormat DER --certTemplateId 1F118749-EEB1-11EF-A430-B8CEF6C25058
4.5 固件推送命令
推送签名后的固件文件至 OBIS。
4.5.1 命令
obis
4.5.2 子命令
push
4.5.3 参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
--file | string | 是 | 指定要推送至 OBIS 的文件。 |
--fileType | string | 是 | 指定推送文件的类型:Application(默认),Bootloader 或 Others。 |
--resourcePackageId | string | 是 | 指定 OBIS 中目标产品下的资源包 ID。 |
--env | string | 是 | 指定推送的目标环境:TEST 或 PROD。 |
--startAddress | string | 否 | 指定固件的烧录起始地址,格式为以 0x 开头的十六进制数。 |
--version | string | 否 | 设置固件文件版本,最大长度为 16 个字符。允许使用的字符包括:文本,数字 (0-9),字母 (a-z, A-Z),点 (.),下划线 (_) 和连字符 (-)。 |
提示
- 当推送文件的格式为 .bin 时,参数
startAddress为必填项。 - 参数
version,env和file的组合必须是唯一的,不允许重复。
4.5.4 示例
snb obis push --file ./lighting.s37 --fileType Application --resourcePackageId <id> --env TEST --version 1.0.0
5. 固件签名和推送示例


下载用户手册