Add tests for th init_buf() variant of HMAC_DRBG
diff --git a/tests/suites/test_suite_hmac_drbg.function b/tests/suites/test_suite_hmac_drbg.function
index 0882696..d9a365d 100644
--- a/tests/suites/test_suite_hmac_drbg.function
+++ b/tests/suites/test_suite_hmac_drbg.function
@@ -153,6 +153,7 @@
char *add1_hex, char *add2_hex,
char *output_hex )
{
+ unsigned char data[1024];
unsigned char entropy[512];
unsigned char custom[512];
unsigned char add1[512];
@@ -174,6 +175,21 @@
p_entropy.p = entropy;
TEST_ASSERT( ( md_info = md_info_from_type( md_alg ) ) != NULL );
+
+ /* Test the simplified buffer-based variant */
+ memcpy( data, entropy, p_entropy.len );
+ memcpy( data + p_entropy.len, custom, custom_len );
+ TEST_ASSERT( hmac_drbg_init_buf( &ctx, md_info,
+ data, p_entropy.len + custom_len ) == 0 );
+ TEST_ASSERT( hmac_drbg_random_with_add( &ctx, my_output, out_len,
+ add1, add1_len ) == 0 );
+ TEST_ASSERT( hmac_drbg_random_with_add( &ctx, my_output, out_len,
+ add2, add2_len ) == 0 );
+ hmac_drbg_free( &ctx );
+
+ TEST_ASSERT( memcmp( my_output, output, out_len ) == 0 );
+
+ /* And now the normal entropy-based variant */
TEST_ASSERT( hmac_drbg_init( &ctx, md_info, entropy_func, &p_entropy,
custom, custom_len ) == 0 );
TEST_ASSERT( hmac_drbg_random_with_add( &ctx, my_output, out_len,
@@ -183,6 +199,7 @@
hmac_drbg_free( &ctx );
TEST_ASSERT( memcmp( my_output, output, out_len ) == 0 );
+
}
/* END_CASE */