Add ccm_init/free()
diff --git a/tests/suites/test_suite_ccm.data b/tests/suites/test_suite_ccm.data
index 223e28a..61ae831 100644
--- a/tests/suites/test_suite_ccm.data
+++ b/tests/suites/test_suite_ccm.data
@@ -1,2 +1,18 @@
CCM self test
ccm_self_test:
+
+CCM init #1 AES-128: OK
+depends_on:POLARSSL_AES_C
+ccm_init:POLARSSL_CIPHER_ID_AES:128:0
+
+CCM init #2 CAMELLIA-256: OK
+depends_on:POLARSSL_CAMELLIA_C
+ccm_init:POLARSSL_CIPHER_ID_CAMELLIA:256:0
+
+CCM init #3 AES-224: bad key size
+depends_on:POLARSSL_AES_C
+ccm_init:POLARSSL_CIPHER_ID_AES:224:POLARSSL_ERR_CCM_BAD_INPUT
+
+CCM init #4 BLOWFISH-128: bad block size
+depends_on:POLARSSL_BLOWFISH_C
+ccm_init:POLARSSL_CIPHER_ID_BLOWFISH:128:POLARSSL_ERR_CCM_BAD_INPUT
diff --git a/tests/suites/test_suite_ccm.function b/tests/suites/test_suite_ccm.function
index 487d1c5..7137a60 100644
--- a/tests/suites/test_suite_ccm.function
+++ b/tests/suites/test_suite_ccm.function
@@ -13,3 +13,20 @@
TEST_ASSERT( ccm_self_test( 0 ) == 0 );
}
/* END_CASE */
+
+/* BEGIN_CASE */
+void ccm_init( int cipher_id, int key_size, int result )
+{
+ ccm_context ctx;
+ unsigned char key[32];
+ int ret;
+
+ memset( key, 0x2A, sizeof( key ) );
+ TEST_ASSERT( (unsigned) key_size <= 8 * sizeof( key ) );
+
+ ret = ccm_init( &ctx, cipher_id, key, key_size );
+ TEST_ASSERT( ret == result );
+
+ ccm_free( &ctx );
+}
+/* END_CASE */