[开发工具]

【PW200烧录器评测】四:在线授权加密

[复制链接]
831|3
手机看帖
扫描二维码
随时随地手机跟帖
数码小叶|  楼主 | 2020-7-22 11:01 | 显示全部楼层 |阅读模式
本帖最后由 数码小叶 于 2020-7-22 10:59 编辑

      这个耗了两天的时间,主要开始的时候没有准确认识到一点“在线 ECDSA 授权的硬件端 SDK 同 ICWKEY 的 SDK, 只不过服务器在线授权是远程服务器授权方式, ICWKEY 是本地方式, 两者各有优势。”没有发现和ICWKEY授权的关系,于是只按照在线授权章节移植,移植的时候,缺哪个函数去找哪个、补哪个,最后才发现是基于ICWKEY的SDK开发的,虽然走了弯路,但是加深了很大的映像。
微信图片_20200721210816.png

尝试了无数次烧写,这是这次试用中,折腾最久的。

弄在线授权的过程,实际也是体验了一次远程烧录。首先要注册一个账号


Snipaste_2020-07-20_08-47-12.jpg

注册号账号,才能扮演开发者后购买者。


然后以开发者身份进入授权中心



Snipaste_2020-07-20_08-50-31.jpg

可以看到算法和项目两个列表
Snipaste_2020-07-21_21-18-00.png

然后新建一个算法和一个项目,新建算法的时候,那个公钥后面要用到,可以直接复制一下,下载按键下下来的是.cert文件,二进制的,不方便编辑,直接复制可以方便很多。
Snipaste_2020-07-20_08-52-08.jpg
Snipaste_2020-07-20_08-56-32.jpg


这个flash写入地址也要复制下来,过会能用上。

接下来就需要一个工程了,本来是按照在线授权那一章操作的,现在发现简单多了,直接使用SDK文件,添加到keil里就行了,主要是sissdk文件夹,其中mbedtls可以单独建立一项,里面的文件全部包含,手册里有介绍:“mbedtls 为 arm 开发的轻量级加密库, 这是一个跨平台的加密库, 并且拥有极高的性能, 这里是 power writer 采用此加密库用于项目开发的首选加密库,



Snipaste_2020-07-21_21-26-05.png

要是在之前的基础上用以前的过程,实际会有很多冲突的地方,比如重复定义,地址冲突,定义冲突等,虽然修改也不麻烦,但是费事,所以最好新建一个工程。
添加头文件搜索路径,最好使用相对地址,避免后面移动带来的麻烦


Snipaste_2020-07-22_08-34-35.jpg

把刚才复制的公钥复制到cortex_chipid_binding_ecdsa.c文件中,替换原来的公钥
Snipaste_2020-07-20_10-03-38.jpg

Snipaste_2020-07-20_10-06-26.jpg


以及修改刚才网页上新建项目时填的flash写入地址


Snipaste_2020-07-20_10-22-12.jpg


这会烧写进去会提示全部失败


Snipaste_2020-07-20_15-43-27.jpg

还有一点要改的,就是cortex_chipid_binding_ecdsa.h里的UID_CHIP_ADDR_ECDSA,开始就是没注意到这点,以为在cortex_chipid_binding里定义过了,结果各种修改,各种验证不通过


Snipaste_2020-07-22_08-43-58.jpg

Snipaste_2020-07-20_15-43-27.jpg

这个值和具体的芯片有关,开始没注意到这点,经技术人员指点,才发现,这个值在参考手册里Unique device ID register章节写明
Snipaste_2020-07-21_16-09-12.jpg

最后一点,把堆空间扩大,因为据说据说用到了malloc函数申请动态内存,这个自己没找到,不过为了保险,还是扩大了
Snipaste_2020-07-22_08-56-25.jpg

然后就是按照之前的体验那样,将工程用PowerWrite打包成.PKG工程,就一点,这里选择在线还是离线的区别,选在线就是一个在线验证,选离线,既包含在线也包含了离线
Snipaste_2020-07-22_08-58-04.jpg

打包完成后,再回到刚才的创新工坊,我是开发者,软件中心,程序发布
Snipaste_2020-07-20_15-52-46.jpg

Snipaste_2020-07-20_15-54-43.jpg

Snipaste_2020-07-20_15-55-09.jpg

所有的按照要求填写即可,很方便。就是这里的指定对象,居然是必须填写的,感觉可以没必要强制。(后来想了想,这一项以及其他选项,确实不能做成自由的,一定得是发布后不能更改项,不然就存在交易的不可靠性了)。这里先把自己的号填上。再在电脑上安装创新工坊客户端,登录刚才注册的账户
Snipaste_2020-07-20_15-58-37.jpg

勾选需要烧写的项目,每次烧写前会提示剩余次数,这块做的比较好,实际次数是在烧写成功后才减的。总共烧写失败了大概七八次。
Snipaste_2020-07-20_16-01-46.jpg

Snipaste_2020-07-20_16-03-37.jpg





失败N次,最后打印出双验证通过


Snipaste_2020-07-21_16-17-37.jpg

这一次操作还碰到一个问题,就是用PowerWriter烧写的时候,偶然的七八次写入报错,基本都是写入在0x802XXXX到0x804XXXX之间报错,不知道是不是和芯片有关,还是擦除不彻底,亦或是在PowerWriter和创新工坊客户端之间来回烧录造成的。
Snipaste_2020-07-22_10-58-32.jpg


另外一小问题就是Power Writer用户手册里的外部链接都打不开,提示“{"errCode":1,"errMsg":"\u672a\u767b\u5f55"}”,比如


Snipaste_2020-07-22_10-23-33.jpg


Snipaste_2020-07-22_10-27-24.jpg


对比发现和实际能打开的网址不一致,可能后期网站做了调整,手册还没调整过来。






使用特权

评论回复
饭伤胃| | 2020-7-22 16:00 | 显示全部楼层
很详细,虽然有吐槽,不过也有理解
反馈的问题我们已记录,非常感谢。

使用特权

评论回复
捉虫天师| | 2020-7-22 17:54 | 显示全部楼层
功能很强大。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

103

主题

2536

帖子

19

粉丝