- Split cipher test suite into three different sets
 - Adapted test source code generation accordingly

diff --git a/tests/suites/test_suite_cipher.des.data b/tests/suites/test_suite_cipher.des.data
new file mode 100644
index 0000000..7dd89a1
--- /dev/null
+++ b/tests/suites/test_suite_cipher.des.data
@@ -0,0 +1,318 @@
+Cipher Selftest
+depends_on:POLARSSL_SELF_TEST
+cipher_selftest:
+
+Decrypt empty buffer
+dec_empty_buf:
+
+DES Encrypt and decrypt 0 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:0
+
+DES Encrypt and decrypt 1 byte
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:1
+
+DES Encrypt and decrypt 2 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:2
+
+DES Encrypt and decrypt 7 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:7
+
+DES Encrypt and decrypt 8 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:8
+
+DES Encrypt and decrypt 9 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:9
+
+DES Encrypt and decrypt 15 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:15
+
+DES Encrypt and decrypt 16 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:16
+
+DES Encrypt and decrypt 17 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:17
+
+DES Encrypt and decrypt 31 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:31
+
+DES Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:32
+
+DES Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:33
+
+DES Encrypt and decrypt 47 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:47
+
+DES Encrypt and decrypt 48 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:48
+
+DES Encrypt and decrypt 49 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_CBC:DES-CBC:56:49
+
+DES Encrypt and decrypt 0 bytes in multiple parts
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:0:0:
+
+DES Encrypt and decrypt 1 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:1:0:
+
+DES Encrypt and decrypt 1 bytes in multiple parts 2
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:0:1:
+
+DES Encrypt and decrypt 16 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:16:0:
+
+DES Encrypt and decrypt 16 bytes in multiple parts 2
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:0:16:
+
+DES Encrypt and decrypt 16 bytes in multiple parts 3
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:1:15:
+
+DES Encrypt and decrypt 16 bytes in multiple parts 4
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:15:1:
+
+DES Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:15:7:
+
+DES Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:16:6:
+
+DES Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:17:6:
+
+DES Encrypt and decrypt 32 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_CBC:56:16:16:
+
+DES Encrypt and decrypt 0 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:0
+
+DES3 Encrypt and decrypt 1 byte
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:1
+
+DES3 Encrypt and decrypt 2 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:2
+
+DES3 Encrypt and decrypt 7 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:7
+
+DES3 Encrypt and decrypt 8 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:8
+
+DES3 Encrypt and decrypt 9 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:9
+
+DES3 Encrypt and decrypt 15 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:15
+
+DES3 Encrypt and decrypt 16 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:16
+
+DES3 Encrypt and decrypt 17 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:17
+
+DES3 Encrypt and decrypt 31 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:31
+
+DES3 Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:32
+
+DES3 Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:33
+
+DES3 Encrypt and decrypt 47 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:47
+
+DES3 Encrypt and decrypt 48 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:48
+
+DES3 Encrypt and decrypt 49 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE_CBC:DES-EDE-CBC:112:49
+
+DES3 Encrypt and decrypt 0 bytes in multiple parts
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:0:0:
+
+DES3 Encrypt and decrypt 1 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:1:0:
+
+DES3 Encrypt and decrypt 1 bytes in multiple parts 2
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:0:1:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:16:0:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 2
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:0:16:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 3
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:1:15:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 4
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:15:1:
+
+DES3 Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:15:7:
+
+DES3 Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:16:6:
+
+DES3 Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:17:6:
+
+DES3 Encrypt and decrypt 32 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE_CBC:112:16:16:
+
+DES3 Encrypt and decrypt 0 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:0
+
+DES3 Encrypt and decrypt 1 byte
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:1
+
+DES3 Encrypt and decrypt 2 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:2
+
+DES3 Encrypt and decrypt 7 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:7
+
+DES3 Encrypt and decrypt 8 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:8
+
+DES3 Encrypt and decrypt 9 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:9
+
+DES3 Encrypt and decrypt 15 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:15
+
+DES3 Encrypt and decrypt 16 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:16
+
+DES3 Encrypt and decrypt 17 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:17
+
+DES3 Encrypt and decrypt 31 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:31
+
+DES3 Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:32
+
+DES3 Encrypt and decrypt 32 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:33
+
+DES3 Encrypt and decrypt 47 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:47
+
+DES3 Encrypt and decrypt 48 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:48
+
+DES3 Encrypt and decrypt 49 bytes
+depends_on:POLARSSL_DES_C
+enc_dec_buf:POLARSSL_CIPHER_DES_EDE3_CBC:DES-EDE3-CBC:168:49
+
+DES3 Encrypt and decrypt 0 bytes in multiple parts
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:0:0:
+
+DES3 Encrypt and decrypt 1 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:1:0:
+
+DES3 Encrypt and decrypt 1 bytes in multiple parts 2
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:0:1:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:16:0:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 2
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:0:16:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 3
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:1:15:
+
+DES3 Encrypt and decrypt 16 bytes in multiple parts 4
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:15:1:
+
+DES3 Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:15:7:
+
+DES3 Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:16:6:
+
+DES3 Encrypt and decrypt 22 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:17:6:
+
+DES3 Encrypt and decrypt 32 bytes in multiple parts 1
+depends_on:POLARSSL_DES_C
+enc_dec_buf_multipart:POLARSSL_CIPHER_DES_EDE3_CBC:168:16:16: