mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 14:25:36 +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
|
* In particular, this sets all state indicator to the value
|
||||||
* indicating "uninitialized". */
|
* indicating "uninitialized". */
|
||||||
mbedtls_platform_zeroize( &global_data, sizeof( global_data ) );
|
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
|
/* Terminate drivers */
|
||||||
* a pristine state. */
|
psa_driver_wrapper_free( );
|
||||||
psa_unregister_all_se_drivers( );
|
|
||||||
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
|
#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
|
||||||
@ -5373,11 +5371,10 @@ psa_status_t psa_crypto_init( void )
|
|||||||
if( status != PSA_SUCCESS )
|
if( status != PSA_SUCCESS )
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
/* Init drivers */
|
||||||
status = psa_init_all_se_drivers( );
|
status = psa_driver_wrapper_init( );
|
||||||
if( status != PSA_SUCCESS )
|
if( status != PSA_SUCCESS )
|
||||||
goto exit;
|
goto exit;
|
||||||
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
|
||||||
|
|
||||||
#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
|
#if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS)
|
||||||
status = psa_crypto_load_transaction( );
|
status = psa_crypto_load_transaction( );
|
||||||
|
@ -66,6 +66,44 @@
|
|||||||
#include "psa_crypto_se.h"
|
#include "psa_crypto_se.h"
|
||||||
#endif
|
#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 */
|
/* Start delegation functions */
|
||||||
psa_status_t psa_driver_wrapper_sign_message(
|
psa_status_t psa_driver_wrapper_sign_message(
|
||||||
const psa_key_attributes_t *attributes,
|
const psa_key_attributes_t *attributes,
|
||||||
|
@ -25,6 +25,12 @@
|
|||||||
#include "psa/crypto.h"
|
#include "psa/crypto.h"
|
||||||
#include "psa/crypto_driver_common.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
|
* Signature functions
|
||||||
*/
|
*/
|
||||||
|
@ -56,6 +56,11 @@ static inline mbedtls_test_driver_key_management_hooks_t
|
|||||||
extern mbedtls_test_driver_key_management_hooks_t
|
extern mbedtls_test_driver_key_management_hooks_t
|
||||||
mbedtls_test_driver_key_management_hooks;
|
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(
|
psa_status_t mbedtls_test_transparent_generate_key(
|
||||||
const psa_key_attributes_t *attributes,
|
const psa_key_attributes_t *attributes,
|
||||||
uint8_t *key, size_t key_size, size_t *key_length );
|
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,
|
0xbc, 0x25, 0x16, 0xc3, 0xd2, 0x70, 0x2d, 0x79,
|
||||||
0x2f, 0x13, 0x1a, 0x92, 0x20, 0x95, 0xfd, 0x6c };
|
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(
|
psa_status_t mbedtls_test_transparent_generate_key(
|
||||||
const psa_key_attributes_t *attributes,
|
const psa_key_attributes_t *attributes,
|
||||||
uint8_t *key, size_t key_size, size_t *key_length )
|
uint8_t *key, size_t key_size, size_t *key_length )
|
||||||
|
Loading…
Reference in New Issue
Block a user