Split mbedtls_ccm_init() -> setkey()
diff --git a/tests/suites/test_suite_ccm.data b/tests/suites/test_suite_ccm.data
index 9ce19ee..90ba42d 100644
--- a/tests/suites/test_suite_ccm.data
+++ b/tests/suites/test_suite_ccm.data
@@ -3,19 +3,19 @@
 
 CCM init #1 AES-128: OK
 depends_on:MBEDTLS_AES_C
-mbedtls_ccm_init:MBEDTLS_CIPHER_ID_AES:128:0
+mbedtls_ccm_setkey:MBEDTLS_CIPHER_ID_AES:128:0
 
 CCM init #2 CAMELLIA-256: OK
 depends_on:MBEDTLS_CAMELLIA_C
-mbedtls_ccm_init:MBEDTLS_CIPHER_ID_CAMELLIA:256:0
+mbedtls_ccm_setkey:MBEDTLS_CIPHER_ID_CAMELLIA:256:0
 
 CCM init #3 AES-224: bad key size
 depends_on:MBEDTLS_AES_C
-mbedtls_ccm_init:MBEDTLS_CIPHER_ID_AES:224:MBEDTLS_ERR_CCM_BAD_INPUT
+mbedtls_ccm_setkey:MBEDTLS_CIPHER_ID_AES:224:MBEDTLS_ERR_CCM_BAD_INPUT
 
 CCM init #4 BLOWFISH-128: bad block size
 depends_on:MBEDTLS_BLOWFISH_C
-mbedtls_ccm_init:MBEDTLS_CIPHER_ID_BLOWFISH:128:MBEDTLS_ERR_CCM_BAD_INPUT
+mbedtls_ccm_setkey:MBEDTLS_CIPHER_ID_BLOWFISH:128:MBEDTLS_ERR_CCM_BAD_INPUT
 
 CCM lengths #1 all OK
 ccm_lengths:5:10:5:8:0
diff --git a/tests/suites/test_suite_ccm.function b/tests/suites/test_suite_ccm.function
index 6769ed6..13371eb 100644
--- a/tests/suites/test_suite_ccm.function
+++ b/tests/suites/test_suite_ccm.function
@@ -15,16 +15,18 @@
 /* END_CASE */
 
 /* BEGIN_CASE */
-void mbedtls_ccm_init( int cipher_id, int key_size, int result )
+void mbedtls_ccm_setkey( int cipher_id, int key_size, int result )
 {
     mbedtls_ccm_context ctx;
     unsigned char key[32];
     int ret;
 
+    mbedtls_ccm_init( &ctx );
+
     memset( key, 0x2A, sizeof( key ) );
     TEST_ASSERT( (unsigned) key_size <= 8 * sizeof( key ) );
 
-    ret = mbedtls_ccm_init( &ctx, cipher_id, key, key_size );
+    ret = mbedtls_ccm_setkey( &ctx, cipher_id, key, key_size );
     TEST_ASSERT( ret == result );
 
 exit:
@@ -44,6 +46,8 @@
     unsigned char tag[18];
     int decrypt_ret;
 
+    mbedtls_ccm_init( &ctx );
+
     memset( key, 0, sizeof( key ) );
     memset( msg, 0, sizeof( msg ) );
     memset( iv, 0, sizeof( iv ) );
@@ -51,7 +55,7 @@
     memset( out, 0, sizeof( out ) );
     memset( tag, 0, sizeof( tag ) );
 
-    TEST_ASSERT( mbedtls_ccm_init( &ctx, MBEDTLS_CIPHER_ID_AES,
+    TEST_ASSERT( mbedtls_ccm_setkey( &ctx, MBEDTLS_CIPHER_ID_AES,
                                  key, 8 * sizeof( key ) ) == 0 );
 
     TEST_ASSERT( mbedtls_ccm_encrypt_and_tag( &ctx, msg_len, iv, iv_len, add, add_len,
@@ -84,6 +88,8 @@
     mbedtls_ccm_context ctx;
     size_t key_len, msg_len, iv_len, add_len, tag_len, result_len;
 
+    mbedtls_ccm_init( &ctx );
+
     memset( key, 0x00, sizeof( key ) );
     memset( msg, 0x00, sizeof( msg ) );
     memset( iv, 0x00, sizeof( iv ) );
@@ -97,7 +103,7 @@
     result_len = unhexify( result, result_hex );
     tag_len = result_len - msg_len;
 
-    TEST_ASSERT( mbedtls_ccm_init( &ctx, cipher_id, key, key_len * 8 ) == 0 );
+    TEST_ASSERT( mbedtls_ccm_setkey( &ctx, cipher_id, key, key_len * 8 ) == 0 );
 
     /* Test with input == output */
     TEST_ASSERT( mbedtls_ccm_encrypt_and_tag( &ctx, msg_len, iv, iv_len, add, add_len,
@@ -129,6 +135,8 @@
     size_t key_len, msg_len, iv_len, add_len, result_len;
     int ret;
 
+    mbedtls_ccm_init( &ctx );
+
     memset( key, 0x00, sizeof( key ) );
     memset( msg, 0x00, sizeof( msg ) );
     memset( iv, 0x00, sizeof( iv ) );
@@ -154,7 +162,7 @@
         result_len = unhexify( result, result_hex );
     }
 
-    TEST_ASSERT( mbedtls_ccm_init( &ctx, cipher_id, key, key_len * 8 ) == 0 );
+    TEST_ASSERT( mbedtls_ccm_setkey( &ctx, cipher_id, key, key_len * 8 ) == 0 );
 
     /* Test with input == output */
     TEST_ASSERT( mbedtls_ccm_auth_decrypt( &ctx, msg_len, iv, iv_len, add, add_len,