mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-08-01 10:06:53 +03:00
Add parameter validation for CCM
This commit is contained in:
committed by
Gilles Peskine
parent
54b789aa74
commit
26d365eb54
@ -1,6 +1,9 @@
|
||||
CCM self test
|
||||
mbedtls_ccm_self_test:
|
||||
|
||||
CCM - Invalid parameters
|
||||
ccm_invalid_param:
|
||||
|
||||
CCM init #1 AES-128: OK
|
||||
depends_on:MBEDTLS_AES_C
|
||||
mbedtls_ccm_setkey:MBEDTLS_CIPHER_ID_AES:128:0
|
||||
|
@ -326,3 +326,210 @@ exit:
|
||||
mbedtls_ccm_free( &ctx );
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_CHECK_PARAMS:!MBEDTLS_PARAM_FAILED_ALT */
|
||||
void ccm_invalid_param( )
|
||||
{
|
||||
struct mbedtls_ccm_context ctx;
|
||||
unsigned char valid_buffer[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
|
||||
mbedtls_cipher_id_t valid_cipher = MBEDTLS_CIPHER_ID_AES;
|
||||
int valid_len = sizeof(valid_buffer);
|
||||
int valid_bitlen = valid_len * 8;
|
||||
|
||||
mbedtls_ccm_init( &ctx );
|
||||
|
||||
/* mbedtls_ccm_init() */
|
||||
TEST_INVALID_PARAM( mbedtls_ccm_init( NULL ) );
|
||||
|
||||
/* mbedtls_ccm_setkey() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_setkey( NULL, valid_cipher, valid_buffer, valid_bitlen ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_setkey( &ctx, valid_cipher, NULL, valid_bitlen ) );
|
||||
|
||||
/* mbedtls_ccm_encrypt_and_tag() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_encrypt_and_tag( NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_encrypt_and_tag( &ctx, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, NULL,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
NULL, valid_len ) );
|
||||
|
||||
/* mbedtls_ccm_star_encrypt_and_tag() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_encrypt_and_tag( NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_encrypt_and_tag( &ctx, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, NULL,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_encrypt_and_tag( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
NULL, valid_len ) );
|
||||
|
||||
/* mbedtls_ccm_auth_decrypt() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_auth_decrypt( NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_auth_decrypt( &ctx, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, NULL,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
NULL, valid_len ) );
|
||||
|
||||
/* mbedtls_ccm_star_auth_decrypt() */
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_auth_decrypt( NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_auth_decrypt( &ctx, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
NULL, valid_buffer,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, NULL,
|
||||
valid_buffer, valid_len ) );
|
||||
TEST_INVALID_PARAM_RET(
|
||||
MBEDTLS_ERR_CCM_BAD_INPUT,
|
||||
mbedtls_ccm_star_auth_decrypt( &ctx, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_len,
|
||||
valid_buffer, valid_buffer,
|
||||
NULL, valid_len ) );
|
||||
|
||||
/* mbedtls_ccm_free() */
|
||||
TEST_INVALID_PARAM( mbedtls_ccm_free( NULL ) );
|
||||
|
||||
exit:
|
||||
mbedtls_ccm_free( &ctx );
|
||||
return;
|
||||
}
|
||||
/* END_CASE */
|
||||
|
Reference in New Issue
Block a user