我正在尝试直接在应用层中进行AES-128加密http://support.dialog-semicondiondiondum/faq/does-da14580- support-aes-128 ...
致电GAPM:
UINT8_T键[16] = {0,1,2,3,4,5,6,7,9,9,10,11,12,13,14,15};
uint8_t plaintext [16] = {0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xA,0xBB,0xCC,0xDD,0xee,0xFF};
struct gapm_use_enc_block_cmd * cmd = ke_msg_alloc(gapm_use_enc_block_cmd,
task_gapm,task_app,
gapm_use_enc_block_cmd);
cmd->操作= gapm_use_enc_block;
memcpy(cmd->操作数_1,键,16);
Memcpy(CMD-> Operand_2,明文,16);
处理APP_TASK_HANDLERS的结果:
{gapm_use_enc_block_ind,(ke_msg_func_t)gapm_use_enc_block_ind_handler},
在app_task.c:
int gapm_use_enc_block_ind_handler(ke_msg_id_t msgid,
struct gapm_use_enc_block_ind * param,
ke_task_id_t dest_id,
ke_task_id_t src_id)
{
memcpy(my_array,param,sizeof(struct gapm_use_enc_block_ind));
return(ke_msg_consumed);
}
我没有收到密码文本69c4e0d86a7b0430d8cdb78070b4c55a(参见http://seit.unsw.adfa.edu.au/staff / sites/lpb/src/aescalc.)。
相反,我得到了一个以d0bfe1c7开头的缓冲区......
难道我做错了什么?
它是一个简单的AES-ECB加密,还是有一些IV涉及?
谢谢
- 解决了 -
一切都颠倒了!
在扭转关键和明文之后:
UINT8_T键[16] = {15,14,11,12,11,10,9,8,7,6,5,4,3,2,1,0};
uint8_t plaintext [16] = {0xff,0xee,0xDD,0xCC,0xBB,0xAA,0x99,0x88,0x77,0x66,0x55,0x44,0x33,0x22,0x11,0x00};
struct gapm_use_enc_block_cmd * cmd = ke_msg_alloc(gapm_use_enc_block_cmd,task_gapm,task_app,gapm_use_enc_block_cmd);
cmd->操作= gapm_use_enc_block;
memcpy(cmd->操作数_1,键,16);
Memcpy(CMD-> Operand_2,明文,16);
我收到了结果5AC5B47080B7CDD830047B6AD8E0C469,即69C4E0D86A7B0430D8CDB78070B4C55A的反向。
所以,为了使用加密“正常”,我应该反转键,反转每个明文块并反转结果......
嗨,@ oren,你能提出你更详细的代码吗?我尝试代码,但我得到了错误的结果,而不是反向。
对不起,我之前没有仔细阅读过您的帖子,现在我在上面描述的正确答案。感谢分享。