本篇博文最后修改时间:2017年06月02日,22:42。
一、简介
本文以SimpleBLEPeripheral工程为例,介绍如何在工程中使用加密与解密算法。
二、实验平台
协议栈版本:ble_cc26xx_2_01_00_44423
编译软件:IAR Embedded Workbench for ARM Version 7.40
硬件平台:CC26xxDK开发板
仿真器:XDS100V3(香瓜)
三、版权声明
博主:甜甜的大香瓜
声明:喝水不忘挖井人,转载请注明出处。
原文地址:http://blog.csdn.NET/feilusia
联系方式:897503845@qq.com
香瓜BLE之CC2541群:127442605
香瓜BLE之CC2640群:557278427
香瓜单片机之STM8/STM32群:164311667
香瓜单片机之Linux群:512598061
香瓜单片机之职场交流群:450154342
香瓜单片机之职场交流群:450154342
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i
四、
实验前提
1、在进行本文步骤前,请先
阅读
以下博文:
1)《CC2541之数据加密与解密》:http://blog.csdn.net/feilusia/article/details/50085225
2)《CC2640 AES Encryption》:http://processors.wiki.ti.com/index.php/CC2640_AES_Encryption
2、在进行本文步骤前,请先
实现以下博文:
1)《CC2640之按键》:http://blog.csdn.net/feilusia/article/details/52221525
五、实验步骤
1、工程中添加加密文件
1)确保本电脑的TIOS路径中有加密文件
1)确保本电脑的TIOS路径中有加密文件
在“C:\ti\tirtos_simplelink_2_13_00_06\products\cc26xxware_2_21_01_15600\driverlib”
请找到
rom_crypto.c和rom_crypto.h。
如果没有,说明TIOS的版本过低,请下载最新的TIOS,比如香瓜又去TI的官网下载最新的TIOS(tirtos_cc13xx_cc26xx_2_18_00_03版本)。
并将
“C:\ti\tirtos_cc13xx_cc26xx_2_18_00_03\products\cc26xxware_2_23_03_17162\driverlib”的rom_crypto.c和rom_crypto.h
拷贝至
本电脑使用的TIOS路径“C:\ti\tirtos_simplelink_2_13_00_06\products\cc26xxware_2_21_01_15600\driverlib”
2)工程中添加rom_crypto.c和rom_crypto.h
2、应用层中调用
1)修改按键处理函数(simpleBLEperipheral.c中GUA_HandleKeys)
static void GUA_HandleKeys(uint8 keys)
{
//加密秘钥 16个字节=128bit
uint8 key[16] = {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
//需要加密的数据
uint8 data[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
//加密后数据存放区
static uint8 EncryptedData[16] = {0};
//解密后数据存放区
static uint8 DeccryptedData[16] = {0};
//UP键
if ( keys & KEY_UP )
{
//加密
AES_ECB_EncryptData(data, 16, key);
memcpy(EncryptedData, data, 16);
//解密
AES_ECB_DecryptData(data, 16, key);
memcpy(DeccryptedData, data, 16);
}
}
六、实验结果
如上图,设置断点并仿真运行工程,可见最开始的数据1~16,最终会被解密到DeccryptedData缓冲区中。具体细节自己单步看看便知。
因此实验成功~