こんにちは、
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 v3.6.7を構築する際にSHA256_ALTを定義して実装する必要があったmbedtls_sha256_finish()()の現在の実装です
int mbedtls_sha256_finish ( mbedtls_sha256_context * ctx , unsigned char * output )
{
status_tステータス;
ステータス= HASHCRYPT_SHA_Finish (
ハッシュクリプト、
( hashcrypt_hash_ctx_t * ) ctx -> hash 、
出力、
NULL ) ;
ステータスを返します。
}
私たちのコードはベアメタルで動作しており、異なるプロセスは使用していません。
ご協力いただき、誠にありがとうございました。
よろしくお願いいたします。
ハロルド