mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-26 02:37:08 +00:00
Add CCM tests for passing unexpected input.
Signed-off-by: Mateusz Starzyk <mateusz.starzyk@mobica.com>
This commit is contained in:
parent
efec38bb29
commit
83e4c1270a
@ -1737,3 +1737,10 @@ mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_ENCRYPT:"54caf
|
|||||||
|
|
||||||
CCM* decrypt, instant finish AES-128 (P=0, N=13, A=0, T=16)
|
CCM* decrypt, instant finish AES-128 (P=0, N=13, A=0, T=16)
|
||||||
mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af"
|
mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af"
|
||||||
|
|
||||||
|
CCM pass unexpected auth data, NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16)
|
||||||
|
mbedtls_ccm_unexpected_ad::MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"e16c69861efc206e85aab1255e":"0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa"
|
||||||
|
|
||||||
|
CCM encrypt, unexpected ciphertext/plaintext data, NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16)
|
||||||
|
depends_on:MBEDTLS_AES_C
|
||||||
|
mbedtls_ccm_unexpected_text:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98":"e16c69861efc206e85aab1255e":"0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa"
|
||||||
|
@ -542,6 +542,53 @@ exit:
|
|||||||
}
|
}
|
||||||
/* END_CASE */
|
/* END_CASE */
|
||||||
|
|
||||||
|
/* Provide unexpected auth data */
|
||||||
|
/* BEGIN_CASE */
|
||||||
|
void mbedtls_ccm_unexpected_ad( int cipher_id, int mode,
|
||||||
|
data_t * key, data_t * iv,
|
||||||
|
data_t * add )
|
||||||
|
{
|
||||||
|
mbedtls_ccm_context ctx;
|
||||||
|
|
||||||
|
mbedtls_ccm_init( &ctx );
|
||||||
|
TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 );
|
||||||
|
TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) );
|
||||||
|
// use hardcoded values for msg length and tag length. They are not a part of this test
|
||||||
|
TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, 0, 16, 16 ) );
|
||||||
|
|
||||||
|
TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad( &ctx, add->x, add->len) );
|
||||||
|
exit:
|
||||||
|
mbedtls_ccm_free( &ctx );
|
||||||
|
}
|
||||||
|
/* END_CASE */
|
||||||
|
|
||||||
|
/* Provide unexpected plaintext/ciphertext data */
|
||||||
|
/* BEGIN_CASE */
|
||||||
|
void mbedtls_ccm_unexpected_text( int cipher_id, int mode,
|
||||||
|
data_t * key, data_t * msg, data_t * iv,
|
||||||
|
data_t * add )
|
||||||
|
{
|
||||||
|
mbedtls_ccm_context ctx;
|
||||||
|
uint8_t *output = NULL;
|
||||||
|
size_t olen;
|
||||||
|
|
||||||
|
mbedtls_ccm_init( &ctx );
|
||||||
|
TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 );
|
||||||
|
TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) );
|
||||||
|
// use hardcoded value for tag length. It is not a part of this test
|
||||||
|
TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, 0, 16 ) );
|
||||||
|
|
||||||
|
TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) );
|
||||||
|
|
||||||
|
ASSERT_ALLOC( output, msg->len );
|
||||||
|
olen = 0xdeadbeef;
|
||||||
|
TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update( &ctx, msg->x, msg->len, output, msg->len, &olen ) );
|
||||||
|
exit:
|
||||||
|
mbedtls_free( output );
|
||||||
|
mbedtls_ccm_free( &ctx );
|
||||||
|
}
|
||||||
|
/* END_CASE */
|
||||||
|
|
||||||
/* Provide incomplete auth data and finish */
|
/* Provide incomplete auth data and finish */
|
||||||
/* BEGIN_CASE */
|
/* BEGIN_CASE */
|
||||||
void mbedtls_ccm_incomplete_ad( int cipher_id, int mode,
|
void mbedtls_ccm_incomplete_ad( int cipher_id, int mode,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user