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 },