mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 12:05:38 +01:00
psa: Add driver initialization and termination
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
parent
485559eeb5
commit
088d5d0c1b
@ -5320,11 +5320,9 @@ void mbedtls_psa_crypto_free( void )
|
||||
* In particular, this sets all state indicator to the value
|
||||
* indicating "uninitialized". */
|
||||
mbedtls_platform_zeroize( &global_data, sizeof( global_data ) );
|
||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||
/* Unregister all secure element drivers, so that we restart from
|
||||
* a pristine state. */
|
||||
psa_unregister_all_se_drivers( );
|
||||
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
||||
|
||||
/* Terminate drivers */
|
||||
psa_driver_wrapper_free( );
|
||||
}
|
||||
|
||||
#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
|
||||
@ -5373,11 +5371,10 @@ psa_status_t psa_crypto_init( void )
|
||||
if( status != PSA_SUCCESS )
|
||||
goto exit;
|
||||
|
||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||
status = psa_init_all_se_drivers( );
|
||||
/* Init drivers */
|
||||
status = psa_driver_wrapper_init( );
|
||||
if( status != PSA_SUCCESS )
|
||||
goto exit;
|
||||
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
||||
|
||||
#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
|
||||
status = psa_crypto_load_transaction( );
|
||||
|
@ -66,6 +66,44 @@
|
||||
#include "psa_crypto_se.h"
|
||||
#endif
|
||||
|
||||
psa_status_t psa_driver_wrapper_init( void )
|
||||
{
|
||||
psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
|
||||
|
||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||
status = psa_init_all_se_drivers( );
|
||||
if( status != PSA_SUCCESS )
|
||||
return( status );
|
||||
#endif
|
||||
|
||||
#if defined(PSA_CRYPTO_DRIVER_TEST)
|
||||
status = mbedtls_test_transparent_init( );
|
||||
if( status != PSA_SUCCESS )
|
||||
return( status );
|
||||
|
||||
status = mbedtls_test_opaque_init( );
|
||||
if( status != PSA_SUCCESS )
|
||||
return( status );
|
||||
#endif
|
||||
|
||||
(void) status;
|
||||
return( PSA_SUCCESS );
|
||||
}
|
||||
|
||||
void psa_driver_wrapper_free( void )
|
||||
{
|
||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||
/* Unregister all secure element drivers, so that we restart from
|
||||
* a pristine state. */
|
||||
psa_unregister_all_se_drivers( );
|
||||
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
||||
|
||||
#if defined(PSA_CRYPTO_DRIVER_TEST)
|
||||
mbedtls_test_transparent_free( );
|
||||
mbedtls_test_opaque_free( );
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Start delegation functions */
|
||||
psa_status_t psa_driver_wrapper_sign_message(
|
||||
const psa_key_attributes_t *attributes,
|
||||
|
@ -25,6 +25,12 @@
|
||||
#include "psa/crypto.h"
|
||||
#include "psa/crypto_driver_common.h"
|
||||
|
||||
/*
|
||||
* Initialization and termination functions
|
||||
*/
|
||||
psa_status_t psa_driver_wrapper_init( void );
|
||||
void psa_driver_wrapper_free( void );
|
||||
|
||||
/*
|
||||
* Signature functions
|
||||
*/
|
||||
|
@ -56,6 +56,11 @@ static inline mbedtls_test_driver_key_management_hooks_t
|
||||
extern mbedtls_test_driver_key_management_hooks_t
|
||||
mbedtls_test_driver_key_management_hooks;
|
||||
|
||||
psa_status_t mbedtls_test_transparent_init( void );
|
||||
void mbedtls_test_transparent_free( void );
|
||||
psa_status_t mbedtls_test_opaque_init( void );
|
||||
void mbedtls_test_opaque_free( void );
|
||||
|
||||
psa_status_t mbedtls_test_transparent_generate_key(
|
||||
const psa_key_attributes_t *attributes,
|
||||
uint8_t *key, size_t key_size, size_t *key_length );
|
||||
|
@ -60,6 +60,26 @@ const uint8_t mbedtls_test_driver_ecdsa_pubkey[65] =
|
||||
0xbc, 0x25, 0x16, 0xc3, 0xd2, 0x70, 0x2d, 0x79,
|
||||
0x2f, 0x13, 0x1a, 0x92, 0x20, 0x95, 0xfd, 0x6c };
|
||||
|
||||
psa_status_t mbedtls_test_transparent_init( void )
|
||||
{
|
||||
return( PSA_SUCCESS );
|
||||
}
|
||||
|
||||
void mbedtls_test_transparent_free( void )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
psa_status_t mbedtls_test_opaque_init( void )
|
||||
{
|
||||
return( PSA_SUCCESS );
|
||||
}
|
||||
|
||||
void mbedtls_test_opaque_free( void )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
psa_status_t mbedtls_test_transparent_generate_key(
|
||||
const psa_key_attributes_t *attributes,
|
||||
uint8_t *key, size_t key_size, size_t *key_length )
|
||||
|
Loading…
Reference in New Issue
Block a user