您好!
我正在使用 CC1200 H/W 实施 AES CBC 加密 我目前正在使用以下代码来执行加密。
uint8_t AES_reg;
uint8_t temp_data[16]={0X00U、0x01U、0x02U、0x03U、0x04U、 0x05U、0x06U、0x07U、0x08U、0x09U、 0x0AU、0x0BU、0x0CU、0x0DU、0x0EU、 0x0FU};
uint8_t temp_key[16]={0X01U、0X01U、0X01U、0X01U、0X01U、0X01U、 0X01U、0X01U、0X01U、0X01U、0X01U、 0X01U、0X01U、0X01U、0X01U、0X01U、 0X01U};
SPI_1_WriteBurstReg_Extended (CC1200_AES_KEY、TEMP_KEY、AES_BLOCK_SIZE);
SPI_1_WriteBurstReg_Extended (CC1200_AES_buffer、temp_data、AES_BLOCK_SIZE);
SPI_1_WriteReG_Extended (CC1200_AES、0x01);
AES_reg = SPI_1_ReadReG_Extended (CC1200_AES);
while ((AES_reg & 0x01)== 0x01){
AES_reg = SPI_1_ReadReG_Extended (CC1200_AES);
}
SPI_1_ReadBurstReg_Extended_Buffer (CC1200_AES_buffer、AES_BLOCK_SIZE);
我重复运行该操作并观察输出缓冲器。 由于我使用的是相同的密钥和相同的数据、我认为加密输出值应始终相同。 但是、在我的案例中、输出值会发生变化。
我使用逻辑分析仪检查了这一点、以验证数据传输是否存在任何问题。 请找到以下图片。
周期1:数据
周期1:键
周期#1:等待
周期1:输出
周期#2:数据
循环#2:钥匙
周期#3:等待
周期#4:输出
您可以看到、这两种情况的输出是不同的。
我缺少什么? 可以有人提供帮助。
谢谢!