diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 404e205..60985ee 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -70,8 +70,6 @@
 
 #include "mbedtls/platform.h"
 
-#define MBEDTLS_CIPHER_BLOCK_SIZE_PACK(n)   (n == 1 ? 0 : (n == 8 ? 1 : 2))
-
 #define MBEDTLS_CIPHER_BASE_INDEX_AES 0
 #define MBEDTLS_CIPHER_BASE_INDEX_ARIA 1
 #define MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA 2
@@ -262,174 +260,174 @@
 
 static const mbedtls_cipher_info_t aes_128_ecb_info = {
     "AES-128-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_128_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_ecb_info = {
     "AES-192-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_192_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_ecb_info = {
     "AES-256-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_256_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t aes_128_cbc_info = {
     "AES-128-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_128_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_cbc_info = {
     "AES-192-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_192_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_cbc_info = {
     "AES-256-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_256_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
 #if defined(MBEDTLS_CIPHER_MODE_CFB)
 static const mbedtls_cipher_info_t aes_128_cfb128_info = {
     "AES-128-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_128_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_cfb128_info = {
     "AES-192-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_192_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_cfb128_info = {
     "AES-256-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_256_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 #endif /* MBEDTLS_CIPHER_MODE_CFB */
 
 #if defined(MBEDTLS_CIPHER_MODE_OFB)
 static const mbedtls_cipher_info_t aes_128_ofb_info = {
     "AES-128-OFB",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_128_OFB,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_OFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_OFB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_ofb_info = {
     "AES-192-OFB",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_192_OFB,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_OFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_OFB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_ofb_info = {
     "AES-256-OFB",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_256_OFB,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_OFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_OFB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 #endif /* MBEDTLS_CIPHER_MODE_OFB */
 
 #if defined(MBEDTLS_CIPHER_MODE_CTR)
 static const mbedtls_cipher_info_t aes_128_ctr_info = {
     "AES-128-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_128_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_ctr_info = {
     "AES-192-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_192_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_ctr_info = {
     "AES-256-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_AES,
-    MBEDTLS_CIPHER_AES_256_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_AES
 };
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
@@ -500,24 +498,24 @@
 
 static const mbedtls_cipher_info_t aes_128_xts_info = {
     "AES-128-XTS",
-    MBEDTLS_CIPHER_BASE_INDEX_XTS_AES,
-    MBEDTLS_CIPHER_AES_128_XTS,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_XTS,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_XTS,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_XTS_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_xts_info = {
     "AES-256-XTS",
-    MBEDTLS_CIPHER_BASE_INDEX_XTS_AES,
-    MBEDTLS_CIPHER_AES_256_XTS,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_XTS,
     512 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_XTS,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_XTS_AES
 };
 #endif /* MBEDTLS_CIPHER_MODE_XTS */
 
@@ -558,35 +556,35 @@
 
 static const mbedtls_cipher_info_t aes_128_gcm_info = {
     "AES-128-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_AES,
-    MBEDTLS_CIPHER_AES_128_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_gcm_info = {
     "AES-192-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_AES,
-    MBEDTLS_CIPHER_AES_192_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_gcm_info = {
     "AES-256-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_AES,
-    MBEDTLS_CIPHER_AES_256_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_AES
 };
 #endif /* MBEDTLS_GCM_C */
 
@@ -627,68 +625,68 @@
 
 static const mbedtls_cipher_info_t aes_128_ccm_info = {
     "AES-128-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
-    MBEDTLS_CIPHER_AES_128_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_ccm_info = {
     "AES-192-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
-    MBEDTLS_CIPHER_AES_192_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_ccm_info = {
     "AES-256-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
-    MBEDTLS_CIPHER_AES_256_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_128_ccm_star_no_tag_info = {
     "AES-128-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
-    MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_ccm_star_no_tag_info = {
     "AES-192-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
-    MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_ccm_star_no_tag_info = {
     "AES-256-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
-    MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
 };
 #endif /* MBEDTLS_CCM_C */
 
@@ -794,139 +792,139 @@
 
 static const mbedtls_cipher_info_t camellia_128_ecb_info = {
     "CAMELLIA-128-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_ecb_info = {
     "CAMELLIA-192-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_ecb_info = {
     "CAMELLIA-256-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t camellia_128_cbc_info = {
     "CAMELLIA-128-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_cbc_info = {
     "CAMELLIA-192-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_cbc_info = {
     "CAMELLIA-256-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
 #if defined(MBEDTLS_CIPHER_MODE_CFB)
 static const mbedtls_cipher_info_t camellia_128_cfb128_info = {
     "CAMELLIA-128-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_cfb128_info = {
     "CAMELLIA-192-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_cfb128_info = {
     "CAMELLIA-256-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 #endif /* MBEDTLS_CIPHER_MODE_CFB */
 
 #if defined(MBEDTLS_CIPHER_MODE_CTR)
 static const mbedtls_cipher_info_t camellia_128_ctr_info = {
     "CAMELLIA-128-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_ctr_info = {
     "CAMELLIA-192-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_ctr_info = {
     "CAMELLIA-256-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
 };
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
@@ -967,35 +965,35 @@
 
 static const mbedtls_cipher_info_t camellia_128_gcm_info = {
     "CAMELLIA-128-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_gcm_info = {
     "CAMELLIA-192-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_gcm_info = {
     "CAMELLIA-256-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA
 };
 #endif /* MBEDTLS_GCM_C */
 
@@ -1036,68 +1034,68 @@
 
 static const mbedtls_cipher_info_t camellia_128_ccm_info = {
     "CAMELLIA-128-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_ccm_info = {
     "CAMELLIA-192-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_ccm_info = {
     "CAMELLIA-256-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_128_ccm_star_no_tag_info = {
     "CAMELLIA-128-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_128_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_128_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_192_ccm_star_no_tag_info = {
     "CAMELLIA-192-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_192_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_192_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
 };
 
 static const mbedtls_cipher_info_t camellia_256_ccm_star_no_tag_info = {
     "CAMELLIA-256-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
-    MBEDTLS_CIPHER_CAMELLIA_256_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CAMELLIA_256_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
 };
 #endif /* MBEDTLS_CCM_C */
 
@@ -1204,139 +1202,139 @@
 
 static const mbedtls_cipher_info_t aria_128_ecb_info = {
     "ARIA-128-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_ecb_info = {
     "ARIA-192-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_ecb_info = {
     "ARIA-256-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_ECB,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t aria_128_cbc_info = {
     "ARIA-128-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_cbc_info = {
     "ARIA-192-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_cbc_info = {
     "ARIA-256-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_CBC,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
 #if defined(MBEDTLS_CIPHER_MODE_CFB)
 static const mbedtls_cipher_info_t aria_128_cfb128_info = {
     "ARIA-128-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_cfb128_info = {
     "ARIA-192-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_cfb128_info = {
     "ARIA-256-CFB128",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_CFB128,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_CFB128,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 #endif /* MBEDTLS_CIPHER_MODE_CFB */
 
 #if defined(MBEDTLS_CIPHER_MODE_CTR)
 static const mbedtls_cipher_info_t aria_128_ctr_info = {
     "ARIA-128-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_ctr_info = {
     "ARIA-192-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_ctr_info = {
     "ARIA-256-CTR",
-    MBEDTLS_CIPHER_BASE_INDEX_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_CTR,
+    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CTR,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_CTR,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_ARIA
 };
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
@@ -1377,35 +1375,35 @@
 
 static const mbedtls_cipher_info_t aria_128_gcm_info = {
     "ARIA-128-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_gcm_info = {
     "ARIA-192-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_gcm_info = {
     "ARIA-256-GCM",
-    MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_GCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_GCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_GCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA
 };
 #endif /* MBEDTLS_GCM_C */
 
@@ -1446,68 +1444,68 @@
 
 static const mbedtls_cipher_info_t aria_128_ccm_info = {
     "ARIA-128-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_ccm_info = {
     "ARIA-192-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_ccm_info = {
     "ARIA-256-CCM",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_CCM,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_CCM,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_128_ccm_star_no_tag_info = {
     "ARIA-128-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_192_ccm_star_no_tag_info = {
     "ARIA-192-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
 };
 
 static const mbedtls_cipher_info_t aria_256_ccm_star_no_tag_info = {
     "ARIA-256-CCM*-NO-TAG",
-    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
-    MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG,
+    16,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
 };
 #endif /* MBEDTLS_CCM_C */
 
@@ -1663,25 +1661,25 @@
 
 static const mbedtls_cipher_info_t des_ecb_info = {
     "DES-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_DES,
-    MBEDTLS_CIPHER_DES_ECB,
+    8,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_DES_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
+    MBEDTLS_CIPHER_BASE_INDEX_DES
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t des_cbc_info = {
     "DES-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_DES,
-    MBEDTLS_CIPHER_DES_CBC,
+    8,
+    8 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
-    8 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_DES_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
+    MBEDTLS_CIPHER_BASE_INDEX_DES
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -1714,25 +1712,25 @@
 
 static const mbedtls_cipher_info_t des_ede_ecb_info = {
     "DES-EDE-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE,
-    MBEDTLS_CIPHER_DES_EDE_ECB,
+    8,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_DES_EDE_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
+    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t des_ede_cbc_info = {
     "DES-EDE-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE,
-    MBEDTLS_CIPHER_DES_EDE_CBC,
+    8,
+    8 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
-    8 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_DES_EDE_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
+    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -1765,24 +1763,24 @@
 
 static const mbedtls_cipher_info_t des_ede3_ecb_info = {
     "DES-EDE3-ECB",
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3,
-    MBEDTLS_CIPHER_DES_EDE3_ECB,
+    8,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_ECB,
     MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_DES_EDE3_ECB,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
+    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3
 };
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t des_ede3_cbc_info = {
     "DES-EDE3-CBC",
-    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3,
-    MBEDTLS_CIPHER_DES_EDE3_CBC,
+    8,
+    8 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CBC,
     MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    8 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_DES_EDE3_CBC,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
+    MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 #endif /* MBEDTLS_DES_C */
@@ -1865,13 +1863,13 @@
 };
 static const mbedtls_cipher_info_t chacha20_info = {
     "CHACHA20",
-    MBEDTLS_CIPHER_BASE_INDEX_CHACHA20_BASE,
-    MBEDTLS_CIPHER_CHACHA20,
+    1,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_STREAM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CHACHA20,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(1)
+    MBEDTLS_CIPHER_BASE_INDEX_CHACHA20_BASE
 };
 #endif /* MBEDTLS_CHACHA20_C */
 
@@ -1940,13 +1938,13 @@
 };
 static const mbedtls_cipher_info_t chachapoly_info = {
     "CHACHA20-POLY1305",
-    MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE,
-    MBEDTLS_CIPHER_CHACHA20_POLY1305,
+    1,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_CHACHAPOLY,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_CHACHA20_POLY1305,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(1)
+    MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE
 };
 #endif /* MBEDTLS_CHACHAPOLY_C */
 
@@ -2009,13 +2007,13 @@
 
 static const mbedtls_cipher_info_t null_cipher_info = {
     "NULL",
-    MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE,
-    MBEDTLS_CIPHER_NULL,
+    1,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_STREAM,
     0 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_NULL,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(1)
+    MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE
 };
 #endif /* defined(MBEDTLS_CIPHER_NULL_CIPHER) */
 
@@ -2080,68 +2078,68 @@
 
 static const mbedtls_cipher_info_t aes_128_nist_kw_info = {
     "AES-128-KW",
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-    MBEDTLS_CIPHER_AES_128_KW,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_KW,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_KW,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_nist_kw_info = {
     "AES-192-KW",
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-    MBEDTLS_CIPHER_AES_192_KW,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_KW,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_KW,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_nist_kw_info = {
     "AES-256-KW",
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-    MBEDTLS_CIPHER_AES_256_KW,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_KW,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_KW,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
 };
 
 static const mbedtls_cipher_info_t aes_128_nist_kwp_info = {
     "AES-128-KWP",
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-    MBEDTLS_CIPHER_AES_128_KWP,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_KWP,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_128_KWP,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
 };
 
 static const mbedtls_cipher_info_t aes_192_nist_kwp_info = {
     "AES-192-KWP",
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-    MBEDTLS_CIPHER_AES_192_KWP,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_KWP,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_192_KWP,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
 };
 
 static const mbedtls_cipher_info_t aes_256_nist_kwp_info = {
     "AES-256-KWP",
-    MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
-    MBEDTLS_CIPHER_AES_256_KWP,
+    16,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_MODE_KWP,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0 >> MBEDTLS_IV_SIZE_SHIFT,
+    MBEDTLS_CIPHER_AES_256_KWP,
     0,
-    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
+    MBEDTLS_CIPHER_BASE_INDEX_KW_AES
 };
 #endif /* MBEDTLS_NIST_KW_C */
 
