近些年,汽车新势力的强势入局,汽车行业,大有"百花齐放"的盛况.汽车行业的蓬勃发展,催生多种新技术的诞生和跨界使用,比如:软件认证功能(Software Authentication).讨论的内容包括但不限于:1,软件Part创建 2,软件签名 3,软件下载与验证......
本文讨论第一个点:软件Part创建(Create SW Part)
关注微信公众号"开心果Need Car",一起讨论Autosar开发中遇到的那些"坑"!
一个Software Part可以包含多个Data Blocks.这里解释一下Software Part和Data Blocks.Software Part:软件块,比如:Application程序块,标定块(Calibration)等.Data Blocks:软件被编译器编译后,并不连续,而是分段的.
注意:签名信息又分为产品签和开发签.开发签主要在开发阶段使用,产品签主要用于产线.
这里我们先展开一下root hash的验证过程:当VBT刷写进ECU Memory以后,会调用HSM接口,根据VBT的StartAddress,Length,Data计算root hash(这里记为root_hash_1).注意,此处的VBT Block和Data Block已通过Transfer Data service (0x36) 存储到ECU的指定 Memory;当ECU收到上位机发送的签名信息以后,根据签名信息再次调用HSM计算root hash(这里记为root_hash_2);如果root_hash_1 == root_hash_2,则VBT验证通过,之后进行后续的Data Block验证;否则,验证失败,即:刷写失败.
提示:每个Data Block的hash值仅是Data Block的Data计算结果;VBT的hash值(root hash)是VBT对应的Start Address,Length,Data计算结果.
Hash value的长度与使用的Hash算法相关,比如:使用SHA-256,则Hash value = 256 bit = 32 Byte.
关注微信公众号"开心果Need Car",一起讨论Autosar开发中遇到的那些"坑"!