我正在为一个学校项目实施 AES。我有一个函数 aes_block,它接受 uint8_t 的一维数组(长度为 16)作为消息;我想就地加密这条消息。第一步是将字节 in[0], in[1], ... in[15] 映射到二维状态数组 s[0,0], s[1,0], s[2, 0], s[3,0], s[0,1], ..., s[3,3],由 FIPS 197 指定。我尝试这样做:
void aes_block(int keylen, const uint8_t *key, uint8_t *msg){
uint8_t state[4][4] = msg;
...
}
允许我通过 state[col][row] 来索引状态数组。这给了我一个编译器错误“无效的初始化程序”;我怎样才能完成我想做的事情?