Use correct size defines for buffers
Signed-off-by: Paul Elliott <paul.elliott@arm.com>
This commit is contained in:
parent
1c8de15490
commit
388f606acd
1 changed files with 36 additions and 22 deletions
|
@ -3170,14 +3170,15 @@ void aead_multipart_encrypt( int key_type_arg, data_t *key_data,
|
||||||
unsigned char *part_data = NULL;
|
unsigned char *part_data = NULL;
|
||||||
unsigned char *final_data = NULL;
|
unsigned char *final_data = NULL;
|
||||||
size_t output_size = 0;
|
size_t output_size = 0;
|
||||||
|
size_t finish_output_size;
|
||||||
size_t part_data_size = 0;
|
size_t part_data_size = 0;
|
||||||
size_t output_length = 0;
|
size_t output_length = 0;
|
||||||
size_t key_bits = 0;
|
size_t key_bits = 0;
|
||||||
size_t tag_length = 0;
|
size_t tag_length = 0;
|
||||||
size_t tag_size = 0;
|
size_t tag_size = 0;
|
||||||
size_t nonce_length = 0;
|
size_t nonce_length = 0;
|
||||||
uint8_t nonce_buffer[16];
|
uint8_t nonce_buffer[PSA_AEAD_NONCE_MAX_SIZE];
|
||||||
uint8_t tag_buffer[16];
|
uint8_t tag_buffer[PSA_AEAD_TAG_MAX_SIZE];
|
||||||
uint32_t part_offset = 0;
|
uint32_t part_offset = 0;
|
||||||
size_t part_length = 0;
|
size_t part_length = 0;
|
||||||
size_t output_part_length = 0;
|
size_t output_part_length = 0;
|
||||||
|
@ -3198,7 +3199,7 @@ void aead_multipart_encrypt( int key_type_arg, data_t *key_data,
|
||||||
|
|
||||||
tag_length = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg );
|
tag_length = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg );
|
||||||
|
|
||||||
TEST_ASSERT( tag_length <= 16 );
|
TEST_ASSERT( tag_length <= PSA_AEAD_TAG_MAX_SIZE );
|
||||||
|
|
||||||
output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg,
|
output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg,
|
||||||
( input_data->len +
|
( input_data->len +
|
||||||
|
@ -3206,7 +3207,11 @@ void aead_multipart_encrypt( int key_type_arg, data_t *key_data,
|
||||||
|
|
||||||
ASSERT_ALLOC( output_data, output_size );
|
ASSERT_ALLOC( output_data, output_size );
|
||||||
|
|
||||||
ASSERT_ALLOC( final_data, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE );
|
finish_output_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg );
|
||||||
|
|
||||||
|
TEST_ASSERT( finish_output_size <= PSA_AEAD_FINISH_OUTPUT_MAX_SIZE );
|
||||||
|
|
||||||
|
ASSERT_ALLOC( final_data, finish_output_size );
|
||||||
|
|
||||||
operation = psa_aead_operation_init( );
|
operation = psa_aead_operation_init( );
|
||||||
|
|
||||||
|
@ -3319,7 +3324,7 @@ void aead_multipart_encrypt( int key_type_arg, data_t *key_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
PSA_ASSERT( psa_aead_finish( &operation, final_data,
|
PSA_ASSERT( psa_aead_finish( &operation, final_data,
|
||||||
PSA_AEAD_FINISH_OUTPUT_MAX_SIZE,
|
finish_output_size,
|
||||||
&output_part_length,
|
&output_part_length,
|
||||||
tag_buffer, tag_length,
|
tag_buffer, tag_length,
|
||||||
&tag_size ) );
|
&tag_size ) );
|
||||||
|
@ -3381,6 +3386,7 @@ void aead_multipart_encrypt_decrypt( int key_type_arg, data_t *key_data,
|
||||||
unsigned char *final_data = NULL;
|
unsigned char *final_data = NULL;
|
||||||
size_t part_data_size;
|
size_t part_data_size;
|
||||||
size_t output_size = 0;
|
size_t output_size = 0;
|
||||||
|
size_t finish_output_size = 0;
|
||||||
size_t output_length = 0;
|
size_t output_length = 0;
|
||||||
unsigned char *output_data2 = NULL;
|
unsigned char *output_data2 = NULL;
|
||||||
size_t output_size2 = 0;
|
size_t output_size2 = 0;
|
||||||
|
@ -3389,8 +3395,8 @@ void aead_multipart_encrypt_decrypt( int key_type_arg, data_t *key_data,
|
||||||
size_t tag_length = 0;
|
size_t tag_length = 0;
|
||||||
size_t tag_size = 0;
|
size_t tag_size = 0;
|
||||||
size_t nonce_length = 0;
|
size_t nonce_length = 0;
|
||||||
uint8_t nonce_buffer[16];
|
uint8_t nonce_buffer[PSA_AEAD_NONCE_MAX_SIZE];
|
||||||
uint8_t tag_buffer[16];
|
uint8_t tag_buffer[PSA_AEAD_TAG_MAX_SIZE];
|
||||||
uint32_t part_offset = 0;
|
uint32_t part_offset = 0;
|
||||||
size_t part_length = 0;
|
size_t part_length = 0;
|
||||||
size_t output_part_length = 0;
|
size_t output_part_length = 0;
|
||||||
|
@ -3413,12 +3419,17 @@ void aead_multipart_encrypt_decrypt( int key_type_arg, data_t *key_data,
|
||||||
|
|
||||||
tag_length = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg );
|
tag_length = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg );
|
||||||
|
|
||||||
TEST_ASSERT( tag_length <= 16 );
|
TEST_ASSERT( tag_length <= PSA_AEAD_TAG_MAX_SIZE );
|
||||||
|
|
||||||
output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, input_data->len );
|
output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, input_data->len );
|
||||||
|
|
||||||
ASSERT_ALLOC( output_data, output_size );
|
ASSERT_ALLOC( output_data, output_size );
|
||||||
ASSERT_ALLOC( final_data, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE );
|
|
||||||
|
finish_output_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg );
|
||||||
|
|
||||||
|
TEST_ASSERT( finish_output_size <= PSA_AEAD_FINISH_OUTPUT_MAX_SIZE );
|
||||||
|
|
||||||
|
ASSERT_ALLOC( final_data, finish_output_size );
|
||||||
|
|
||||||
operation = psa_aead_operation_init( );
|
operation = psa_aead_operation_init( );
|
||||||
|
|
||||||
|
@ -3567,7 +3578,7 @@ void aead_multipart_encrypt_decrypt( int key_type_arg, data_t *key_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
status = psa_aead_finish( &operation, final_data,
|
status = psa_aead_finish( &operation, final_data,
|
||||||
PSA_AEAD_FINISH_OUTPUT_MAX_SIZE,
|
finish_output_size,
|
||||||
&output_part_length,
|
&output_part_length,
|
||||||
tag_buffer, tag_length,
|
tag_buffer, tag_length,
|
||||||
&tag_size );
|
&tag_size );
|
||||||
|
@ -3735,7 +3746,7 @@ void aead_multipart_encrypt_decrypt( int key_type_arg, data_t *key_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
PSA_ASSERT( psa_aead_verify( &operation, final_data,
|
PSA_ASSERT( psa_aead_verify( &operation, final_data,
|
||||||
PSA_AEAD_FINISH_OUTPUT_MAX_SIZE,
|
finish_output_size,
|
||||||
&output_part_length,
|
&output_part_length,
|
||||||
tag_buffer, tag_length ) );
|
tag_buffer, tag_length ) );
|
||||||
|
|
||||||
|
@ -3782,11 +3793,12 @@ void aead_multipart_decrypt( int key_type_arg, data_t *key_data,
|
||||||
unsigned char *final_data = NULL;
|
unsigned char *final_data = NULL;
|
||||||
size_t part_data_size;
|
size_t part_data_size;
|
||||||
size_t output_size = 0;
|
size_t output_size = 0;
|
||||||
|
size_t verify_output_size = 0;
|
||||||
size_t output_length = 0;
|
size_t output_length = 0;
|
||||||
size_t key_bits = 0;
|
size_t key_bits = 0;
|
||||||
size_t tag_length = 0;
|
size_t tag_length = 0;
|
||||||
size_t nonce_length = 0;
|
size_t nonce_length = 0;
|
||||||
uint8_t nonce_buffer[16];
|
uint8_t nonce_buffer[PSA_AEAD_NONCE_MAX_SIZE];
|
||||||
uint32_t part_offset = 0;
|
uint32_t part_offset = 0;
|
||||||
size_t part_length = 0;
|
size_t part_length = 0;
|
||||||
size_t output_part_length = 0;
|
size_t output_part_length = 0;
|
||||||
|
@ -3813,7 +3825,10 @@ void aead_multipart_decrypt( int key_type_arg, data_t *key_data,
|
||||||
tag_length ) );
|
tag_length ) );
|
||||||
|
|
||||||
ASSERT_ALLOC( output_data, output_size );
|
ASSERT_ALLOC( output_data, output_size );
|
||||||
ASSERT_ALLOC( final_data, PSA_AEAD_VERIFY_OUTPUT_MAX_SIZE );
|
|
||||||
|
verify_output_size = PSA_AEAD_VERIFY_OUTPUT_SIZE( key_type, alg );
|
||||||
|
TEST_ASSERT( verify_output_size <= PSA_AEAD_VERIFY_OUTPUT_MAX_SIZE );
|
||||||
|
ASSERT_ALLOC( final_data, verify_output_size );
|
||||||
|
|
||||||
operation = psa_aead_operation_init( );
|
operation = psa_aead_operation_init( );
|
||||||
|
|
||||||
|
@ -3963,10 +3978,9 @@ void aead_multipart_decrypt( int key_type_arg, data_t *key_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
status = psa_aead_verify( &operation, final_data,
|
status = psa_aead_verify( &operation, final_data,
|
||||||
PSA_AEAD_VERIFY_OUTPUT_MAX_SIZE,
|
verify_output_size,
|
||||||
&output_part_length,
|
&output_part_length,
|
||||||
( input_data->x + input_data->len -
|
( input_data->x + input_data->len - tag_length ),
|
||||||
tag_length ),
|
|
||||||
tag_length );
|
tag_length );
|
||||||
|
|
||||||
if( status != PSA_SUCCESS )
|
if( status != PSA_SUCCESS )
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue