Add global mutex for asymmetric crypto accelerator
The primary use case behind providing an abstraction layer to enable alternative Elliptic Curve Point arithmetic implementation, is making use of cryptographic acceleration hardware if it is present. To provide thread safety for the hardware accelerator we need a mutex to guard it.
This commit is contained in:
parent
16e63ea2e2
commit
552f6b6d17
2 changed files with 12 additions and 0 deletions
|
@ -97,6 +97,9 @@ extern int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t *mutex );
|
|||
*/
|
||||
extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
|
||||
extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
|
||||
#if defined(MBEDTLS_ECP_FUNCTION_ALT)
|
||||
extern mbedtls_threading_mutex_t mbedtls_threading_cryptohw_asym_mutex;
|
||||
#endif
|
||||
#endif /* MBEDTLS_THREADING_C */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -113,6 +113,9 @@ void mbedtls_threading_set_alt( void (*mutex_init)( mbedtls_threading_mutex_t *
|
|||
|
||||
mbedtls_mutex_init( &mbedtls_threading_readdir_mutex );
|
||||
mbedtls_mutex_init( &mbedtls_threading_gmtime_mutex );
|
||||
#if defined(MBEDTLS_ECP_FUNCTION_ALT)
|
||||
mbedtls_mutex_init( &mbedtls_threading_cryptohw_asym_mutex );
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -122,6 +125,9 @@ void mbedtls_threading_free_alt( void )
|
|||
{
|
||||
mbedtls_mutex_free( &mbedtls_threading_readdir_mutex );
|
||||
mbedtls_mutex_free( &mbedtls_threading_gmtime_mutex );
|
||||
#if defined(MBEDTLS_ECP_FUNCTION_ALT)
|
||||
mbedtls_mutex_free( &mbedtls_threading_cryptohw_asym_mutex );
|
||||
#endif
|
||||
}
|
||||
#endif /* MBEDTLS_THREADING_ALT */
|
||||
|
||||
|
@ -133,5 +139,8 @@ void mbedtls_threading_free_alt( void )
|
|||
#endif
|
||||
mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex MUTEX_INIT;
|
||||
mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex MUTEX_INIT;
|
||||
#if defined(MBEDTLS_ECP_FUNCTION_ALT)
|
||||
mbedtls_threading_mutex_t mbedtls_threading_cryptohw_asym_mutex MUTEX_INIT;
|
||||
#endif
|
||||
|
||||
#endif /* MBEDTLS_THREADING_C */
|
||||
|
|
Loading…
Reference in a new issue