diff --git a/tests/suites/test_suite_hkdf.function b/tests/suites/test_suite_hkdf.function
index 47e8ee6..0aefca5 100644
--- a/tests/suites/test_suite_hkdf.function
+++ b/tests/suites/test_suite_hkdf.function
@@ -10,20 +10,20 @@
 
 /* BEGIN_CASE */
 void test_hkdf( int md_alg, char *hex_ikm_string, char *hex_salt_string,
-                char *hex_info_string, char *hex_okm_string )
+                char *hex_info_string, char *hex_expected_okm_string )
 {
     int ret;
-    size_t ikm_len, salt_len, info_len, okm_len;
+    size_t ikm_len, salt_len, info_len, expected_okm_len;
     unsigned char ikm[128] = { '\0' };
     unsigned char salt[128] = { '\0' };
     unsigned char info[128] = { '\0' };
     unsigned char expected_okm[128] = { '\0' };
     unsigned char okm[128] = { '\0' };
     /*
-     * okm_hex is the string representation of okm,
+     * okm_string is the ASCII string representation of okm,
      * so its size is twice the size of okm, and an extra null-termination.
      */
-    unsigned char okm_hex[257] = { '\0' };
+    unsigned char okm_string[257] = { '\0' };
 
     const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg );
     TEST_ASSERT( md != NULL );
@@ -31,18 +31,21 @@
     ikm_len = mbedtls_test_unhexify( ikm, hex_ikm_string );
     salt_len = mbedtls_test_unhexify( salt, hex_salt_string );
     info_len = mbedtls_test_unhexify( info, hex_info_string );
-    okm_len = mbedtls_test_unhexify( expected_okm, hex_okm_string );
+    expected_okm_len = mbedtls_test_unhexify( expected_okm,
+                                              hex_expected_okm_string );
+
+    TEST_ASSERT( expected_okm_len <= sizeof( okm ) );
 
     ret = mbedtls_hkdf( md, salt, salt_len, ikm, ikm_len, info, info_len, okm,
-                        okm_len);
+                        expected_okm_len);
     TEST_ASSERT( ret == 0 );
 
     /*
      * Run mbedtls_test_hexify on it so that it looks nicer if the assertion
      * fails.
      */
-    mbedtls_test_hexify( okm_hex, okm, okm_len );
-    TEST_ASSERT( !strcmp( (char *)okm_hex, hex_okm_string ) );
+    mbedtls_test_hexify( okm_string, okm, expected_okm_len );
+    TEST_ASSERT( !strcmp( (char *)okm_string, hex_expected_okm_string ) );
 }
 /* END_CASE */
 
