tea文件加密算法+java_用tea算法对kernel进行加密

为了保存flash上数据的安全,需要对kernel和文件系统进行加密。

加密采用tea加密算法。

1 在PC上对kernel的img文件进行加密,同时对密钥加密,保存在img末端。

2 hi3510通过i2c与psoc进行通信,将加密过的密钥发给posc,psoc使用保存在内部的key对密钥进行

解密,解密后发给3510.3510根据密钥对kernel img进行解密,解密后跳转。

解密阶段发生在将kernel从flash拷贝到ram;

文件系统的加密暂未实现。

注意:

1 pc上对密钥加密使用的key 和 psoc上对密钥解密使用的key 相同,事先约定好的。

2 hi3510 为小端字节序,而psoc为大端字节序。

加密的kernel实为mkimage制作的镜像;mkimage为uboot下的一个工具,主要作用是对编译的好的内核加一个image_header_t 头,指定kernel的类型、名字、以及加载地址和入口地址。其中加载地址为将kernel从flash 拷贝到ram的地址,而入口地址为uboot将cpu交给kernel的跳转地址(即kernel执行的第一条指令地址,我的理解);uboot的do_bootm/* in comm/cmd_bootm.c*/函数的主要两个工作:

1 判断image_header_t中的加载地址和do_bootm传入的参数addr是否相等;如果相等,表示现在内核已经位于image_header_t中ih_load指定的位置,不再做复制kernel的工作;如果不相等,表示kernel仍然处于flash,将kernel的数据拷贝到ih_load指定的位置(该数据没有包括image_header_t,所以mkimage时一定注意入口地址的指定)

2 调用do_bootm_linux启动kernel。

mkimage时,可以指定加载地址和入口地址相等,也可以不相等;在m161中,将入口地址指定为加载地址向后偏移64字节(image_header_t的大小)

阅读(1268) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值