谁用过TI蓝牙协议栈的加密解密函数?
时间:10-02
整理:3721RD
点击:
想使用CC254X的硬件AES加密功能来加密数据,看到有一个函数HCI_LE_EncryptCmd,但不知道怎么用,可以输入key和明文数据,执行完不知道数据输出到什么地方了。
- extern hciStatus_t HCI_LE_EncryptCmd( uint8 *key,
- uint8 *plainText );
- /*******************************************************************************
- * @fn LL_EXT_Decrypt API
- *
- * [url=home.php?mod=space&uid=159083]@brief[/url] This API is called by the HCI to request the LL to decrypt the
- * data in the command using the key given in the command.
- *
- * Note: The parameters are byte ordered MSO to LSO.
- *
- * input parameters
- *
- * @param *key - A 128 bit key to be used to calculate the
- * session key.
- * @param *encryptedData - A 128 bit block that is encrypted.
- *
- * output parameters
- *
- * @param *plaintextData - A 128 bit block that is to be encrypted.
- *
- * @param None.
- *
- * @return LL_STATUS_SUCCESS
- */
- extern llStatus_t LL_EXT_Decrypt( uint8 *key,
- uint8 *encryptedData,
- uint8 *plaintextData );
- /*******************************************************************************
- * @fn LL_Encrypt API
- *
- * @brief This API is called by the HCI to request the LL to encrypt the
- * data in the command using the key given in the command.
- *
- * Note: The parameters are byte ordered MSO to LSO.
- *
- * input parameters
- *
- * @param *key - A 128 bit key to be used to calculate the
- * session key.
- * @param *plaintextData - A 128 bit block that is to be encrypted.
- *
- * output parameters
- *
- * @param *encryptedData - A 128 bit block that is encrypted.
- *
- * @param None.
- *
- * @return LL_STATUS_SUCCESS
- */
- extern llStatus_t LL_Encrypt( uint8 *key,
- uint8 *plaintextData,
- uint8 *encryptedData );
建议不要使用这个文件里面的加解密API。
试试AES.C里面的。
你说的是“hal_aes.c”文件吗?
现在这种加解密会有哪些问题?
我使用的是hal_aes.c里面的加密,不过CCM模式是自己写的,其他模式应该都是可以直接用的。
HCI层的加解密函数目前没有用,不过不建议使用。
看这个API的名字貌似是协议栈调用的,你如果直接使用的话,协议栈调用的时候可以与你调用的时候存在冲突。
的确这个函数同样有其它代码调用,你的意思是他对推荐用户调用?或者协议栈没有对这部份代码做“线程锁”处理?