Add tests for Issue #8687
Signed-off-by: Jonathan Winzig <jwinzig@hilscher.com>
diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data
index 28cef30..730e76e 100644
--- a/tests/suites/test_suite_x509write.data
+++ b/tests/suites/test_suite_x509write.data
@@ -265,3 +265,9 @@
Check max serial length
x509_set_serial_check:
+
+Check max extension length (Max-1)
+x509_set_extension_length_check:0xFFFFFFFE
+
+Check max extension length (Max)
+x509_set_extension_length_check:0xFFFFFFFF
\ No newline at end of file
diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function
index b59fd48..7690dc0 100644
--- a/tests/suites/test_suite_x509write.function
+++ b/tests/suites/test_suite_x509write.function
@@ -752,3 +752,24 @@
USE_PSA_DONE();
}
/* END_CASE */
+
+/* BEGIN_CASE */
+void x509_set_extension_length_check(int val_len)
+{
+ int ret = 0;
+
+ mbedtls_x509write_csr ctx;
+ mbedtls_x509write_csr_init(&ctx);
+
+ unsigned char buf[EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH] = { 0 };
+ unsigned char *p = buf + sizeof(buf);
+
+ ret = mbedtls_x509_set_extension(&(ctx.MBEDTLS_PRIVATE(extensions)),
+ MBEDTLS_OID_EXTENDED_KEY_USAGE,
+ MBEDTLS_OID_SIZE(MBEDTLS_OID_EXTENDED_KEY_USAGE),
+ 0,
+ p,
+ val_len);
+ TEST_ASSERT(ret == MBEDTLS_ERR_X509_BAD_INPUT_DATA || ret == MBEDTLS_ERR_X509_ALLOC_FAILED);
+}
+/* END_CASE */