mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05:00 
			
		
		
		
	Add library setup and teardown APIs
Add the following two functions to allow platform setup and teardown operations for the full library to be hooked in: * mbedtls_platform_setup() * mbedtls_platform_teardown() An mbedtls_platform_context C structure is also added and two internal functions that are called by the corresponding setup and teardown functions above: * mbedtls_internal_platform_setup() * mbedtls_internal_plartform_teardown() Finally, the macro MBEDTLS_PLATFORM_SETUP_ALT is also added to allow mbedtls_platform_context and internal function to be overriden by the user as needed for a platform.
This commit is contained in:
		
							parent
							
								
									51e8c3ed7e
								
							
						
					
					
						commit
						2a6f39cb63
					
				@ -163,6 +163,7 @@
 | 
			
		||||
//#define MBEDTLS_PLATFORM_PRINTF_ALT
 | 
			
		||||
//#define MBEDTLS_PLATFORM_SNPRINTF_ALT
 | 
			
		||||
//#define MBEDTLS_PLATFORM_NV_SEED_ALT
 | 
			
		||||
//#define MBEDTLS_PLATFORM_SETUP_ALT
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \def MBEDTLS_DEPRECATED_WARNING
 | 
			
		||||
 | 
			
		||||
@ -288,6 +288,51 @@ int mbedtls_platform_set_nv_seed(
 | 
			
		||||
#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */
 | 
			
		||||
#endif /* MBEDTLS_ENTROPY_NV_SEED */
 | 
			
		||||
 | 
			
		||||
#if !defined(MBEDTLS_PLATFORM_SETUP_ALT)
 | 
			
		||||
typedef struct mbedtls_platform_context mbedtls_platform_context;
 | 
			
		||||
#else
 | 
			
		||||
#include "platform_alt.h"
 | 
			
		||||
#endif /* !MBEDTLS_PLATFORM_SETUP_ALT */
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief   Perform any platform initialisation operations
 | 
			
		||||
 *
 | 
			
		||||
 * \param   ctx     mbed TLS context
 | 
			
		||||
 *
 | 
			
		||||
 * \return  0 if successful
 | 
			
		||||
 *
 | 
			
		||||
 * \note    This function should be called before any other library function
 | 
			
		||||
 */
 | 
			
		||||
int mbedtls_platform_setup( mbedtls_platform_context *ctx );
 | 
			
		||||
/**
 | 
			
		||||
 * \brief   Perform any platform teardown operations
 | 
			
		||||
 *
 | 
			
		||||
 * \param   ctx     mbed TLS context
 | 
			
		||||
 *
 | 
			
		||||
 * \return  0 if successful
 | 
			
		||||
 *
 | 
			
		||||
 * \note    This function should be after every other mbed TLS module has been
 | 
			
		||||
 *          correctly freed using the appropriate free function.
 | 
			
		||||
 */
 | 
			
		||||
void mbedtls_platform_teardown( mbedtls_platform_context *ctx );
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief   Internal function to perform any platform initialisation operations
 | 
			
		||||
 *          Only exposed to allow overriding it, see MBEDTLS_PLATFORM_SETUP_ALT
 | 
			
		||||
 *
 | 
			
		||||
 * \param   ctx     mbed TLS context
 | 
			
		||||
 *
 | 
			
		||||
 * \return  0 if successful
 | 
			
		||||
 */
 | 
			
		||||
int mbedtls_internal_platform_setup( mbedtls_platform_context *ctx );
 | 
			
		||||
/**
 | 
			
		||||
 * \brief   Internal function to perform any platform teardown operations
 | 
			
		||||
 *          Only exposed to allow overriding it, see MBEDTLS_PLATFORM_SETUP_ALT
 | 
			
		||||
 *
 | 
			
		||||
 * \param   ctx     mbed TLS context
 | 
			
		||||
 */
 | 
			
		||||
void mbedtls_internal_platform_teardown( mbedtls_platform_context *ctx );
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -304,4 +304,34 @@ int mbedtls_platform_set_nv_seed(
 | 
			
		||||
#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */
 | 
			
		||||
#endif /* MBEDTLS_ENTROPY_NV_SEED */
 | 
			
		||||
 | 
			
		||||
int mbedtls_platform_setup( mbedtls_platform_context *ctx )
 | 
			
		||||
{
 | 
			
		||||
    return( mbedtls_internal_platform_setup( ctx ) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void mbedtls_platform_teardown( mbedtls_platform_context *ctx )
 | 
			
		||||
{
 | 
			
		||||
    mbedtls_internal_platform_teardown( ctx );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if !defined(MBEDTLS_PLATFORM_SETUP_ALT)
 | 
			
		||||
/*
 | 
			
		||||
 * Placeholder internal platform setup that does nothing by default
 | 
			
		||||
 */
 | 
			
		||||
int mbedtls_internal_platform_setup( mbedtls_platform_context *ctx )
 | 
			
		||||
{
 | 
			
		||||
    (void)ctx;
 | 
			
		||||
 | 
			
		||||
    return( 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Placeholder internal platform teardown that does nothing by default
 | 
			
		||||
 */
 | 
			
		||||
void mbedtls_internal_platform_teardown( mbedtls_platform_context *ctx )
 | 
			
		||||
{
 | 
			
		||||
    (void)ctx;
 | 
			
		||||
}
 | 
			
		||||
#endif /* MBEDTLS_PLATFORM_SETUP_ALT */
 | 
			
		||||
 | 
			
		||||
#endif /* MBEDTLS_PLATFORM_C */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user