mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 03:25:46 +01:00
Fix ECC hardware double initialization
We initialized the ECC hardware before calling mbedtls_ecp_mul_shortcuts(). This in turn calls mbedtls_ecp_mul_restartable(), which initializes and frees the hardware too. This issue has been introduced by recent changes and caused some accelerators to hang. We move the initialization after the mbedtle_ecp_mul_shortcuts() calls to avoid double initialization.
This commit is contained in:
parent
fabc6001ff
commit
af6f2694a4
@ -2393,11 +2393,6 @@ int mbedtls_ecp_muladd_restartable(
|
|||||||
|
|
||||||
mbedtls_ecp_point_init( &mP );
|
mbedtls_ecp_point_init( &mP );
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
||||||
if( ( is_grp_capable = mbedtls_internal_ecp_grp_capable( grp ) ) )
|
|
||||||
MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) );
|
|
||||||
#endif /* MBEDTLS_ECP_INTERNAL_ALT */
|
|
||||||
|
|
||||||
ECP_RS_ENTER( ma );
|
ECP_RS_ENTER( ma );
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
@ -2425,6 +2420,12 @@ int mbedtls_ecp_muladd_restartable(
|
|||||||
mul2:
|
mul2:
|
||||||
#endif
|
#endif
|
||||||
MBEDTLS_MPI_CHK( mbedtls_ecp_mul_shortcuts( grp, pR, n, Q, rs_ctx ) );
|
MBEDTLS_MPI_CHK( mbedtls_ecp_mul_shortcuts( grp, pR, n, Q, rs_ctx ) );
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_ECP_INTERNAL_ALT)
|
||||||
|
if( ( is_grp_capable = mbedtls_internal_ecp_grp_capable( grp ) ) )
|
||||||
|
MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) );
|
||||||
|
#endif /* MBEDTLS_ECP_INTERNAL_ALT */
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
if( rs_ctx != NULL && rs_ctx->ma != NULL )
|
if( rs_ctx != NULL && rs_ctx->ma != NULL )
|
||||||
rs_ctx->ma->state = ecp_rsma_add;
|
rs_ctx->ma->state = ecp_rsma_add;
|
||||||
|
Loading…
Reference in New Issue
Block a user