Use fewer bits for block_size

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/include/mbedtls/cipher.h b/include/mbedtls/cipher.h
index 0eb0803..02bca32 100644
--- a/include/mbedtls/cipher.h
+++ b/include/mbedtls/cipher.h
@@ -305,15 +305,15 @@
     uint8_t MBEDTLS_PRIVATE(flags) : 2;
 
     /** The block size, in bytes. */
-    uint8_t MBEDTLS_PRIVATE(block_size) : 5;
+    uint8_t MBEDTLS_PRIVATE(block_size2) : 2;
 
 } mbedtls_cipher_info_t;
 
 /* 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
-
+ * These are used to more compactly represent the fields above. */
+#define MBEDTLS_KEY_BITLEN_SHIFT  6
+#define MBEDTLS_IV_SIZE_SHIFT     2
+#define MBEDTLS_CIPHER_BLOCK_SIZE_UNPACK(n) (n == 0 ? 1 : (n == 1 ? 8 : 16))
 /**
  * Generic cipher context.
  */
@@ -546,7 +546,8 @@
         return 0;
     }
 
-    return (size_t) info->MBEDTLS_PRIVATE(block_size);
+    int packed = info->MBEDTLS_PRIVATE(block_size2);
+    return (size_t) (MBEDTLS_CIPHER_BLOCK_SIZE_UNPACK(packed));
 }
 
 /**
@@ -687,7 +688,8 @@
         return 0;
     }
 
-    return ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(block_size);
+    int packed = ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(block_size2);
+    return (unsigned int) MBEDTLS_CIPHER_BLOCK_SIZE_UNPACK(packed);
 }
 
 /**