全部文档
OneOS简介 硬件支持 快速开发指南 编译构造工具 API参考文档 高级语言 用户编程手册 应用笔记 FAQ

Crypto设备用户开发


一、基础BSP配置--以STM32为例

建立工程文件

如果在提供的OneOS源码中已经有适合的工程DEMO工程,则可以直接使用;如果没有请参照快速上手中的操作指南,新建一个合适的工程。

使用STM32CubeMX配置硬件

  1. 打开 oneos\projects\xxxxx(project文件夹)\board\CubeMX_Config下 的 STM32CubeMX工程文件(xxx.ioc);
  2. 目前STM32主要RNG和CRC功能,本文主要介绍这两类的使用。检查cube中是否已完成配置,若完成则可跳到下一步的配置中;若未配置,则在 CUBE 工程中分别勾选上RNG与CRC的Activated,配置如下图所示。注意检查Clock Configuration下的时钟是否冲突,最后点击GENARATE CODE 生成代码; cube_clock_generate

使用 Menuconfig 配置工程选项

  1. 在对应的 oneos\projects\xxxxx(project文件夹) 目录下打开OneOS-Cube工具,在命令行输入 menuconfig 打开可视化配置界面;
  2. 通过[↑]、[↓]按键、空格、enter键或向右方向键选择 (Top) → Drivers→ HwCrypto下的Using hardware crypto drivers,如下所示:
(Top) → Drivers→ HwCrypto
[*] Using hardware crypto drivers  --->
  1. 进入子菜单栏,根据实际选择上Using hardware RNG和Using Hardware CRC,CRC的加密模式默认选择了CRC-32 0x04C11DB7 Polynomial,可根据实际进行重新选择,如下所示:

    (Top) → Drivers→ HwCrypto→ Using hardware crypto drivers
    (hwcryto) Hardware crypto device name
    (16) IV max size
    (256) Key max bit length
    [ ] Using hardware GCM
    [ ] Using hardware AES
    [ ] Using hardware DES
    [ ] Using hardware 3DES
    [ ] Using hardware RC4
    [ ] Using hardware MD5
    [ ] Using hardware SHA1
    [ ] Using hardware SHA2
    [*] Using hardware RNG
    [*] Using hardware CRC
    [ ]     Using hardware CRC-8 0x07 polynomial
    [ ]     Using hardware CRC-16 0x8005 polynomial
    [ ]     Using hardware CRC-16 0x1021 polynomial
    [ ]     Using hardware CRC-16 0x3D65 polynomial
    [*]     Using hardware CRC-32 0x04C11DB7 polynomial
    [ ] Using hardware bignum
    
  2. Esc键退出menuconfig,注意保存所修改的设置。

使用 Scons 构建工程

在上一步打开的OneOS-Cube 工具命令行中输入 scons --ide=mdk5重新构建keil工程;

二、工程编译及实现

  1. 打开对应的 oneos\projects\xxxxx(project文件夹) 目录下的 project.uvprojx 工程文件,此时即可在工程中添加相应的应用程序。

  2. 在打开的工程application 文件夹中右键选择Manage Project Items,按下图所示添加提供的crypto_crc_test.c和crypto_rng_test.c文件(路径:oneos\drivers\driver_test);

    cube_clock_generate

  3. 编译工程后将代码下载到对应开发板,运行程序;

  4. 打开串口工具如xshell、SecureCRT等,通信成功后,输入hwcrypto_crc_test命令,即可查看到CRC的测试效果,输入hwcrypto_rng_test即可观看到RNG设备所生成的随机数据。

  5. 如不再使用Crypto设备,可在STM32CubeMX下取消相应使能,并再次使用OneOS-Cube工具勾选掉Crypto设备(在Drivers→ HwCrypto 下取消Using hardware crypto drivers的选择),保存设置后重新生成工程即可。

results matching ""

    No results matching ""