你好,
我在尝试使用 Hashcrypt 硬件加速时遇到了无限循环。
Hashcrypt 驱动程序版本为2.2.17。微控制器卡在hashcrypt_sha_one_block () 函数的第 679 行:
while (0U == (base->STATUS & HASHCRYPT_STATUS_WAITING_MASK))
{
//卡在这里
}
令人惊讶的是,它在执行 90 次后似乎就卡住了(我们的微控制器能够执行 89 次hashcrypt_sha_one_block而不会卡住)。
主要调用由 embedTLS ssl_tls.c 完成。文件(参见 err.png)。
这是我目前对 mbedtls_sha256_finish() 的实现(在构建 mbedTLS v3.6.7 时,我需要通过定义 SHA256_ALT 来实现它)。
int mbedtls_sha256_finish ( mbedtls_sha256_context * ctx , unsigned char * output )
{
status_t状态;
状态= HASHCRYPT_SHA_Finish (
HASHCRYPT ,
( hashcrypt_hash_ctx_t * ) ctx -> hash ,
输出,
无效的) ;
返回状态;
}
我们的代码是裸机代码,没有不同的流程。
非常感谢您的帮助。
此致,
哈罗德