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])))