ec_private.pem的生成方法

1、ec_private.pem 是什么?

  • ec_private.pem = secp256r1 (P‑256) ECDSA 非对称私钥文件;
  • 作用:打包工具用这个私钥对 bin 固件做 ECC‑SHA256 签名,生成signValue(R+S),写入 manifest;
  • PTU 设备保存对应的公钥,PTU 收到 bin+manifest,拿公钥校验 signValue,确认固件没有被篡改。

⚠️安全提示:私钥只保存在打包电脑上,绝对不能放到网关设备上;网关只烧录公钥。

2、怎么得到 ec_private.pem(OpenSSL 生成,Windows)

  1. Windows 安装 OpenSSL,或者用 Git‑Bash 自带 openssl;打开 cmd/git‑bash 执行下面两条命令。

secp256r1 在 OpenSSL 名字又叫 prime256v1,两者是同一个曲线GitHub。

复制代码
# 1.生成secp256r1(P‑256)无密码私钥,输出ec_private.pem
openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem

# 2.从私钥导出公钥(给RK3562J PTU使用!!保存ec_public.pem,拷贝到PTU固件里面)
openssl ec -in ec_private.pem -pubout -out ec_public.pem

行完当前目录得到两个文件:

  • ec_private.pem → 给 C# 打包工具使用,不要下发设备
  • ec_public.pem → 公钥,拷贝进 网关,用于验签

把私钥给到打包工具两种方式

方式 A(默认)

把生成好的ec_private.pem复制到exe 程序同一级目录。软件启动自动读取这个路径。

方式 B(手动选择,推荐调试)

运行打包工具,点击界面按钮【选择私钥 pem】,选中生成好的ec_private.pem,文本框就会填入完整路径。

✅正确现象:日志打印 ECC签名完成 signValue:xxxxxxxxxxx,manifest 的 signValue 不再是空字符串。

3、重要工程提醒

  1. 不要把ec_private.pem提交 git!私钥泄露别人可以伪造固件签名;
  2. 网关只需要公钥 做验签,私钥永远不能放到设备端;
  3. 整套链路:
    • PC 打包工具:bin + ec_private.pem → sha256 + signValue (R+S) → manifest
    • 网关接收 bin+manifest,使用内置 ec 公钥校验sha256和signValue;校验不通过拒绝升级;
  4. 如果只是临时调试,可以没有 pem,工具照常输出 bin/hex,只是 manifest 的 signValue 为空,但是网关那边验签会直接拒绝升级。
相关推荐
NendoZen1 小时前
Arch Linux解决Grub无法SAVEDEFAULT问题(uki启动问题)
linux·运维·服务器
Elastic 中国社区官方博客2 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
忆挽篱笙歌3 小时前
进程控制管理
linux·运维·服务器
Escalating_xu3 小时前
【Linux 网络编程】connect 的断线重连:用状态机写一个能恢复连接的 TCP 客户端
linux·网络·tcp/ip
Zucker n4 小时前
英语“论文”语法检查工具
linux·windows
fengkai45454 小时前
3、Kubernetes的Namespace&Contexts&Pod&YAML格式
运维·容器·kubernetes·k8s·namespace·yaml·pod
2401_868534784 小时前
局域网络中信息安全方案设计及攻击防范技术(制造企业园区网)
服务器·网络
戴西软件5 小时前
制造研发中的AI视觉与仿真:戴西工程图纸智能审图智能体、戴西3DViz_CAE AI集成与戴西3DViz_CAD AI集成
大数据·运维·人工智能·3d·自动化·制造·rpa
苏宸啊5 小时前
Reactor反应堆模式
linux