diff --git a/library/ccm.c b/library/ccm.c
index 36c999e..cd689c8 100644
--- a/library/ccm.c
+++ b/library/ccm.c
@@ -70,7 +70,7 @@
         return MBEDTLS_ERR_CCM_BAD_INPUT;
     }
 
-    if (cipher_info->block_size != 16) {
+    if (mbedtls_cipher_info_get_block_size(cipher_info) != 16) {
         return MBEDTLS_ERR_CCM_BAD_INPUT;
     }
 
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 7c6c9d3..a7b1f90 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -70,6 +70,8 @@
 
 #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
@@ -266,7 +268,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_ecb_info = {
@@ -277,7 +279,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_ecb_info = {
@@ -288,7 +290,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
@@ -300,7 +302,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_cbc_info = {
@@ -311,7 +313,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_cbc_info = {
@@ -322,7 +324,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -335,7 +337,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_cfb128_info = {
@@ -346,7 +348,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_cfb128_info = {
@@ -357,7 +359,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CFB */
 
@@ -370,7 +372,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_ofb_info = {
@@ -381,7 +383,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_ofb_info = {
@@ -392,7 +394,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_OFB */
 
@@ -405,7 +407,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_ctr_info = {
@@ -416,7 +418,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_ctr_info = {
@@ -427,7 +429,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
@@ -504,7 +506,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_xts_info = {
@@ -515,7 +517,7 @@
     512 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_XTS */
 
@@ -562,7 +564,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_gcm_info = {
@@ -573,7 +575,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_gcm_info = {
@@ -584,7 +586,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_GCM_C */
 
@@ -631,7 +633,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_ccm_info = {
@@ -642,7 +644,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_ccm_info = {
@@ -653,7 +655,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_128_ccm_star_no_tag_info = {
@@ -664,7 +666,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_ccm_star_no_tag_info = {
@@ -675,7 +677,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_ccm_star_no_tag_info = {
@@ -686,7 +688,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CCM_C */
 
@@ -798,7 +800,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_ecb_info = {
@@ -809,7 +811,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_ecb_info = {
@@ -820,7 +822,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
@@ -832,7 +834,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_cbc_info = {
@@ -843,7 +845,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_cbc_info = {
@@ -854,7 +856,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -867,7 +869,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_cfb128_info = {
@@ -878,7 +880,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_cfb128_info = {
@@ -889,7 +891,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CFB */
 
@@ -902,7 +904,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_ctr_info = {
@@ -913,7 +915,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_ctr_info = {
@@ -924,7 +926,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
@@ -971,7 +973,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_gcm_info = {
@@ -982,7 +984,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_gcm_info = {
@@ -993,7 +995,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_GCM_C */
 
@@ -1040,7 +1042,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_ccm_info = {
@@ -1051,7 +1053,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_ccm_info = {
@@ -1062,7 +1064,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_128_ccm_star_no_tag_info = {
@@ -1073,7 +1075,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_192_ccm_star_no_tag_info = {
@@ -1084,7 +1086,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t camellia_256_ccm_star_no_tag_info = {
@@ -1095,7 +1097,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CCM_C */
 
@@ -1208,7 +1210,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_ecb_info = {
@@ -1219,7 +1221,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_ecb_info = {
@@ -1230,7 +1232,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
@@ -1242,7 +1244,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_cbc_info = {
@@ -1253,7 +1255,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_cbc_info = {
@@ -1264,7 +1266,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -1277,7 +1279,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_cfb128_info = {
@@ -1288,7 +1290,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_cfb128_info = {
@@ -1299,7 +1301,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CFB */
 
@@ -1312,7 +1314,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_ctr_info = {
@@ -1323,7 +1325,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_ctr_info = {
@@ -1334,7 +1336,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CTR */
 
@@ -1381,7 +1383,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_gcm_info = {
@@ -1392,7 +1394,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_gcm_info = {
@@ -1403,7 +1405,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_GCM_C */
 
@@ -1450,7 +1452,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_ccm_info = {
@@ -1461,7 +1463,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_ccm_info = {
@@ -1472,7 +1474,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_128_ccm_star_no_tag_info = {
@@ -1483,7 +1485,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_192_ccm_star_no_tag_info = {
@@ -1494,7 +1496,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aria_256_ccm_star_no_tag_info = {
@@ -1505,7 +1507,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_CCM_C */
 
@@ -1667,7 +1669,7 @@
     MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    8
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
@@ -1679,7 +1681,7 @@
     MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
     8 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    8
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -1718,7 +1720,7 @@
     MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    8
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
 };
 
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
@@ -1730,7 +1732,7 @@
     MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
     8 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    8
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 
@@ -1769,7 +1771,7 @@
     MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    8
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
 };
 #if defined(MBEDTLS_CIPHER_MODE_CBC)
 static const mbedtls_cipher_info_t des_ede3_cbc_info = {
@@ -1780,7 +1782,7 @@
     MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
     8 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    8
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(8)
 };
 #endif /* MBEDTLS_CIPHER_MODE_CBC */
 #endif /* MBEDTLS_DES_C */
@@ -1869,7 +1871,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    1
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(1)
 };
 #endif /* MBEDTLS_CHACHA20_C */
 
@@ -1944,7 +1946,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     12 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    1
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(1)
 };
 #endif /* MBEDTLS_CHACHAPOLY_C */
 
@@ -2013,7 +2015,7 @@
     0 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    1
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(1)
 };
 #endif /* defined(MBEDTLS_CIPHER_NULL_CIPHER) */
 
@@ -2084,7 +2086,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_nist_kw_info = {
@@ -2095,7 +2097,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_nist_kw_info = {
@@ -2106,7 +2108,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_128_nist_kwp_info = {
@@ -2117,7 +2119,7 @@
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_192_nist_kwp_info = {
@@ -2128,7 +2130,7 @@
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 
 static const mbedtls_cipher_info_t aes_256_nist_kwp_info = {
@@ -2139,7 +2141,7 @@
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
     0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
-    16
+    MBEDTLS_CIPHER_BLOCK_SIZE_PACK(16)
 };
 #endif /* MBEDTLS_NIST_KW_C */
 
diff --git a/library/cmac.c b/library/cmac.c
index 48f51df..2e9c1a1 100644
--- a/library/cmac.c
+++ b/library/cmac.c
@@ -119,7 +119,7 @@
 
     mbedtls_platform_zeroize(L, sizeof(L));
 
-    block_size = ctx->cipher_info->block_size;
+    block_size = mbedtls_cipher_info_get_block_size(ctx->cipher_info);
 
     /* Calculate Ek(0) */
     if ((ret = mbedtls_cipher_update(ctx, L, block_size, L, &olen)) != 0) {
@@ -226,7 +226,7 @@
     }
 
     cmac_ctx = ctx->cmac_ctx;
-    block_size = ctx->cipher_info->block_size;
+    block_size = mbedtls_cipher_info_get_block_size(ctx->cipher_info);
     state = ctx->cmac_ctx->state;
 
     /* Is there data still to process from the last call, that's greater in
@@ -295,7 +295,7 @@
     }
 
     cmac_ctx = ctx->cmac_ctx;
-    block_size = ctx->cipher_info->block_size;
+    block_size = mbedtls_cipher_info_get_block_size(ctx->cipher_info);
     state = cmac_ctx->state;
 
     mbedtls_platform_zeroize(K1, sizeof(K1));
diff --git a/library/gcm.c b/library/gcm.c
index 35823e3..7821204 100644
--- a/library/gcm.c
+++ b/library/gcm.c
@@ -147,7 +147,7 @@
         return MBEDTLS_ERR_GCM_BAD_INPUT;
     }
 
-    if (cipher_info->block_size != 16) {
+    if (mbedtls_cipher_info_get_block_size(cipher_info) != 16) {
         return MBEDTLS_ERR_GCM_BAD_INPUT;
     }
 
diff --git a/library/nist_kw.c b/library/nist_kw.c
index d15c5c4..fbd7221 100644
--- a/library/nist_kw.c
+++ b/library/nist_kw.c
@@ -75,7 +75,7 @@
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }
 
-    if (cipher_info->block_size != 16) {
+    if (mbedtls_cipher_info_get_block_size(cipher_info) != 16) {
         return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
     }
 
diff --git a/library/psa_crypto_cipher.c b/library/psa_crypto_cipher.c
index c501144..b997a07 100644
--- a/library/psa_crypto_cipher.c
+++ b/library/psa_crypto_cipher.c
@@ -306,7 +306,7 @@
     size_t *output_length)
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
-    size_t block_size = ctx->cipher_info->block_size;
+    size_t block_size = mbedtls_cipher_info_get_block_size(ctx->cipher_info);
     size_t internal_output_length = 0;
     *output_length = 0;
 
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 36c96f2..a4d9880 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -8397,7 +8397,7 @@
 #if defined(MBEDTLS_USE_PSA_CRYPTO)
         size_t block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type);
 #else
-        size_t block_size = cipher_info->block_size;
+        size_t block_size = mbedtls_cipher_info_get_block_size(cipher_info);
 #endif /* MBEDTLS_USE_PSA_CRYPTO */
 
 #if defined(MBEDTLS_USE_PSA_CRYPTO)
