Commit 4f10254a59 for openssl.org

commit 4f10254a59eeba9106ad2319e353275f06d44398
Author: dannyward630 <djwarding888@gmail.com>
Date:   Thu Jun 18 19:39:04 2026 +0200

    Document property string case handling

    Document that unquoted property string values are lowercased while quoted values preserve case, and add parser tests for the current matching behavior.

    Fixes #30114

    Reviewed-by: Paul Dale <paul.dale@oracle.com>
    Reviewed-by: Andrew Dinh <andrewd@openssl.org>
    MergeDate: Mon Aug 10 12:23:38 2026
    (Merged from https://github.com/openssl/openssl/pull/31597)

diff --git a/doc/man7/property.pod b/doc/man7/property.pod
index 7adf282ebf..4da7f2a25e 100644
--- a/doc/man7/property.pod
+++ b/doc/man7/property.pod
@@ -105,6 +105,12 @@ The quotes are not included in the body of the string.

 =back

+String values in property definitions and queries are matched case-sensitively.
+An unquoted string value is converted to lowercase when it is parsed, while a
+quoted string value retains its case.  For example, C<foo=bar> matches
+C<foo='bar'>, and C<foo=BAR> is treated as C<foo=bar>, but neither matches
+C<foo='BAR'>.
+
 =head2 Lookups

 When an algorithm is looked up, a property query is used to determine
diff --git a/test/property_test.c b/test/property_test.c
index ed868dbe8c..3980a3457a 100644
--- a/test/property_test.c
+++ b/test/property_test.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2019-2026 The OpenSSL Project Authors. All Rights Reserved.
  * Copyright (c) 2019, Oracle and/or its affiliates.  All rights reserved.
  *
  * Licensed under the Apache License 2.0 (the "License").  You may not use
@@ -157,6 +157,9 @@ static const struct {
     { "groan=blue", "?groan=yellow", 0 },
     { "groan=blue", "groan!=yellow", 1 },
     { "groan=blue", "?groan!=yellow", 1 },
+    { "sky='BLUE'", "sky='BLUE'", 1 },
+    { "sky=BLUE", "sky=blue", 1 },
+    { "sky='BLUE'", "sky=BLUE", -1 },
     { "today=monday, tomorrow=3", "today!=2", 1 },
     { "today=monday, tomorrow=3", "today!='monday'", -1 },
     { "today=monday, tomorrow=3", "tomorrow=3", 1 },