大家好、
我正在尝试使用 TI 的 AESECB 加密库、在使用 IAR 进行调试时遇到 CSTACK 超出堆栈范围错误(运行时)。
我尝试在 ICF 文件中更改堆栈大小、但 它太大、也没有帮助。
以下是我尝试执行的代码:
AESECB 句柄;
CryptoKey 加密密钥;
int_fast16_t 加密 Result;
uint8_t 明文[]={0x6b、0xc1、0xbe、0x2、0x2e、 0x40、0x9f、0x96、
0xe9、0x3D、0x7E、0x11、0x73、 0x93、0x17、0x2a、
0xae、0x2D、0x8a、0x57、0x1E、 0x03、0xac、0x9C、
0x9e、0xb7、0x6f、0xac、0x45、 0xaf、0x8e、0x51};
uint8_t 密文[32];
uint8_t 密钥材料[16]={0x2b、0x7E、0x15、0x16、0x28、 0xae、0xd2、0xa6、
0xab、0xf7、0x15、0x88、0x09、 0xCF、0x4f、0x3c};
句柄= AESECB_OPEN (0、NULL);
if (handle == NULL){
//处理错误
}
CryptoKeyPlaintext_initKey (加密密钥、密钥材料、sizeof (密钥材料));
AESECB 操作;
AESECB _操作_初始化(&operation);
operation.key =加密密钥(&C);
operation.input =纯文本;
operation.output =密文;
operation.inputLength = sizeof (明文);
EncryptionResult = AESECB_oneStepEncrypt (handle、&operation);
if (加密 Result!= AESECT_STATUS_SUCCESS){
//处理错误
}
//生成的密文应为:
// 0x3a、0xd7、0x7B、0xb4、0x0d、 0x7a、0x36、0x60、
// 0xa8、0x9e、0xca、0xf3、0x24、 0x66、0xef、0x97、
// 0xf5、0xd3、0xd5、0x85、0x03、 0x69、0x9d、
// 0xe7、0x85、0x89、0x5a、0x96、 0xFD、0xBA、0xaf
AESECB_CLOSE (句柄);