Add tests for (named) bitstring to suite_asn1write
diff --git a/tests/suites/test_suite_asn1write.function b/tests/suites/test_suite_asn1write.function
index 57a9741..e45583c 100644
--- a/tests/suites/test_suite_asn1write.function
+++ b/tests/suites/test_suite_asn1write.function
@@ -128,3 +128,47 @@
}
}
/* END_CASE */
+
+/* BEGIN_CASE */
+void test_asn1_write_bitstrings( data_t *bitstring, int bits,
+ data_t *expected_asn1, int result,
+ int is_named )
+{
+ int ret;
+ size_t i;
+ unsigned char buf[150];
+ unsigned char *p;
+
+ memset( buf, GUARD_VAL, sizeof( buf ) );
+
+ p = buf + GUARD_LEN + expected_asn1->len;
+
+ if ( is_named == 0 )
+ {
+ ret = mbedtls_asn1_write_bitstring( &p,
+ buf,
+ (unsigned char *)bitstring->x,
+ (size_t) bits );
+ }
+ else
+ {
+ ret = mbedtls_asn1_write_named_bitstring( &p,
+ buf,
+ (unsigned char *)bitstring->x,
+ (size_t) bits );
+ }
+ TEST_ASSERT( ret == result );
+
+ /* Check for buffer overwrite on both sides */
+ for( i = 0; i < GUARD_LEN; i++ )
+ {
+ TEST_ASSERT( buf[i] == GUARD_VAL );
+ TEST_ASSERT( buf[GUARD_LEN + expected_asn1->len + i] == GUARD_VAL );
+ }
+
+ if ( result >= 0 )
+ {
+ TEST_ASSERT( memcmp( p, expected_asn1->x, expected_asn1->len ) == 0 );
+ }
+}
+/* END_CASE */