sm2

2016-2017-1 20155215 20155232 实验二 固件程序设计

China☆狼群 提交于 2020-02-02 00:09:02
实验二 固件程序设计 固件程序设计-1-MDK 0. 注意不经老师允许不准烧写自己修改的代码 1. 两人(个别三人)一组 2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 3. 提交破解程序中产生LIC的截图 4. 提交破解成功的截图 固件程序设计-2-LED 0. 注意不经老师允许不准烧写自己修改的代码 1. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图 3. 实验报告中分析代码 代码分析 主函数代码 : 系统初始化; SystemInit (); 判断按键,确认是否进行程序下载; if(0 == GPIO_GetVal(0)) { BtApiBack(0x55555555, 0xAAAAAAAA); } 设置 GPIO0 状态为上拉输出; GPIO_PuPdSel(0,0); // 设置 GPIO0 为上拉

C语言SM2算法实现(基于GMSSL)

落爺英雄遲暮 提交于 2020-01-23 23:09:00
最近项目中需要通过C语言实现SM2、SM4国密算法,这里我基于GMSSL来进行实现,本人已在这5种环境下全部实现,并已使用在生产环境中。 1、GMSSL编译 GMSSL编译在不同环境下都不一样,这里我提供Window64、Arm64、Linux64、Android、himix200海思芯片 环境编译方法,传送门如下: Gmssl官网地址 Gmssl 各平台编译方法【绝对可用】 如果各位都是比较懒得人,我这里也给各位提供上述五种环境已经编好的库,传送门如下: Gmssl链接库(himix200、android、arm64、linux64、windows64) 2、SM2实现 我们基于第一步编译出来的库来实现我们的SM2算法,头文件相关代码(authref.h)如下: #ifndef __AUTHREF_H__ #define __AUTHREF_H__ #include <assert.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #define SM2_PUB_KEY_SIZE 178 // SM2 公钥的位数 typedef struct SM2_KEY { uint8_t *pub_key; uint8_t *pri_key; } T_sm2_key; typedef struct ENCRYPT

基于单片机的GPS开发 (one) UART串口精讲

删除回忆录丶 提交于 2020-01-19 11:56:49
1、89C51串行口特点 UART是单片机中的串行异步通信接口,全双工串口,能同时发送和接收数据 可编程:其帧格式可以是8位,10位,11位,并能设置各种波特率 2、控制寄存器 对 89C51串行口初始化编程只用两个控制字分别写入特殊功能寄存器SCON和电源控制寄存器PCON中即可。 (1)SCON控制寄存器 SM0、SM1:工作方式控制位 SM2:多机通信控制位,1-允许、0-不允许 REN:串行接收允许位。1-允许、0-不允许 TB8:发送数据第九位 RB8:接收数据第九位 TI:发送中断标志位 RI:接收中断标志位 SM0和SM1 : 串行口工作方式选择位 ,两个选择位对应四种通信方式,如下图所示,其中fosc是振荡频率 SM2: 多机通信控制位,主要用于方式2和方式3。 *若SM2 = 1;则允许多机通信。多机通信协议规定,第9位数据(D8)为1,说明本帧数据为地址帧;若第9位数据为0,则本帧数据为数据帧。当一个89c51(主机)与多个89c51(从机)通信时,所有从机的SM2位都置1,主机首先发送的一帧数据为地址,即某从机号,其中第9位为1,所有的从机接收数据后,将其中第9位数据装入RB8中。各个从机根据接收到的第9位数据(RB8中)的值来决定从机是否再接收主机的信息、若(RB8)= 0,说明是数据帧,则使接收中断标志位RI = 0,信息丢失,若RB8 = 1

国密项目app中的国密算法测试

China☆狼群 提交于 2019-12-28 02:42:11
国密算法测试总共有10项内容: 1.SM2密钥生成 2.SM2加密 3.SM2解密 4.SM2签名 5.SM2验签 6.SM3计算HASH 7.SM4 ECB模式加密 8.SM4 ECB模式解密 9.SM4 CBC模式加密 10.SM4 CBC模式解密 国密算法测试报文的网络管理信息码如表1所示。 表1 网络管理信息码 国密算法测试报文的60域数据组成如表2所示,62域数据组成如表3所示。 表2 60域数据组成 表3 62域数据组成 1. SM2密钥生成 终端发送给服务器的sm2生成密钥报文如下: Bit[60](len = 11) 00 //交易类型码 00 00 01 //批次号 31 4 //SM2密钥生成,起始标志位,网络管理信息码 Bit[62](len = 200) 00 00 //请求数据索引 00 60 //后面的数据长度,96个字节 //终端产生的SM2公钥,64个字节 86 78 df 5a 8e c9 81 9b 06 98 4f 36 59 ee e2 13 34 8a 1e 4b 22 05 c4 5f 70 52 a5 06 53 9d f5 4b 4b ae 74 e8 98 b7 5b 96 1f 13 02 aa 8f 77 c1 bb e4 cd 19 c9 d5 8e c5 dd 46 96 ba 96 ea 49 00 ea /

国密算法

余生长醉 提交于 2019-12-15 23:46:00
sm2: 生成sm2的txt格式公私钥文件:gmssl sm2 -genkey -sms4 -text -out sm2.txt 文章: 文档:http://www.gmbz.org.cn/main/bzlb.html gmssl官网:http://gmssl.org/ https://blog.csdn.net/yuhonqin/article/details/50748559 http://www.qukuaiwang.com.cn/news/2271.html 文档: https://www.jianshu.com/p/b3be35c1d424 https://www.jianshu.com/p/42bf7c4d6ab8 来源: CSDN 作者: YPFeime 链接: https://blog.csdn.net/YPFeime/article/details/103553972

N76E003之串口

匿名 (未验证) 提交于 2019-12-03 00:39:02
N76E003包含两个具备增强的自动地址识别和帧错误检测功能的全双工串口。由于两个串口的控制位是一样的,为了区分两个串口控制位,串口1的控制位以“_1”结尾(例如SCON_1)。下述详例以串口0为例。 每个串口都有一种同步工作模式:模式0。三种全双工异步模式:模式1,2,和3,这意味着收发可以同时连续进行。串口接收带有接收缓存,意味着在接收的前一个数据在被读取之前,串口就能接收第二个数据。接收和发送都是对SBUF进行操作访问,写入SBUF数据将直接传到发送寄存器,而读取SBUF是访问一个具有独立物理地址的接收寄存器。串口共有4种操作模式,任何一种模式,任何以操作SBUF的指令都将开始一次传输。注意,在使用串口功能前,串口所用管脚P0.7及 P0.6 (RXD 及 TXD引脚) 或者 P0.2及 P1.6 (RXD_1 及 TXD_1)必须先置1。N76E003提供更灵活的管脚配置,可将串口0的TXD及RXD通过UART0PX (AUXR1.2)更改位置。 13.1 ģʽ 0 模式0是与外部设备进行同步通信的方式。在该模式下,串行数据由RXD脚进行收发,而TXD 脚用于产生移位时钟。这种方式下是以半双工的形式进行通信,每帧接收或发送8位数据。数据的最低位被最先发送或接收,波特率设置为FSYS/12(SM2 (SCON.5) 为 0) 或 FSYS/2 (SM2 为 1)