mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-01 10:06:53 +03:00
Add test wrapper functions for cipher buffer protection
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
This commit is contained in:
@ -153,7 +153,8 @@ class PSAWrapperGenerator(c_wrapper_generator.Base):
|
|||||||
#pylint: disable=too-many-return-statements
|
#pylint: disable=too-many-return-statements
|
||||||
if function_name.startswith('psa_aead'):
|
if function_name.startswith('psa_aead'):
|
||||||
return True
|
return True
|
||||||
if function_name == 'psa_cipher_encrypt':
|
if function_name in {'psa_cipher_encrypt', 'psa_cipher_decrypt',
|
||||||
|
'psa_cipher_update', 'psa_cipher_finish'}:
|
||||||
return True
|
return True
|
||||||
if function_name in ('psa_key_derivation_output_bytes',
|
if function_name in ('psa_key_derivation_output_bytes',
|
||||||
'psa_key_derivation_input_bytes'):
|
'psa_key_derivation_input_bytes'):
|
||||||
|
@ -182,7 +182,15 @@ psa_status_t mbedtls_test_wrap_psa_cipher_decrypt(
|
|||||||
size_t arg5_output_size,
|
size_t arg5_output_size,
|
||||||
size_t *arg6_output_length)
|
size_t *arg6_output_length)
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
|
||||||
|
MBEDTLS_TEST_MEMORY_POISON(arg2_input, arg3_input_length);
|
||||||
|
MBEDTLS_TEST_MEMORY_POISON(arg4_output, arg5_output_size);
|
||||||
|
#endif /* defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) */
|
||||||
psa_status_t status = (psa_cipher_decrypt)(arg0_key, arg1_alg, arg2_input, arg3_input_length, arg4_output, arg5_output_size, arg6_output_length);
|
psa_status_t status = (psa_cipher_decrypt)(arg0_key, arg1_alg, arg2_input, arg3_input_length, arg4_output, arg5_output_size, arg6_output_length);
|
||||||
|
#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
|
||||||
|
MBEDTLS_TEST_MEMORY_UNPOISON(arg2_input, arg3_input_length);
|
||||||
|
MBEDTLS_TEST_MEMORY_UNPOISON(arg4_output, arg5_output_size);
|
||||||
|
#endif /* defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) */
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -235,7 +243,13 @@ psa_status_t mbedtls_test_wrap_psa_cipher_finish(
|
|||||||
size_t arg2_output_size,
|
size_t arg2_output_size,
|
||||||
size_t *arg3_output_length)
|
size_t *arg3_output_length)
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
|
||||||
|
MBEDTLS_TEST_MEMORY_POISON(arg1_output, arg2_output_size);
|
||||||
|
#endif /* defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) */
|
||||||
psa_status_t status = (psa_cipher_finish)(arg0_operation, arg1_output, arg2_output_size, arg3_output_length);
|
psa_status_t status = (psa_cipher_finish)(arg0_operation, arg1_output, arg2_output_size, arg3_output_length);
|
||||||
|
#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
|
||||||
|
MBEDTLS_TEST_MEMORY_UNPOISON(arg1_output, arg2_output_size);
|
||||||
|
#endif /* defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) */
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,7 +283,15 @@ psa_status_t mbedtls_test_wrap_psa_cipher_update(
|
|||||||
size_t arg4_output_size,
|
size_t arg4_output_size,
|
||||||
size_t *arg5_output_length)
|
size_t *arg5_output_length)
|
||||||
{
|
{
|
||||||
|
#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
|
||||||
|
MBEDTLS_TEST_MEMORY_POISON(arg1_input, arg2_input_length);
|
||||||
|
MBEDTLS_TEST_MEMORY_POISON(arg3_output, arg4_output_size);
|
||||||
|
#endif /* defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) */
|
||||||
psa_status_t status = (psa_cipher_update)(arg0_operation, arg1_input, arg2_input_length, arg3_output, arg4_output_size, arg5_output_length);
|
psa_status_t status = (psa_cipher_update)(arg0_operation, arg1_input, arg2_input_length, arg3_output, arg4_output_size, arg5_output_length);
|
||||||
|
#if defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS)
|
||||||
|
MBEDTLS_TEST_MEMORY_UNPOISON(arg1_input, arg2_input_length);
|
||||||
|
MBEDTLS_TEST_MEMORY_UNPOISON(arg3_output, arg4_output_size);
|
||||||
|
#endif /* defined(MBEDTLS_PSA_COPY_CALLER_BUFFERS) */
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user