嗨
我试图使用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];
}
}
打破;
我添加断点,但从未似乎消息。你能帮我找出我失踪/做错了什么?
谢谢
你好ankitdaf,
我目前reveiwing查询和将回到你。
问候,
信用证
更新:
我想出来,我猜一些组件是没有初始化之前user_app_init回报,所以叫gapm_use_enc_block_cmd失败,因为它需要这些组件。称其在广告开始或完成就可以了。
现在我有一个不同的问题。如果我想加密整个数据块,说64字节,有“阻塞”的方法?目前,它发生在一个叫——回调模式,而是繁琐的跟踪。有可能调用硬件加密块,然后等待结果之前?
谢谢
是的。看我的帖子https://support.dialog-semiconductor.com/feature-request-easy-encblock
谢谢,现在想出来!
我在想如果你可以解释的一些语句。具体原因你在做几件事情我还不清楚. .
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];
任何理由上面的两个指针地址的吗?
他们是如何选择的?
我想我丢失的东西,一些文档或理解,我希望更好地理解系统。
感谢你的帮助!
谢谢!
没有比里面有什么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段,所以这只是一个任意选择区域。