Commit 5f489043b6 for openssl.org
commit 5f489043b662fed32fbf7eb7442c479568eb43fd
Author: Bob Beck <beck@openssl.org>
Date: Fri Apr 17 12:25:14 2026 -0600
Add further unit tests for e-mail validation
Ensure we correctly catch misformed things.
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
MergeDate: Mon Jun 8 19:59:29 2026
diff --git a/test/verify_extra_test.c b/test/verify_extra_test.c
index d49566abe9..052172e245 100644
--- a/test/verify_extra_test.c
+++ b/test/verify_extra_test.c
@@ -556,6 +556,37 @@ static int yolo_ip_validation(const uint8_t *name, size_t len)
return 1;
}
+static const char *valid_emails[] = {
+ "@bb",
+ "b@bb",
+ "b@b-b",
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@bb",
+ "b@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "b@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
+ "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb."
+ "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc."
+ "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
+ NULL,
+};
+
+static const char *invalid_emails[] = {
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@bb",
+ "b@b",
+ "b@bb.",
+ "b@bb..bb",
+ "b@bb-.bb",
+ "b@-bb.bb",
+ "b@bb.-bb",
+ "@",
+ "@b",
+ "b@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "b@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa."
+ "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb."
+ "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc."
+ "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
+ NULL,
+};
+
static int test_vpm_input_validation(void)
{
const char *utf8mail = "学生@muppetry.ca";
@@ -591,6 +622,14 @@ static int test_vpm_input_validation(void)
if (!TEST_false(X509_VERIFY_PARAM_set1_host(vpm, multiname_emails[i], 0)))
goto err;
}
+ for (size_t i = 0; valid_emails[i] != NULL; i++) {
+ if (!TEST_true(X509_VERIFY_PARAM_set1_email(vpm, valid_emails[i], 0)))
+ goto err;
+ }
+ for (size_t i = 0; invalid_emails[i] != NULL; i++) {
+ if (TEST_true(X509_VERIFY_PARAM_set1_email(vpm, invalid_emails[i], 0)))
+ goto err;
+ }
for (size_t i = 0; multiname_ips[i] != NULL; i++) {
size_t l = strlen(multiname_ips[i]);
if (!TEST_true(X509_VERIFY_PARAM_set1_ip_asc(vpm, multiname_ips[i])))