首页 > 其他分享 >OTA固件签名

OTA固件签名

时间:2023-06-18 10:01:09浏览次数:49  
标签:signing verifying OTA pem 签名 key 固件

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!

通过OTA固件签名,可以保证芯片只会接收采用经过签名的固件,可以消除使用未签名固件非法进行固件升级的风险。

固件签名环境要求:

Python 3, python-ecsda(https://github.com/warner/python-ecdsa)

  1. 如果已经生成签名密钥对,跳过此步,若尚未生成,执行tools/signing/key_gen.py生成密钥对:

    signing_key.pem (私钥,用于签名)

    verifying_key.pem(公钥,用于验证)

    verifying_key.bin (verifying_key.pem的二进制格式)

    verifying_key.txt (verifying_key.pem的数组形式,用于拷贝到固件工程C代码中)

  2. 将公钥加入固件,在bx_app_config.h中定义宏BXOTAS_VERIFYING_KEY

    #define BXOTAS_VERIFYING_KEY {0x62, 0xd2, 0x09, 0x03, 0x2a, 0x4f, 0xbe, 0x54, 0x83, 0xf6, 0xc8, 0xda, 0x20, 0xeb, 0x43, 0x9d, 0xc7, 0x8c, 0x79, 0xb0, 0x2b, 0x3f, 0x55, 0x37, 0xe7, 0x1d, 0x83, 0x69, 0x9f, 0x4b, 0x9c, 0xd9, 0xec, 0xd1, 0xbd, 0x02, 0x59, 0x5d, 0xbe, 0x73, 0xc1, 0x80, 0x08, 0x0b, 0x35, 0x6c, 0x27, 0xbc, 0x1c, 0x65, 0x88, 0xbe, 0x2f, 0xc6, 0x2a, 0xeb, 0xd8, 0x9e, 0x48, 0x3b, 0x49, 0xc1, 0xe5, 0xde, }

  3. 利用tools/signing/signing.py生成固件签名,产生signature.bin:

    python3 signing.py [ota_firmware].bin signing_key.pem

  4. 通过APP进行固件升级时,需选择固件和相应的签名文件,才能升级成功。

标签:signing,verifying,OTA,pem,签名,key,固件
From: https://www.cnblogs.com/strengthen/p/17488734.html

相关文章

  • xcode打包APP或真机调试 无法签名的问题(初学者问题)
    一般真机调试的准备工作:在项目的Signing&Capabilities属性设置中,profile首先要导入(从开发者中心下载的.mobileprovision文件,原先就已存在的,一般这一步就已经有坑了),证书从苹果开发者中心下载并安装(原先在开发者中心就已存在的,这里又是一个坑)。但证书状态那里一直显示:Nosigning......
  • logrotate command in Linux with examples
    logrotatecommandinLinuxwithexampleshttps://linuxconfig.org/logrotateInLinux,manyapplicationsandsystemserviceswillstorelogfiles.TheselogfilesgiveaLinuxadministratorinsightintohowtheirsystemisperforming,andareinvaluablewh......
  • 注解 annotation
    内置注解@Override:重写@Deprecated:不推荐使用的@SupperessWarnings("all"):镇压警告元注解用于负责注解其他注解@Target:解释被描述的注解的使用范围@Retention:解释需要在什么级别保存被描述的注解信息(SOURCE<CLASS<RUNTIME)@Document:解释被描述的注解被......
  • 医院设置——锁定和发送签名
    //8、医院设置锁定和解锁:锁定时则无法对医院设置进行操作,只有status=1解锁了才能操作@PutMapping("lockHospitalSet/{id}/{status}")publicResultlockHospitalSet(@PathVariablelongid,@PathVariableIntegerstatus){//根据id查询医院设置信息......
  • 小议C++函数签名与模板返回类型
    题记:什么事情都要追问一个为什么,真正理解了为什么,才能活学活用。代码1下面的代码能编译通过吗?#include<stdio.h>#include<stdlib.h>classX{public:int*get(){returnnewint();}double*get(){returnnewdouble();}};intmain(){int*v1=X()......
  • 在 Apple silicon Mac 上 DFU 模式修复或恢复 macOS 固件
    搭载Apple芯片的Mac电脑DFU模式全新安装macOSVentura请访问原文链接:https://sysin.org/blog/apple-silicon-mac-dfu/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgMaccomputerswithApplesilicon,简称ApplesiliconMac,中文翻译为“搭载Apple芯片的M......
  • 为什么软件要使用代码签名证书?
    在当下木马和病毒横行的互联网世界,越来越多的软件被恶意攻击,这一现实状况使得用户开始在下载软件之前验证其真实性。而代码签名证书的作用正在于验证软件的真实来源,它将向用户证明负责该代码的企业或个人的身份,并确认该代码自应用签名以来从未修改过。代码签名的定义代码签名是......
  • C#.NET CORE .NET6 RSA 私钥签名 公钥验签(验证签名) ver:20230614
    C#.NETCORE.NET6RSA私钥签名公钥验签(验证签名)ver:20230614 环境说明:.NETCORE版本:.NET6。 .NETCORE对于RSA的支持:1..NET6中内置了对PKCS1,PKCS82种私钥格式的支持。2.私钥字符串要去除"-----BEGINRSAPRIVATEKEY-----"、"-----ENDRSAPRIVATEKEY---......
  • ESP32-CAM开发板刷固件时遇到问题与解决方法
    ESP32-CAM开发板刷固件时遇到的问题通过ThonnyIDE给ESP32-CAM刷入micorpython固件时,我遇到三个问题,给大家做个参照。1从MicroPython官网下载的固件没有Camera库,所以经过多次努力,找到了一个国外的开发者前辈,他给MicroPython中添加了Camera摄像头库。2ESP32-CAM有专门的......
  • 2023年 1月 Tita 升级|绩效流程节点支持签名确认
    升级快速一览:点击免费领取绩效考核模版等资料·【考核模板】绩效流程节点支持签名确认;绩效流程节点支持签名确认使用场景:考核执行过程中,在指标确认、绩效面谈、绩效结果确认节点需要执行人的签名确认,并将签名进行留存当前仅支持在指标确认、绩效面谈、绩效结果确认节......