Add tests for bad arguments to cipher functions

This commit is contained in:
Manuel Pégourié-Gonnard 2014-06-13 16:08:07 +02:00
parent b912616081
commit 5e7693f6ba
2 changed files with 73 additions and 0 deletions

View File

@ -21,6 +21,76 @@ void cipher_list( )
}
/* END_CASE */
/* BEGIN_CASE */
void cipher_null_args( )
{
cipher_context_t ctx;
const cipher_info_t *info = cipher_info_from_type( *( cipher_list() ) );
unsigned char buf[1] = { 0 };
size_t olen;
memset( &ctx, 0, sizeof( cipher_context_t ) );
TEST_ASSERT( cipher_get_block_size( NULL ) == 0 );
TEST_ASSERT( cipher_get_block_size( &ctx ) == 0 );
TEST_ASSERT( cipher_get_cipher_mode( NULL ) == POLARSSL_MODE_NONE );
TEST_ASSERT( cipher_get_cipher_mode( &ctx ) == POLARSSL_MODE_NONE );
TEST_ASSERT( cipher_get_iv_size( NULL ) == 0 );
TEST_ASSERT( cipher_get_iv_size( &ctx ) == 0 );
TEST_ASSERT( cipher_info_from_string( NULL ) == NULL );
TEST_ASSERT( cipher_init_ctx( &ctx, NULL )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_init_ctx( NULL, info )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_setkey( NULL, buf, 0, POLARSSL_ENCRYPT )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_setkey( &ctx, buf, 0, POLARSSL_ENCRYPT )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_set_iv( NULL, buf, 0 )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_set_iv( &ctx, buf, 0 )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_reset( NULL ) == POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_reset( &ctx ) == POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
#if defined(POLARSSL_CIPHER_MODE_AEAD)
TEST_ASSERT( cipher_update_ad( NULL, buf, 0 )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_update_ad( &ctx, buf, 0 )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
#endif
TEST_ASSERT( cipher_update( NULL, buf, 0, buf, &olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_update( &ctx, buf, 0, buf, &olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_finish( NULL, buf, &olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_finish( &ctx, buf, &olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
#if defined(POLARSSL_CIPHER_MODE_AEAD)
TEST_ASSERT( cipher_write_tag( NULL, buf, olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_write_tag( &ctx, buf, olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_check_tag( NULL, buf, olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
TEST_ASSERT( cipher_check_tag( &ctx, buf, olen )
== POLARSSL_ERR_CIPHER_BAD_INPUT_DATA );
#endif
}
/* END_CASE */
/* BEGIN_CASE */
void enc_dec_buf( int cipher_id, char *cipher_string, int key_len,
int length_val, int pad_mode )

View File

@ -1,6 +1,9 @@
Cipher list
cipher_list:
Cipher null/uninitialised arguments
cipher_null_args:
Set padding with AES-CBC
depends_on:POLARSSL_AES_C:POLARSSL_CIPHER_MODE_CBC:POLARSSL_CIPHER_PADDING_PKCS7
set_padding:POLARSSL_CIPHER_AES_128_CBC:POLARSSL_PADDING_PKCS7:0