请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430FR5994 主题中讨论的其他部件:MSP-EXP430FR5994
我正在使用DMA进行ECB加密。 我在加密静态缓冲区时发现一个异常问题:
UINT8_t加密缓冲器[64]= { 0xFC,0x76,0x00,0x00,0x01, 0x5b,0x58,0xa7, 0x78,0x30,0x01,0x00,0x00, 0x01,0x5b,0x58, 0xa7,0x78,0x30,0x00,0x00, 0x00,0x00,0x40, 0x66,0x66,0x66,0x40,0x43, 0x52,0x82,0x1E, 0x52,0xD1,0x5e,0xc0,0x5e, 0x5a,0x19,0x29, 0x31,0x51,0xb2,0x3D,0xcc, 0xcc,0xcd,0x43, 0x03,0x51,0xec,0x40,0x16, 0x88,0x04,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x4c ;
此缓冲区驻留在RAM中,与驻留在FRAM中的缓冲区相比,我得到不同的加密答案:
加密的RAM应答(错误):
22 f1 fe d0 94 da c2 1f ab e6 03 4c d4 64 d7 ee
F7 14 F8 C3 20 2b af ad ae 8d 1a 4F b0 3c 79 76
BF 10 5a E6 57 8d D3 67 D5 90 45 32 3e b0 86 A4
25 57 ea 72 fb a7 26 b6 bf 06 a0 d1 3e a6 da d5
加密FRAM答案(正确):
17 71 ff 8d f8 c1 50 d3 0d 4c c0 65 cb 27 5a 43
6a 2b df F7 44 EC b0 74 34 2c 6a B2 56 21 66 b0
F4 C8 C5 8e 86 7e AD 9b B3 ae 6d 46 da 30 74 be.
BD 1e ed 68 9b F4 4a D7 0f d6 8f 9f 9b 54 2a 7f
密钥是通用的:
const uint8_t default_AESkey_buffer [32]= { 0x00,0x01,0x02,0x03,0x04, 0x05,0x06,0x07, 0x08,0x09,0x0A,0x0B,0x0C, 0x0D,0x0E,0x0F, 0x10,0x11,0x12,0x13,0x14, 0x15,0x16,0x17, 0x18,0x19,0x1A,0x1B,0x1C, 0x1D,0x1E,0x1F ;
如果我将encryptthisBuffer[]设置为const,则自IAR编译器将其放入FRAM (代码)内存后,它就可以工作。
但是如果它是全局静态分配的RAM缓冲区,我通过DMA加密引擎获取了错误的数据。
下面是IAR调试器中数据的一些图像片段(仅图像中加密数据的前5个字节):
错误:
良好:
我是不是干得干,做得不对,还是有问题?
谢谢!
-Jim Patten