HASH校验测试
H533的数据安全外设很是丰富,今天测试一下HASH校验外设的性能。
校验模式配置为SHA-256,为测试硬件性能,同时使用mbedtls的sha-256校验算法做对比。
测试代码如下:
cubemx生成初始化程序,数据格式选择 HASH_BYTE_SWAP,校验方式为 HASH_ALGOSELECTION_SHA256
/**
* [url=home.php?mod=space&uid=247401]@brief[/url] HASH Initialization Function
* @param None
* @retval None
*/
static void MX_HASH_Init(void)
{
/* USER CODE BEGIN HASH_Init 0 */
/* USER CODE END HASH_Init 0 */
/* USER CODE BEGIN HASH_Init 1 */
/* USER CODE END HASH_Init 1 */
hhash.Instance = HASH;
hhash.Init.DataType = HASH_BYTE_SWAP;
hhash.Init.Algorithm = HASH_ALGOSELECTION_SHA256;
if (HAL_HASH_Init(&hhash) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN HASH_Init 2 */
/* USER CODE END HASH_Init 2 */
}
测试代码:
/*******************************************************************************
* @brief sha256_demo.
* \param[in] none
* \retval: none
*******************************************************************************/
int sha256_demo(int argc, char * argv[])
{
uu08 * src , *out;
uu32 clk_start;
mbedtls_sha256_context *sha256;
dbg_print("\nmbed SHA256 test :\n");
// 请求内存
src = malloc(nKB(8));
out = calloc(1, 32);
sha256 = malloc(sizeof(mbedtls_sha256_context));
// 开始
loop(nKB(8))
src[index] = index;
// 输入数据流,长度任意
clk_start = bsp_cpu_clks_get();
mbedtls_sha256_init(sha256);
mbedtls_sha256_starts(sha256, 0); // \c 0 for SHA-256, or \c 1 for SHA-224
mbedtls_sha256_update(sha256, src, nKB(8));
mbedtls_sha256_finish(sha256, out);
mbedtls_sha256_free(sha256);
dbg_print("MBEDTLS sha256 time: %d us\n", bsp_clks_to_us(bsp_cpu_clks_get() - clk_start));
// 显示
dbg_u8_print("out : \n", out, 32, 16);
memset(out, 0, 32);
loop(nKB(8))
src[index] = index;
clk_start = bsp_cpu_clks_get();
HAL_HASH_Start(&hhash, src, nKB(8),out,100000);
dbg_print("\nSTM32 sha256 time: %d us\n", bsp_clks_to_us(bsp_cpu_clks_get() - clk_start));
dbg_u8_print("out : \n", out, 32, 16);
// 释放内存
free(src);
free(out);
free(sha256);
return 0;
}
串口输入 sha256_demo 执行测试程序,测试内容为对分别使用mebedtls-sha256和stm32硬件对8KB数据计算校验码,输出校验结果和计算时间。
测试结果如下:
mbedtls 校验3260us,STM32硬件加密解密耗时153us,速度竟然有20倍之多。
下面附上测试工程
SOFTWARE.rar
(8.76 MB)
|