当前位置: 首页 > news >正文

域名注册和网站哪个好3d自学网站

域名注册和网站哪个好,3d自学网站,网站添加ico图标,网站开发李沛杰文章目录 目的资料索引硬件电路软件框架介绍数据存储框架移植框架使用 使用示例示例地址与硬件连接通讯测试功能测试 总结 目的 OPTIGA TRUST M 是英飞凌推出的安全芯片,芯片通提供了很多 slot ,用于存放各类安全证书、密钥、用户数据等,内置…

文章目录

  • 目的
  • 资料索引
  • 硬件电路
  • 软件框架介绍
    • 数据存储
    • 框架移植
    • 框架使用
  • 使用示例
    • 示例地址与硬件连接
    • 通讯测试
    • 功能测试
  • 总结

目的

OPTIGA TRUST M 是英飞凌推出的安全芯片,芯片通提供了很多 slot ,用于存放各类安全证书、密钥、用户数据等,内置很多加解密算法,另外还内置一些计数器等。芯片通过I2C和主机通讯,这个通讯也是可以加密进行的,防止被监听。这篇文章将对该芯片相关的使用做个介绍。

资料索引

OPTIGA™ 嵌入式安全解决方案

我这里使用的是:OPTIGA TRUST M SLS32AIA
在这里插入图片描述

这个芯片虽然是I2C通讯的,但是通讯本身比较复杂,涉及到英飞凌自己的传输层以及加密通讯等,所以开发都是基于英飞凌提供的库( OPTIGA™ Trust M Software Framework )之上进行的:
https://github.com/Infineon/optiga-trust-m

上面项目 release-v5.0.0 以前是带文档的,之后的版本中移除了文档,现在文档可以在下面仓库找到:
https://github.com/Infineon/optiga-trust-m-overview

本文介绍示例编写时用的 release-v4.2.0 版本,新版本和旧版本可能在文件命名或分布上有所区别,但是基本的思路都是一样的。

硬件电路

硬件电路搭建可以参考《OPTIGA™ Trust M Datasheet》文档,唯一需要注意的是引出RST引脚给单片机控制,如果不手动来复位的话可能芯片无法正确工作:
在这里插入图片描述

可以用下面板子进行测试:
https://github.com/NaisuXu/OPTIGA_Trust_M_Module
在这里插入图片描述

软件框架介绍

英飞凌 OPTIGA™ Trust M Software Framework 使用上主要参考 《OPTIGA™ Trust M Solution reference manual》 文档。

数据存储

OPTIGA TRUST M 最主要的提供了两类功能,一个是存储密钥、证书、用户自定义数据、芯片特定数据、计数值等的槽位(Slot)。可用槽位视图如下:
在这里插入图片描述

每个槽位,有一个最大44字节的元数据(Metadata)来描述其作用、属性、操作权限等。比如你可以向密钥槽中存放密钥,然后通过元数据设定属性为密钥、设定其不能读写、设定其可以用作芯片内部加解密算法执行使用。

槽位相关的内容主要在参考手册的《OPTIGA™ Trust M data structures》章节。

框架移植

下图是框架的内容布局:
在这里插入图片描述
移植工作主要需要处理的是 PAL 层 ,框架中提供了模板和示例,根据需求移植就行。需要注意的是这个框架在主机端需要用到软件加解密功能,默认框架中已经包含了 mbedtlspal_os_memory.c 这个文件提供内存申请释放等接口, 4.2.0 版本中该文件可以从上一级目录下各平台PAL示例中拷贝一份修改用。
在这里插入图片描述

PAL层需要处理的东西不多,下面介绍些基本的需要处理的地方,其他没有介绍到的部分可以根据自己的需求来处理:

  • pal_gpio.c
    根据前面讲的需要控制RST引脚,这里就是对相关引脚的操作函数接口;
  • pal_i2c.c
    这里是i2c读写相关接口,如果是同步方式处理i2c,那么只需要实现write和read函数功能即可,如果是异步方式操作,write和read只是实现了一般,结束后还需调用该文件中定义的几个callback函数;
  • pal_os_event.c
    这是该库最核心的一个功能。这个库中有非常多的异步操作,通过这里来实现。库运行时需要执行异步操作时会调用这里的 pal_os_event_register_callback_oneshot 函数,你需要保存传入的回调函数、参数、时间信息,然后在过了前面的时间之后调用这里的 pal_os_event_trigger_registered_callback 函数。
  • pal_os_timer.c
    需要提供系统微秒毫秒时间及毫秒延时接口,微秒无法提供了话至少每次返回一个自增的值;

框架使用

移植完成后框架基本使用本身挺简单,框架中也带了非常多的例程:
在这里插入图片描述

主要操作就是初始化一些句柄,然后向安全芯片打开应用,之后就是处理自己的业务功能,处理完成之后关闭应用,销毁句柄。

需要注意的是这个库使用时很多操作都是需要和芯片通讯,然后芯片处理完成之后再次通讯去取结果的,看例程的话可以看到很多 WAIT_AND_CHECK_STATUS(return_status, optiga_lib_status); 这种操作,这里有可能是非常耗时的,这在有操作系统的情况下挺好开发,没有操作系统的情况下就要使用合适的方式来处理了。在本文下面的示例中我使用了 protothreads(pt-1.4) 来实现不阻塞的异步功能。

使用示例

示例地址与硬件连接

https://github.com/NaisuXu/OPTIGA_Trust_M_Examples

在这里插入图片描述

在这里插入图片描述

通讯测试

《STM32_Check_I2C_STATE_Register_Without_Host_Library》这个示例用于测试I2C和芯片间通讯是否可用。 OPTIGA TRUST M 的地址固定位 0x30 (即可以通过 0x600x61 分别进行读和写)。访问安全芯片 0x82 命令,如果通讯正常可以获取到 0x08 0x80 0x00 0x00 内容。

在这里插入图片描述

需要注意的是这个安全芯片会自动进入休眠,初次访问可能会失败,连续访问下之后的访问应该会成功。

功能测试

《STM32_NonOS_With_Host_Library》这个示例移植了英飞凌代码框架,另外还移植了 protothreads(pt-1.4) 来实现无操作系统下的异步功能(协程)。

示例中演示了 生产随机数、读取芯片UID、使用计数器 几个功能,可以通过主函数中的宏定义来切换:
在这里插入图片描述

example_crypt _random
在这里插入图片描述

example_read_coprocessor_id
在这里插入图片描述

example_util_update_count
该示例设置了计数器的阈值位10,到达阈值后再计数就报错。
在这里插入图片描述

总结

OPTIGA TRUST M 本身的通讯访问上还是比较复杂的,不过官方提供了库,用起来倒也不复杂。这类安全芯片在对安全要求高或是成本不敏感的场合使用还是挺不错的。

http://www.yayakq.cn/news/563874/

相关文章:

  • 动力风网站建设及软件开发合同企业网站建设公司网络
  • 快速网站收录上海外贸推广建站
  • 团关系转接网站建设郑州专业网站制作的公司哪家好
  • 崔凯 本地wordpress中文网站站内优化怎么做
  • 全自动建站系统源码wordpress小机巧
  • wordpress 自动安装 插件东莞百度seo推广机构
  • 网站开发大致需要哪些步骤都市人才网莱芜
  • 深圳极速网站建设公司qq电脑版
  • 优惠做网站建设家具网站
  • 用户体验 网站 外国手机端网站思路
  • 南宁最高端网站建设网站建设方面
  • 公司网站建设宣传话语网站站长统计代码
  • 网站开发及设计wordpress商城小程序
  • 网站前端设计公司正规seo排名多少钱
  • 简单网站开发实例网站上广告
  • 宁波seo网站建设费用wordpress浏览人数在哪里改
  • 开锁在百度上做网站要钱吗企业网站备案名称
  • 网站 通管局 报备wordpress 更改主题
  • 中建材建设有限公司网站网站建设思路设计
  • 网站建设 音频插件养老院网站建设
  • 威海建设集团的网站是什么app开发设计
  • 网站建设与运营公司财务预算高端网站开发 金蝶
  • 网站的风格指的是什么企业网站建设设计需要什么
  • 网站建设与网页设计课程设计建设银行网站怎么看不见余额
  • 做网站建设的前景做网站有哪些需求
  • 如何使用阿里云建站政协信息化网站建设的请示
  • 深圳专业的网站建设室外绿化工程施工方案久久建筑网
  • 比较好的免费网站网络平台推广方案
  • 千万不要嫁给程序员搜狗seo查询
  • 网站描述代码wordpress网页设计步骤