mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-11-04 04:32:24 -05:00 
			
		
		
		
	Re-introduction of key slot chekcs
Signed-off-by: TRodziewicz <tomasz.rodziewicz@mobica.com>
This commit is contained in:
		
							parent
							
								
									bd3bfbf5c2
								
							
						
					
					
						commit
						053b99b90b
					
				@ -129,6 +129,7 @@ extern "C" {
 | 
				
			|||||||
 *        Only used when invasive testing is enabled via MBEDTLS_TEST_HOOKS.
 | 
					 *        Only used when invasive testing is enabled via MBEDTLS_TEST_HOOKS.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
extern void (*mbedtls_test_hook_error_add)( int, int, const char *, int );
 | 
					extern void (*mbedtls_test_hook_error_add)( int, int, const char *, int );
 | 
				
			||||||
 | 
					extern void (*mbedtls_test_hook_value)( int test, const char * file, int line );
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
				
			|||||||
@ -1683,7 +1683,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Uncomment to enable invasive tests.
 | 
					 * Uncomment to enable invasive tests.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
//#define MBEDTLS_TEST_HOOKS
 | 
					#define MBEDTLS_TEST_HOOKS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * \def MBEDTLS_THREADING_ALT
 | 
					 * \def MBEDTLS_THREADING_ALT
 | 
				
			||||||
 | 
				
			|||||||
@ -1002,6 +1002,10 @@ psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot )
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if( slot->lock_count != 1 )
 | 
					    if( slot->lock_count != 1 )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					#if defined(MBEDTLS_TEST_HOOKS)
 | 
				
			||||||
 | 
					        if( *mbedtls_test_hook_value != NULL )
 | 
				
			||||||
 | 
					            ( *mbedtls_test_hook_value )( slot->lock_count == 1, __FILE__, __LINE__ );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
        status = PSA_ERROR_CORRUPTION_DETECTED;
 | 
					        status = PSA_ERROR_CORRUPTION_DETECTED;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -34,6 +34,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include "mbedtls/error.h"
 | 
				
			||||||
#if defined(MBEDTLS_PLATFORM_C)
 | 
					#if defined(MBEDTLS_PLATFORM_C)
 | 
				
			||||||
#include "mbedtls/platform.h"
 | 
					#include "mbedtls/platform.h"
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
@ -412,6 +413,13 @@ psa_status_t psa_unlock_key_slot( psa_key_slot_t *slot )
 | 
				
			|||||||
        return( PSA_SUCCESS );
 | 
					        return( PSA_SUCCESS );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    slot->lock_count = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(MBEDTLS_TEST_HOOKS)
 | 
				
			||||||
 | 
					    if( *mbedtls_test_hook_value != NULL )
 | 
				
			||||||
 | 
					        ( *mbedtls_test_hook_value )( slot->lock_count > 0, __FILE__, __LINE__  );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return( PSA_ERROR_CORRUPTION_DETECTED );
 | 
					    return( PSA_ERROR_CORRUPTION_DETECTED );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -164,6 +164,7 @@ void mbedtls_strerror( int ret, char *buf, size_t buflen )
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#if defined(MBEDTLS_TEST_HOOKS)
 | 
					#if defined(MBEDTLS_TEST_HOOKS)
 | 
				
			||||||
void (*mbedtls_test_hook_error_add)( int, int, const char *, int );
 | 
					void (*mbedtls_test_hook_error_add)( int, int, const char *, int );
 | 
				
			||||||
 | 
					void (*mbedtls_test_hook_value)( int, const char *, int );
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */
 | 
					#endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */
 | 
				
			||||||
 | 
				
			|||||||
@ -231,4 +231,13 @@ void mbedtls_test_err_add_check( int high, int low,
 | 
				
			|||||||
int mbedtls_test_read_mpi( mbedtls_mpi *X, int radix, const char *s );
 | 
					int mbedtls_test_read_mpi( mbedtls_mpi *X, int radix, const char *s );
 | 
				
			||||||
#endif /* MBEDTLS_BIGNUM_C */
 | 
					#endif /* MBEDTLS_BIGNUM_C */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * \brief   Check value in first parameter.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * \note    If the check fails, fail the test currently being run.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(MBEDTLS_TEST_HOOKS)
 | 
				
			||||||
 | 
					void mbedtls_test_hook_value_check( int test, const char * file, int line );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* TEST_HELPERS_H */
 | 
					#endif /* TEST_HELPERS_H */
 | 
				
			||||||
 | 
				
			|||||||
@ -274,3 +274,13 @@ int mbedtls_test_read_mpi( mbedtls_mpi *X, int radix, const char *s )
 | 
				
			|||||||
        return( mbedtls_mpi_read_string( X, radix, s ) );
 | 
					        return( mbedtls_mpi_read_string( X, radix, s ) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(MBEDTLS_TEST_HOOKS)
 | 
				
			||||||
 | 
					void mbedtls_test_hook_value_check( int test, const char * file, int line )
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if ( !test )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        mbedtls_test_fail( "Wrong value in test", line, file );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -239,6 +239,7 @@ int main( int argc, const char *argv[] )
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
#if defined(MBEDTLS_TEST_HOOKS) && defined (MBEDTLS_ERROR_C)
 | 
					#if defined(MBEDTLS_TEST_HOOKS) && defined (MBEDTLS_ERROR_C)
 | 
				
			||||||
    mbedtls_test_hook_error_add = &mbedtls_test_err_add_check;
 | 
					    mbedtls_test_hook_error_add = &mbedtls_test_err_add_check;
 | 
				
			||||||
 | 
					    mbedtls_test_hook_value = &mbedtls_test_hook_value_check;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int ret = mbedtls_test_platform_setup();
 | 
					    int ret = mbedtls_test_platform_setup();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user