无法使用AES硬件加密块

新6帖子/ 0
最后发表
ankitdaf
离线
最后看到:3年1天前
加入:2015-09-03 20:14
无法使用AES硬件加密块

我试图使用AES硬件加密用户数据,基于BLE应用准系统

我已经通过论坛的其他文件,但它并没有帮助。

我的代码如下:

struct gapm_use_enc_block_cmd * enccmd = KE_MSG_ALLOC (gapm_use_enc_block_cmd, TASK_GAPM, TASK_APP gapm_use_enc_block_cmd);
enccmd操作- > = GAPM_USE_ENC_BLOCK;
uint8_t关键[16]= {0 x00 0 x01 0 x02, 0 x03, 0 x04 0 x05 0 x06 0 x07, 0 (0 x09 0 x0a 0 x0b 0 x0c 0 x0d 0 x0e 0 x0f};
uint8_t pt [16] = {0 x00 (x11) 0 0将0 x33, 0 x44 0 x55 0 x66 0 x77 0 x88 0 x99 0 xaa 0 xbb 0 xcc, 0 xdd 0 xee, 0 xff};
memcpy (enccmd - > operand_1关键16);
memcpy (enccmd - > operand_2、pt、16);
ke_msg_send (enccmd);

这是底部的user_app_init ();

推荐- - - - - -

我添加了user_catch_rest_hndl

案例GAPM_USE_ENC_BLOCK_IND:
{
struct gapm_use_enc_block_ind const * msg_param = (struct gapm_use_enc_block_ind const *)(参数);
uint8_t密文[16];
memcpy(密文,msg_param - >结果,16);
如果(密文[0]= = 0 x01) {
密文[0]+ +;
}

如果(密文[0]= = 0 x01) {
——密文[0];
}
}
打破;

我添加断点,但从未似乎消息。你能帮我找出我失踪/做错了什么?

谢谢

关键词:
设备:
LC_Dialog
离线
最后看到:1月3周前
工作人员
加入:2016-09-19 23:20
你好ankitdaf,

你好ankitdaf,

我目前reveiwing查询和将回到你。

问候,

信用证

ankitdaf
离线
最后看到:3年1天前
加入:2015-09-03 20:14
更新:

更新:

我想出来,我猜一些组件是没有初始化之前user_app_init回报,所以叫gapm_use_enc_block_cmd失败,因为它需要这些组件。称其在广告开始或完成就可以了。

现在我有一个不同的问题。如果我想加密整个数据块,说64字节,有“阻塞”的方法?目前,它发生在一个叫——回调模式,而是繁琐的跟踪。有可能调用硬件加密块,然后等待结果之前?

谢谢

Joacimwe
离线
最后看到:1年8个月前
大师
加入:2014-01-14 06:45
是的。看到我的帖子在https: /
ankitdaf
离线
最后看到:3年1天前
加入:2015-09-03 20:14
谢谢,现在想出来!

谢谢,现在想出来!

我在想如果你可以解释的一些语句。具体原因你在做几件事情我还不清楚. .

1。有文档底层寄存器直接写进吗?(如。BLE_AESKEY31_0_REG BLE_AESCNTL_REG等)

2。
挥发性uint8_t * plaintext_ptr =(挥发性uint8_t *) 0 x80000 + jump_table_struct [offset_em_enc_plain];
挥发性uint8_t * ciphertext_ptr =(挥发性uint8_t *) 0 x80000 + jump_table_struct [offset_em_enc_cipher];

任何理由上面的两个指针地址的吗?
他们是如何选择的?

我想我丢失的东西,一些文档或理解,我希望更好地理解系统。

感谢你的帮助!

谢谢!

Joacimwe
离线
最后看到:1年8个月前
大师
加入:2014-01-14 06:45
没有那么多

没有比里面有什么datasheet.h可用文档。然而字段的名称应该几乎足够的文档。BLE_AESKEYX_X_REG持有的关键,BLE_AESCNTL_REG只有一点叫做AES_START(启动加密时1写入和读取加密正在进行)。BLE_AESPTR_REG包含明文和密文的内存地址(在内存中连续),将(挥发性uint8_t *) 0 x80000 + jump_table_struct [offset_em_enc_plain]。它可以包含任何RAM地址0 x80000段,所以这只是一个任意选择区域。