Remove overly strict final checks

Signed-off-by: Paul Elliott <paul.elliott@arm.com>
This commit is contained in:
Paul Elliott 2021-08-16 18:20:36 +01:00
parent 91b021e4c7
commit 814fffbd72

View file

@ -3749,11 +3749,8 @@ exit:
return( status ); return( status );
} }
static psa_status_t psa_aead_final_checks( psa_aead_operation_t *operation, static psa_status_t psa_aead_final_checks( psa_aead_operation_t *operation )
size_t output_size )
{ {
size_t finish_output_size;
if( operation->id == 0 || !operation->nonce_set ) if( operation->id == 0 || !operation->nonce_set )
return( PSA_ERROR_BAD_STATE ); return( PSA_ERROR_BAD_STATE );
@ -3761,13 +3758,6 @@ static psa_status_t psa_aead_final_checks( psa_aead_operation_t *operation,
operation->body_remaining != 0 ) ) operation->body_remaining != 0 ) )
return( PSA_ERROR_INVALID_ARGUMENT ); return( PSA_ERROR_INVALID_ARGUMENT );
finish_output_size = operation->is_encrypt ?
PSA_AEAD_FINISH_OUTPUT_SIZE( operation->key_type, operation->alg ) :
PSA_AEAD_VERIFY_OUTPUT_SIZE( operation->key_type, operation->alg );
if( output_size < finish_output_size )
return( PSA_ERROR_BUFFER_TOO_SMALL );
return( PSA_SUCCESS ); return( PSA_SUCCESS );
} }
@ -3785,7 +3775,7 @@ psa_status_t psa_aead_finish( psa_aead_operation_t *operation,
*ciphertext_length = 0; *ciphertext_length = 0;
*tag_length = tag_size; *tag_length = tag_size;
status = psa_aead_final_checks( operation, ciphertext_size ); status = psa_aead_final_checks( operation );
if( status != PSA_SUCCESS ) if( status != PSA_SUCCESS )
goto exit; goto exit;
@ -3831,7 +3821,7 @@ psa_status_t psa_aead_verify( psa_aead_operation_t *operation,
*plaintext_length = 0; *plaintext_length = 0;
status = psa_aead_final_checks( operation, plaintext_size ); status = psa_aead_final_checks( operation );
if( status != PSA_SUCCESS ) if( status != PSA_SUCCESS )
goto exit; goto exit;