aes: Use length instead of bits_length in XTS

mbedtls_aes_crypt_xts() currently takes a `bits_length` parameter, unlike
the other block modes. Change the parameter to accept a bytes length
instead, as the `bits_length` parameter is not actually ever used in the
current implementation.
diff --git a/include/mbedtls/aes.h b/include/mbedtls/aes.h
index e166e9c..67cab25 100644
--- a/include/mbedtls/aes.h
+++ b/include/mbedtls/aes.h
@@ -295,7 +295,7 @@
  * \param ctx          The AES XTS context to use for AES XTS operations.
  * \param mode         The AES operation: #MBEDTLS_AES_ENCRYPT or
  *                     #MBEDTLS_AES_DECRYPT.
- * \param bits_length  The length of a data unit in bits.
+ * \param length       The length of a data unit in bytes.
  * \param iv           The address of the data unit encoded as an array of 16
  *                     bytes in little-endian format. For disk encryption, this
  *                     is typically the index of the block device sector that
@@ -313,7 +313,7 @@
  */
 int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx,
                            int mode,
-                           size_t bits_length,
+                           size_t length,
                            const unsigned char iv[16],
                            const unsigned char *input,
                            unsigned char *output );
diff --git a/library/aes.c b/library/aes.c
index ed260a9..2dc600c 100644
--- a/library/aes.c
+++ b/library/aes.c
@@ -1130,7 +1130,7 @@
  */
 int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx,
                            int mode,
-                           size_t bits_length,
+                           size_t length,
                            const unsigned char iv[16],
                            const unsigned char *input,
                            unsigned char *output )
@@ -1147,7 +1147,6 @@
     union xts_buf128 *inbuf;
     union xts_buf128 *outbuf;
 
-    size_t length = bits_length / 8;
     size_t nblk   = length / 16;
     size_t remn   = length % 16;
 
diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function
index e998795..d781d2e 100644
--- a/tests/suites/test_suite_aes.function
+++ b/tests/suites/test_suite_aes.function
@@ -169,10 +169,11 @@
     key_len = unhexify( key_str, hex_key_string );
     unhexify( iv_str, hex_iv_string );
     data_len = unhexify( src_str, hex_src_string );
+    TEST_ASSERT( data_len == data_unit_len / 8 );
 
     mbedtls_aes_xts_setkey_enc( &ctx, key_str, key_len * 8 );
 
-    TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_ENCRYPT, data_unit_len, iv_str, src_str, output ) == xts_result );
+    TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_ENCRYPT, data_len, iv_str, src_str, output ) == xts_result );
     if( xts_result == 0 )
     {
         hexify( dst_str, output, data_len );
@@ -203,10 +204,11 @@
     key_len = unhexify( key_str, hex_key_string );
     unhexify( iv_str, hex_iv_string );
     data_len = unhexify( src_str, hex_src_string );
+    TEST_ASSERT( data_len == data_unit_len / 8 );
 
     mbedtls_aes_xts_setkey_dec( &ctx, key_str, key_len * 8 );
 
-    TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_DECRYPT, data_unit_len, iv_str, src_str, output ) == xts_result );
+    TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_DECRYPT, data_len, iv_str, src_str, output ) == xts_result );
     if( xts_result == 0 )
     {
         hexify( dst_str, output, data_len );