Use fewer bits for iv_size

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/include/mbedtls/cipher.h b/include/mbedtls/cipher.h
index 1a0f3ff..a133ed9 100644
--- a/include/mbedtls/cipher.h
+++ b/include/mbedtls/cipher.h
@@ -296,7 +296,7 @@
      * For ciphers that accept variable IV sizes,
      * this is the recommended size.
      */
-    uint16_t MBEDTLS_PRIVATE(iv_size);
+    uint8_t MBEDTLS_PRIVATE(iv_size) : 3;
 
     /** Bitflag comprised of MBEDTLS_CIPHER_VARIABLE_IV_LEN and
      *  MBEDTLS_CIPHER_VARIABLE_KEY_LEN indicating whether the
@@ -309,8 +309,10 @@
 
 } mbedtls_cipher_info_t;
 
-/* This is used to more compactly represent the key_bitlen field above. It is for internal use only. */
+/* For internal use only.
+ * These are used to more compactly represent the key_bitlen and iv_size fields above. */
 #define MBEDTLS_KEY_BITLEN_SHIFT 6
+#define MBEDTLS_IV_SIZE_SHIFT    2
 
 /**
  * Generic cipher context.
@@ -524,7 +526,7 @@
         return 0;
     }
 
-    return (size_t) info->MBEDTLS_PRIVATE(iv_size);
+    return ((size_t) info->MBEDTLS_PRIVATE(iv_size)) << MBEDTLS_IV_SIZE_SHIFT;
 }
 
 /**
@@ -730,7 +732,7 @@
         return (int) ctx->MBEDTLS_PRIVATE(iv_size);
     }
 
-    return (int) ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(iv_size);
+    return (int) (((int)ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(iv_size)) << MBEDTLS_IV_SIZE_SHIFT);
 }
 
 /**
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 54ff995..b4f1619 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -246,7 +246,7 @@
     MBEDTLS_CIPHER_AES_128_ECB,
     MBEDTLS_MODE_ECB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -257,7 +257,7 @@
     MBEDTLS_CIPHER_AES_192_ECB,
     MBEDTLS_MODE_ECB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -268,7 +268,7 @@
     MBEDTLS_CIPHER_AES_256_ECB,
     MBEDTLS_MODE_ECB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -280,7 +280,7 @@
     MBEDTLS_CIPHER_AES_128_CBC,
     MBEDTLS_MODE_CBC,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -291,7 +291,7 @@
     MBEDTLS_CIPHER_AES_192_CBC,
     MBEDTLS_MODE_CBC,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -302,7 +302,7 @@
     MBEDTLS_CIPHER_AES_256_CBC,
     MBEDTLS_MODE_CBC,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -315,7 +315,7 @@
     MBEDTLS_CIPHER_AES_128_CFB128,
     MBEDTLS_MODE_CFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -326,7 +326,7 @@
     MBEDTLS_CIPHER_AES_192_CFB128,
     MBEDTLS_MODE_CFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -337,7 +337,7 @@
     MBEDTLS_CIPHER_AES_256_CFB128,
     MBEDTLS_MODE_CFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -350,7 +350,7 @@
     MBEDTLS_CIPHER_AES_128_OFB,
     MBEDTLS_MODE_OFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -361,7 +361,7 @@
     MBEDTLS_CIPHER_AES_192_OFB,
     MBEDTLS_MODE_OFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -372,7 +372,7 @@
     MBEDTLS_CIPHER_AES_256_OFB,
     MBEDTLS_MODE_OFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -385,7 +385,7 @@
     MBEDTLS_CIPHER_AES_128_CTR,
     MBEDTLS_MODE_CTR,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -396,7 +396,7 @@
     MBEDTLS_CIPHER_AES_192_CTR,
     MBEDTLS_MODE_CTR,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -407,7 +407,7 @@
     MBEDTLS_CIPHER_AES_256_CTR,
     MBEDTLS_MODE_CTR,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -484,7 +484,7 @@
     MBEDTLS_CIPHER_AES_128_XTS,
     MBEDTLS_MODE_XTS,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -495,7 +495,7 @@
     MBEDTLS_CIPHER_AES_256_XTS,
     MBEDTLS_MODE_XTS,
     512 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -542,7 +542,7 @@
     MBEDTLS_CIPHER_AES_128_GCM,
     MBEDTLS_MODE_GCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -553,7 +553,7 @@
     MBEDTLS_CIPHER_AES_192_GCM,
     MBEDTLS_MODE_GCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -564,7 +564,7 @@
     MBEDTLS_CIPHER_AES_256_GCM,
     MBEDTLS_MODE_GCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -611,7 +611,7 @@
     MBEDTLS_CIPHER_AES_128_CCM,
     MBEDTLS_MODE_CCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -622,7 +622,7 @@
     MBEDTLS_CIPHER_AES_192_CCM,
     MBEDTLS_MODE_CCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -633,7 +633,7 @@
     MBEDTLS_CIPHER_AES_256_CCM,
     MBEDTLS_MODE_CCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -644,7 +644,7 @@
     MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -655,7 +655,7 @@
     MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -666,7 +666,7 @@
     MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -778,7 +778,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_ECB,
     MBEDTLS_MODE_ECB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -789,7 +789,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_ECB,
     MBEDTLS_MODE_ECB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -800,7 +800,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_ECB,
     MBEDTLS_MODE_ECB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -812,7 +812,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_CBC,
     MBEDTLS_MODE_CBC,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -823,7 +823,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_CBC,
     MBEDTLS_MODE_CBC,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -834,7 +834,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_CBC,
     MBEDTLS_MODE_CBC,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -847,7 +847,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_CFB128,
     MBEDTLS_MODE_CFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -858,7 +858,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_CFB128,
     MBEDTLS_MODE_CFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -869,7 +869,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_CFB128,
     MBEDTLS_MODE_CFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -882,7 +882,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_CTR,
     MBEDTLS_MODE_CTR,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -893,7 +893,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_CTR,
     MBEDTLS_MODE_CTR,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -904,7 +904,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_CTR,
     MBEDTLS_MODE_CTR,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -951,7 +951,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_GCM,
     MBEDTLS_MODE_GCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -962,7 +962,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_GCM,
     MBEDTLS_MODE_GCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -973,7 +973,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_GCM,
     MBEDTLS_MODE_GCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1020,7 +1020,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_CCM,
     MBEDTLS_MODE_CCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1031,7 +1031,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_CCM,
     MBEDTLS_MODE_CCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1042,7 +1042,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_CCM,
     MBEDTLS_MODE_CCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1053,7 +1053,7 @@
     MBEDTLS_CIPHER_CAMELLIA_128_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1064,7 +1064,7 @@
     MBEDTLS_CIPHER_CAMELLIA_192_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1075,7 +1075,7 @@
     MBEDTLS_CIPHER_CAMELLIA_256_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1188,7 +1188,7 @@
     MBEDTLS_CIPHER_ARIA_128_ECB,
     MBEDTLS_MODE_ECB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1199,7 +1199,7 @@
     MBEDTLS_CIPHER_ARIA_192_ECB,
     MBEDTLS_MODE_ECB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1210,7 +1210,7 @@
     MBEDTLS_CIPHER_ARIA_256_ECB,
     MBEDTLS_MODE_ECB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1222,7 +1222,7 @@
     MBEDTLS_CIPHER_ARIA_128_CBC,
     MBEDTLS_MODE_CBC,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1233,7 +1233,7 @@
     MBEDTLS_CIPHER_ARIA_192_CBC,
     MBEDTLS_MODE_CBC,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1244,7 +1244,7 @@
     MBEDTLS_CIPHER_ARIA_256_CBC,
     MBEDTLS_MODE_CBC,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1257,7 +1257,7 @@
     MBEDTLS_CIPHER_ARIA_128_CFB128,
     MBEDTLS_MODE_CFB,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1268,7 +1268,7 @@
     MBEDTLS_CIPHER_ARIA_192_CFB128,
     MBEDTLS_MODE_CFB,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1279,7 +1279,7 @@
     MBEDTLS_CIPHER_ARIA_256_CFB128,
     MBEDTLS_MODE_CFB,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1292,7 +1292,7 @@
     MBEDTLS_CIPHER_ARIA_128_CTR,
     MBEDTLS_MODE_CTR,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1303,7 +1303,7 @@
     MBEDTLS_CIPHER_ARIA_192_CTR,
     MBEDTLS_MODE_CTR,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1314,7 +1314,7 @@
     MBEDTLS_CIPHER_ARIA_256_CTR,
     MBEDTLS_MODE_CTR,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    16,
+    16 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -1361,7 +1361,7 @@
     MBEDTLS_CIPHER_ARIA_128_GCM,
     MBEDTLS_MODE_GCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1372,7 +1372,7 @@
     MBEDTLS_CIPHER_ARIA_192_GCM,
     MBEDTLS_MODE_GCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1383,7 +1383,7 @@
     MBEDTLS_CIPHER_ARIA_256_GCM,
     MBEDTLS_MODE_GCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1430,7 +1430,7 @@
     MBEDTLS_CIPHER_ARIA_128_CCM,
     MBEDTLS_MODE_CCM,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1441,7 +1441,7 @@
     MBEDTLS_CIPHER_ARIA_192_CCM,
     MBEDTLS_MODE_CCM,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1452,7 +1452,7 @@
     MBEDTLS_CIPHER_ARIA_256_CCM,
     MBEDTLS_MODE_CCM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1463,7 +1463,7 @@
     MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1474,7 +1474,7 @@
     MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1485,7 +1485,7 @@
     MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG,
     MBEDTLS_MODE_CCM_STAR_NO_TAG,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     MBEDTLS_CIPHER_VARIABLE_IV_LEN,
     16
 };
@@ -1647,7 +1647,7 @@
     MBEDTLS_CIPHER_DES_ECB,
     MBEDTLS_MODE_ECB,
     MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     8
 };
@@ -1659,7 +1659,7 @@
     MBEDTLS_CIPHER_DES_CBC,
     MBEDTLS_MODE_CBC,
     MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
-    8,
+    8 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     8
 };
@@ -1698,7 +1698,7 @@
     MBEDTLS_CIPHER_DES_EDE_ECB,
     MBEDTLS_MODE_ECB,
     MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     8
 };
@@ -1710,7 +1710,7 @@
     MBEDTLS_CIPHER_DES_EDE_CBC,
     MBEDTLS_MODE_CBC,
     MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
-    8,
+    8 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     8
 };
@@ -1749,7 +1749,7 @@
     MBEDTLS_CIPHER_DES_EDE3_ECB,
     MBEDTLS_MODE_ECB,
     MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     8
 };
@@ -1760,7 +1760,7 @@
     MBEDTLS_CIPHER_DES_EDE3_CBC,
     MBEDTLS_MODE_CBC,
     MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    8,
+    8 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     8
 };
@@ -1849,7 +1849,7 @@
     MBEDTLS_CIPHER_CHACHA20,
     MBEDTLS_MODE_STREAM,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     1
 };
@@ -1924,7 +1924,7 @@
     MBEDTLS_CIPHER_CHACHA20_POLY1305,
     MBEDTLS_MODE_CHACHAPOLY,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    12,
+    12 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     1
 };
@@ -1993,7 +1993,7 @@
     MBEDTLS_CIPHER_NULL,
     MBEDTLS_MODE_STREAM,
     0 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     1
 };
@@ -2064,7 +2064,7 @@
     MBEDTLS_CIPHER_AES_128_KW,
     MBEDTLS_MODE_KW,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -2075,7 +2075,7 @@
     MBEDTLS_CIPHER_AES_192_KW,
     MBEDTLS_MODE_KW,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -2086,7 +2086,7 @@
     MBEDTLS_CIPHER_AES_256_KW,
     MBEDTLS_MODE_KW,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -2097,7 +2097,7 @@
     MBEDTLS_CIPHER_AES_128_KWP,
     MBEDTLS_MODE_KWP,
     128 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -2108,7 +2108,7 @@
     MBEDTLS_CIPHER_AES_192_KWP,
     MBEDTLS_MODE_KWP,
     192 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };
@@ -2119,7 +2119,7 @@
     MBEDTLS_CIPHER_AES_256_KWP,
     MBEDTLS_MODE_KWP,
     256 >> MBEDTLS_KEY_BITLEN_SHIFT,
-    0,
+    0 >> MBEDTLS_IV_SIZE_SHIFT,
     0,
     16
 };