<p>Friendly Automation <strong>submitted</strong> this change.</p><p><a href="https://gerrit.asterisk.org/c/testsuite/+/18662">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Joshua Colp: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved
  Friendly Automation: Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pjsip: Add tests that verify wildcard cert-bearing servers<br><br>This patch adds two new tests that verify the use of wildcard certs<br>when found in the common name (CN), or subject alt name (SAN). Note,<br>certificates set to expire in a few thousand years.<br><br>Also, made it so SIPp's working directory is <test_dir>/sipp. This<br>makes is so the certificate files are easily found when using TLS.<br><br>ASTERISK-30072<br><br>Change-Id: I2d4cf66b642ccf97a6b275e1425c0cbfad5eb0ab<br>---<br>M lib/python/asterisk/sipp.py<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/ca.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/extensions.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/resolver_unbound.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/dns_zones/example.com<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/README.txt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.csr<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.csr<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cacert.pem<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cakey.pem<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/invite_recv.xml<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/test-config.yaml<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/ca.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/extensions.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/resolver_unbound.conf<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/dns_zones/example.com<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/README.txt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.csr<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.csr<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cacert.pem<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cakey.pem<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/invite_recv.xml<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/test-config.yaml<br>A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/tests.yaml<br>M tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml<br>45 files changed, 1,017 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/lib/python/asterisk/sipp.py b/lib/python/asterisk/sipp.py</span><br><span>index 498bf19..41a50c8 100644</span><br><span>--- a/lib/python/asterisk/sipp.py</span><br><span>+++ b/lib/python/asterisk/sipp.py</span><br><span>@@ -646,7 +646,7 @@</span><br><span>         sipp_args = [</span><br><span>             self.sipp, self.target,</span><br><span>             '-sf',</span><br><span style="color: hsl(0, 100%, 40%);">-            '%s/sipp/%s' % (self.test_dir, self.scenario['scenario']),</span><br><span style="color: hsl(120, 100%, 40%);">+            '%s' % (self.scenario['scenario']),</span><br><span>             '-nostdin',</span><br><span>             '-skip_rlimit',</span><br><span>         ]</span><br><span>@@ -719,7 +719,7 @@</span><br><span>                              sipp_args[0],</span><br><span>                              sipp_args,</span><br><span>                              {"TERM": "vt100", },</span><br><span style="color: hsl(0, 100%, 40%);">-                             None,</span><br><span style="color: hsl(120, 100%, 40%);">+                             "{0}/sipp".format(self.test_dir),</span><br><span>                              None)</span><br><span>         return self._our_exit_deferred</span><br><span> </span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/ca.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/ca.crt</span><br><span>new file mode 120000</span><br><span>index 0000000..1d16722</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/ca.crt</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../../keys/ca.crt</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/extensions.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..ab109a1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..f7b8e9b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf</span><br><span>@@ -0,0 +1,10 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[log_mappings]</span><br><span style="color: hsl(120, 100%, 40%);">+type = log_mappings</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_error = 0,1</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_warning = 2</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_verbose = 3</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_debug = 4,5,6</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[startup]</span><br><span style="color: hsl(120, 100%, 40%);">+type = startup</span><br><span style="color: hsl(120, 100%, 40%);">+log_level = 3</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjsip.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..1389f8d</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,24 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[global]</span><br><span style="color: hsl(120, 100%, 40%);">+type=global</span><br><span style="color: hsl(120, 100%, 40%);">+debug=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-tls]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=tls</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+method=tlsv1_2</span><br><span style="color: hsl(120, 100%, 40%);">+priv_key_file=<<astetcdir>>/uac.key</span><br><span style="color: hsl(120, 100%, 40%);">+cert_file=<<astetcdir>>/uac.crt</span><br><span style="color: hsl(120, 100%, 40%);">+ca_list_file=<<astetcdir>>/ca.crt</span><br><span style="color: hsl(120, 100%, 40%);">+verify_server=yes</span><br><span style="color: hsl(120, 100%, 40%);">+allow_wildcard_certs=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uas]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sips:uas.example.com:5062\;transport=tls</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uas]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+aors=uas</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/resolver_unbound.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/resolver_unbound.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..38ef153</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/resolver_unbound.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+nameserver = 127.0.0.1@10053</span><br><span style="color: hsl(120, 100%, 40%);">+resolv =</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.crt</span><br><span>new file mode 120000</span><br><span>index 0000000..9ada8f1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.crt</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../../keys/uac.crt</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.key</span><br><span>new file mode 120000</span><br><span>index 0000000..f141b2b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.key</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../../keys/uac.key</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/dns_zones/example.com b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/dns_zones/example.com</span><br><span>new file mode 100644</span><br><span>index 0000000..79a9c6e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/dns_zones/example.com</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+zone = [</span><br><span style="color: hsl(120, 100%, 40%);">+    SOA(</span><br><span style="color: hsl(120, 100%, 40%);">+        # For whom we are the authority</span><br><span style="color: hsl(120, 100%, 40%);">+        'example.com',</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # This nameserver's name</span><br><span style="color: hsl(120, 100%, 40%);">+        mname = "ns1.example.com",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Mailbox of individual who handles this</span><br><span style="color: hsl(120, 100%, 40%);">+        rname = "root.example.com",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Unique serial identifying this SOA data</span><br><span style="color: hsl(120, 100%, 40%);">+        serial = 2003010601,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Time interval before zone should be refreshed</span><br><span style="color: hsl(120, 100%, 40%);">+        refresh = "1H",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Interval before failed refresh should be retried</span><br><span style="color: hsl(120, 100%, 40%);">+        retry = "1H",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Upper limit on time interval before expiry</span><br><span style="color: hsl(120, 100%, 40%);">+        expire = "1H",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Minimum TTL</span><br><span style="color: hsl(120, 100%, 40%);">+        minimum = "1H"</span><br><span style="color: hsl(120, 100%, 40%);">+    ),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    A('uas.example.com', '127.0.0.1'),</span><br><span style="color: hsl(120, 100%, 40%);">+]</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/README.txt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/README.txt</span><br><span>new file mode 100644</span><br><span>index 0000000..efda3af</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/README.txt</span><br><span>@@ -0,0 +1,16 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# certs generated using the following commands:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create CA</span><br><span style="color: hsl(120, 100%, 40%);">+openssl req -x509 -days 999999 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create server key and signing request</span><br><span style="color: hsl(120, 100%, 40%);">+openssl req -newkey rsa:4096 -nodes -keyout uas.key -out uas.csr -subj="/C=US/CN=*.example.com"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create server certificate</span><br><span style="color: hsl(120, 100%, 40%);">+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uas.csr -set_serial 01 -req -out uas.crt</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create client key and signing request</span><br><span style="color: hsl(120, 100%, 40%);">+openssl req -newkey rsa:4096 -nodes -keyout uac.key -out uac.csr -subj="/C=US/CN=uac.example.com"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create server certificate</span><br><span style="color: hsl(120, 100%, 40%);">+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uac.csr -set_serial 01 -req -out uac.crt</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt</span><br><span>new file mode 100644</span><br><span>index 0000000..d8e1623</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIFqTCCA5GgAwIBAgIUPbF8KgcAQ7eE5SZCoVRwJjBJz50wDQYJKoZIhvcNAQEL</span><br><span style="color: hsl(120, 100%, 40%);">+BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM</span><br><span style="color: hsl(120, 100%, 40%);">+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJp</span><br><span style="color: hsl(120, 100%, 40%);">+dmF0ZSBDQTAgFw0yMjA1MjYyMTE4MDNaGA80NzYwMDQyMTIxMTgwM1owYzELMAkG</span><br><span style="color: hsl(120, 100%, 40%);">+A1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0</span><br><span style="color: hsl(120, 100%, 40%);">+IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTCC</span><br><span style="color: hsl(120, 100%, 40%);">+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALqF1vN99YnC3hGgWh6AnMBY</span><br><span style="color: hsl(120, 100%, 40%);">+x88FcBeT/ocdw6NRzsVgPd4V/JP9lpKsyGznbV62rjMeEY/YzkmmzBztZlB8NRwh</span><br><span style="color: hsl(120, 100%, 40%);">+7L6J3fVtoPH5BPQxOq7MvNeABWVZnPYhTUw45fDgb9fn/B0klF+E6qjeGMSYr5Vr</span><br><span style="color: hsl(120, 100%, 40%);">+pCTEpqGzA5QveXezzJXq3K2wb2/ygED+H58L5V4NfDeTZNYPlqyvfIskRbjZ/QbR</span><br><span style="color: hsl(120, 100%, 40%);">+8xcis78CCmQZ4WNoNyMg2tT1NZhcjwz79KY2dEWnvDUuCrGGxjjUr9iucrGAzNCF</span><br><span style="color: hsl(120, 100%, 40%);">+f5fCuz6agDQzXA61Pc3aVDM8vf0sXu/FRA7lVg1NzeMDJqDupFxdK1U4DfqtYPBe</span><br><span style="color: hsl(120, 100%, 40%);">+ojBH9qeOm+WEto/Em2dYZ5ocFG+TciTFI+qOXzDSL76lSDVExgoKPXjJg8+LC/a0</span><br><span style="color: hsl(120, 100%, 40%);">+xUOo9Bhfnd5PM3ard/BcnXMp9oPpc8FWXJE2dfkwyWMcx6GNXdN/Ea82EYbUtkYj</span><br><span style="color: hsl(120, 100%, 40%);">+SVCk3ZiQLaZSbGNE1UxYyxmtcTruMhVC/Dgic3ycyB5MEfAfL0EhVsdltk5TTzND</span><br><span style="color: hsl(120, 100%, 40%);">+t40c/cM+7EqJL0ohBqT222WJjeqCgP4Fusaek1Uw+DYfEe/WuT3g2oNn44XxnxkB</span><br><span style="color: hsl(120, 100%, 40%);">+KHpWj37JjUTc6obvYKWIspcv73P8WnQpI3Pl+j3ywmRSryn4OzXU5H2nPCH+sJ7H</span><br><span style="color: hsl(120, 100%, 40%);">+TiVMqu9ZpeKtMiGskXkBAgMBAAGjUzBRMB0GA1UdDgQWBBTgac3DMlhShY4nmPyW</span><br><span style="color: hsl(120, 100%, 40%);">+FJTEbHeWTzAfBgNVHSMEGDAWgBTgac3DMlhShY4nmPyWFJTEbHeWTzAPBgNVHRMB</span><br><span style="color: hsl(120, 100%, 40%);">+Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCeU36NutIrWJtZVsABXj4uXlzn</span><br><span style="color: hsl(120, 100%, 40%);">+6XNAFlSRAP7RvAnYEMpaiD3xI4GV78K27vMvIwEZYszWS0Cfu/JMfr21lJ5Lm1qv</span><br><span style="color: hsl(120, 100%, 40%);">+yhhtsYvFP7rqRUbjHp26LwVGzuAAwl52OyUxyAasNRoSY+pyRbQoo87xn4wlxf2j</span><br><span style="color: hsl(120, 100%, 40%);">+IHmyt06ToNQ+FKsLKgSHH1EgqaH+D/wS8CESNXcd4YHDZQ5EG7sXEwxmJuRMbW+R</span><br><span style="color: hsl(120, 100%, 40%);">+RIsNBaD6eM8a/CWd8nrhJnYDNRippXwQruqSw6/1rzVYSC5tvhGD7ExlB3r3WdqJ</span><br><span style="color: hsl(120, 100%, 40%);">+MO1imnZlrMAKhkqKTRB49YW5rpRqUJc9qzs0QlS4aZac+H0IFADcpPFIxTO32jaf</span><br><span style="color: hsl(120, 100%, 40%);">+j40zn7tRPtH1gtaXfVe/mUSXRYTRhkOILANpNneCtssrIYDbTT2lquIUV9yE15j1</span><br><span style="color: hsl(120, 100%, 40%);">+YwEIxNjKgkbxT7xOtRR8QUQ8MROPk6mvmBT65BhgKc4M1fqnMlERxJEDyAolgzNV</span><br><span style="color: hsl(120, 100%, 40%);">+QY/3JzGch9KSl0qcdIBdxX6yDTeZPutA58zvNcJQJeHqf05r5uuOf/SRQvs6GHOT</span><br><span style="color: hsl(120, 100%, 40%);">+tb8s9VH4G0/ivkShbT9M6q8lrM5qqnlaRYYf84isViIw/aKDkKbxO4CiiOaf7R7B</span><br><span style="color: hsl(120, 100%, 40%);">+zG+Fir5XZJMBcXyWM90xj8ZHVMKPWvz+u9uolkigyXTaBhYU0c2Z2D+KIyoguyYa</span><br><span style="color: hsl(120, 100%, 40%);">+7TmhpJHLNG6/R6TQZg==</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.key</span><br><span>new file mode 100644</span><br><span>index 0000000..4861a06</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.key</span><br><span>@@ -0,0 +1,52 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PRIVATE KEY-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC6hdbzffWJwt4R</span><br><span style="color: hsl(120, 100%, 40%);">+oFoegJzAWMfPBXAXk/6HHcOjUc7FYD3eFfyT/ZaSrMhs521etq4zHhGP2M5Jpswc</span><br><span style="color: hsl(120, 100%, 40%);">+7WZQfDUcIey+id31baDx+QT0MTquzLzXgAVlWZz2IU1MOOXw4G/X5/wdJJRfhOqo</span><br><span style="color: hsl(120, 100%, 40%);">+3hjEmK+Va6QkxKahswOUL3l3s8yV6tytsG9v8oBA/h+fC+VeDXw3k2TWD5asr3yL</span><br><span style="color: hsl(120, 100%, 40%);">+JEW42f0G0fMXIrO/AgpkGeFjaDcjINrU9TWYXI8M+/SmNnRFp7w1LgqxhsY41K/Y</span><br><span style="color: hsl(120, 100%, 40%);">+rnKxgMzQhX+Xwrs+moA0M1wOtT3N2lQzPL39LF7vxUQO5VYNTc3jAyag7qRcXStV</span><br><span style="color: hsl(120, 100%, 40%);">+OA36rWDwXqIwR/anjpvlhLaPxJtnWGeaHBRvk3IkxSPqjl8w0i++pUg1RMYKCj14</span><br><span style="color: hsl(120, 100%, 40%);">+yYPPiwv2tMVDqPQYX53eTzN2q3fwXJ1zKfaD6XPBVlyRNnX5MMljHMehjV3TfxGv</span><br><span style="color: hsl(120, 100%, 40%);">+NhGG1LZGI0lQpN2YkC2mUmxjRNVMWMsZrXE67jIVQvw4InN8nMgeTBHwHy9BIVbH</span><br><span style="color: hsl(120, 100%, 40%);">+ZbZOU08zQ7eNHP3DPuxKiS9KIQak9ttliY3qgoD+BbrGnpNVMPg2HxHv1rk94NqD</span><br><span style="color: hsl(120, 100%, 40%);">+Z+OF8Z8ZASh6Vo9+yY1E3OqG72CliLKXL+9z/Fp0KSNz5fo98sJkUq8p+Ds11OR9</span><br><span style="color: hsl(120, 100%, 40%);">+pzwh/rCex04lTKrvWaXirTIhrJF5AQIDAQABAoICAFm9SQTPZlIIcmVSm+kvAbu9</span><br><span style="color: hsl(120, 100%, 40%);">+OyzMNfjyGDSTymuKUYw+2KVAOMxO5qHdBXT4B3PZOoiXf+WQbveai3ujcGVqzPaj</span><br><span style="color: hsl(120, 100%, 40%);">+D89Ab4zEWPnyUELYaJ5vHLAmBPKVIeJ9dT4l5eN1Z/odv/uZfNVUEr56VLpJp7ih</span><br><span style="color: hsl(120, 100%, 40%);">+GFEkV/NWOHOUP8GqvNSoMdJTH9phdvlOCpKv24PbwxbOEGa5C0o8CBS9t9nO72DX</span><br><span style="color: hsl(120, 100%, 40%);">+pDhOVuKgLbWpifoUyupYxVBORaHvblfV5QgPDPPyVqfTZguxhy8SjSQYElB6YpA0</span><br><span style="color: hsl(120, 100%, 40%);">+moW+h+3/0YzL5Q+ifYDL+VTJdbMYJPkBFNSB3Fv8QgFlo7Er/+H8ZXvTw04HGqrY</span><br><span style="color: hsl(120, 100%, 40%);">+HkBpLft7E50S3fzVkY5+LZl9MiLuwuyEwVGvTRbqIuapxgy+JsvV6se2ElDqUSZb</span><br><span style="color: hsl(120, 100%, 40%);">+5w5guJ72+fYe6pbAzJlB343zml/2kPwz3Im5z4B/Ikhv71MnH6e17Q/JtiRPhEuq</span><br><span style="color: hsl(120, 100%, 40%);">+VNYLn455QlBdBB8S2nkZA89XJNgedEu+1ZHybtgr/alv9I0f4m67VBJxS+3bL+wi</span><br><span style="color: hsl(120, 100%, 40%);">+zbGegjeQragbdOVFxKVzwyK/TCIsQeNl/D5LQoqRhjI8tNRkdQXfr1omrN9+oUqQ</span><br><span style="color: hsl(120, 100%, 40%);">+m92DGZ1y52Eg5s9vFmHBFzIM8iwjnZ4cJYg/9ass6bSKept/ekTZe28b9y+xgJAi</span><br><span style="color: hsl(120, 100%, 40%);">+PpbzewEBPRcyxTcVxkQdAoIBAQDuSc6cATsh7T0D0xGFt7+FsBFdUgo9pqlBBY2O</span><br><span style="color: hsl(120, 100%, 40%);">+aBV5lpZzN8tWpciI2ji9TwwAGv0CzmtkHcaiSKnC4lr3fYlVrJKl+Laxtmor2HPw</span><br><span style="color: hsl(120, 100%, 40%);">+e19a6LFGyVM9Nz4HFMf7TpjG0xczZOTtx0CfyTLhnfo/hnYs3pBhmzwpPdaXwAKI</span><br><span style="color: hsl(120, 100%, 40%);">+WAAbnPpmIQwgnHZ/UjJ0q5aLmDb3CRlCCugoZm1C+1xsdtqV0oA7jevn5ZEo6Ks7</span><br><span style="color: hsl(120, 100%, 40%);">+pUM/ZAhI5GerLU9dcyAGxtvSKQOmdaSNfN6pI5d+7N+lsSJK44RtBJwa2SivwRQJ</span><br><span style="color: hsl(120, 100%, 40%);">+qL8n9qkJgset3mf+CNjakgc3G/cKpPTVCGnxCpj2ZTel/EmLAoIBAQDIYweD0LAW</span><br><span style="color: hsl(120, 100%, 40%);">+d0TrjCCIHpMY9B7sgTtUCtUtPyb+0oNEcsvgiys1lcMejuzeqpxz6D3xaSqEH+/P</span><br><span style="color: hsl(120, 100%, 40%);">+wWPbxYuexs5H2H9BwxrV9oZB6shJ/ONSzGBV7zZE5CfVTSVEw73aw+x6X7Z2iVDY</span><br><span style="color: hsl(120, 100%, 40%);">+MxMETNSSwKxlOHAadnswxV02I/fEh+Lg2BZqaRufSuBo83oY4PXuGmqOxX2nO2Pr</span><br><span style="color: hsl(120, 100%, 40%);">+EXjhx2ueDnYXqq/YgLvOSLYz1bvg7hJM5SKukqc2/bNR8Ozf0RmE/8esLWPsyYSC</span><br><span style="color: hsl(120, 100%, 40%);">+e8hFbm6DNc1W9C0KmzQQzuw5WkjjU2C29ku4o0lr2vI7C0f87fMe8GDiUaxQWwNh</span><br><span style="color: hsl(120, 100%, 40%);">+hquW9FMu2aEjAoIBAFht+Ye5iTlI8ki2Dp2iGChDs93+8R/59nvT1LmRdM6/jKvL</span><br><span style="color: hsl(120, 100%, 40%);">+e+F2+pmW6lGOwTRUz6o38nCgADP/ZUiWeg24f7vUpEOFrj77JCGLXVNUZYm2KvvL</span><br><span style="color: hsl(120, 100%, 40%);">+AOIJ2zIDi0d+3oGCmuyOt8pqFFh38TL7ToA+pSJ3ofsnAceIVFfSgN4aUkftFJvM</span><br><span style="color: hsl(120, 100%, 40%);">+DdUYW31agrD7cI3zegppTP9OTuOXR1sBL0ZtQScyjDYNsAtKDXmyBsHGzdL7i3uJ</span><br><span style="color: hsl(120, 100%, 40%);">+j9NdqENU0wDQ0YkHgXxH0j5Tpcn9FF6dB05VExXZoy5V9JyeFFRNAeOnxPDOv+Jw</span><br><span style="color: hsl(120, 100%, 40%);">+ryueCteibt+GK7lO3noLx3Q7gB1cwnFGFMW7f4sCggEANBFvUXP3XU8ObHoTterj</span><br><span style="color: hsl(120, 100%, 40%);">+4/cC1gdaaCMMc15Wfp4ql62Qhj8DMkBA2/7dU5pXXtK4zbK65mv5/yzMCr4Q4mfc</span><br><span style="color: hsl(120, 100%, 40%);">+D9UUc/0DSxdsmVItSvRYCRqr6YhnvIzgQM9z4KNQALkqCD44hiJ2DEdxKIviLGO+</span><br><span style="color: hsl(120, 100%, 40%);">+J+r7ThT9O5X8+2VrKvj4Hd5oLKw1DjYBi6PAVRiXLpBUodZ1KPAIrXrzww7zSrWN</span><br><span style="color: hsl(120, 100%, 40%);">+P+cNHB+PLTG9jkh6Mh8KSEq9sUjQBDz1zFPi6OFHVUS1GGsO7OcL9G+/gTMJqjRf</span><br><span style="color: hsl(120, 100%, 40%);">+r7lwvrHHXJq3zMtF5zOyDLiAwnBDUrAogukSgok9xAtH0WbRdGvBvCSnD2la9/B6</span><br><span style="color: hsl(120, 100%, 40%);">+qwKCAQAekkmEbb+Rm+x0dVZ0Pp9xM4X8DfdrQdFylCUqGx1kp0+mBKQ8StpWfIst</span><br><span style="color: hsl(120, 100%, 40%);">+KAP2gUC5UH5fJgCoHdTaTK719zxFkLYNfePJ7sn1bOJqsDfZWtoMdXS+89913b1m</span><br><span style="color: hsl(120, 100%, 40%);">+JZMbT9weJxlB1qXKGV5O/sNJEA76iLTdHdyJIAikj730lOnnzAZAISDesY2l/hvA</span><br><span style="color: hsl(120, 100%, 40%);">+OytVUJ3cT0ng2CqJNJHu1nArV49+vOohNTDWqdD46otxpFLhPGl/sSl8A36qkLHn</span><br><span style="color: hsl(120, 100%, 40%);">+uwd/GEvfyyPEG+QmKXUOKY7ar5sSeFhJb1oabPF8vW4UvCbkkUpnStBzS4//7Em9</span><br><span style="color: hsl(120, 100%, 40%);">++KIlKmq1Cj0jtPyslfjHh8I0R2Ul</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PRIVATE KEY-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt</span><br><span>new file mode 100644</span><br><span>index 0000000..8d6d6e8</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIFADCCAugCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV</span><br><span style="color: hsl(120, 100%, 40%);">+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0</span><br><span style="color: hsl(120, 100%, 40%);">+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAgFw0yMjA1MjYyMTE4MjRa</span><br><span style="color: hsl(120, 100%, 40%);">+GA80NzYwMDQyMTIxMTgyNFowJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5l</span><br><span style="color: hsl(120, 100%, 40%);">+eGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANIl+uxl</span><br><span style="color: hsl(120, 100%, 40%);">+HWFPaQHWpllg8LWgqDLorNPhc0lgvzklbpwqvSFnyLHEeJwMGt1FwF/sRDzwgVdM</span><br><span style="color: hsl(120, 100%, 40%);">+dfmXaxI8A8z9q0tLedNFPstFPoAzdIdmdYH5xifts4qpkqnT841q0U/fYsOJhz8z</span><br><span style="color: hsl(120, 100%, 40%);">+SsepcR4XPjQP7HLqa4t28iyfo91sFZvLbpe1FJ088HRkkeW3bUOvCO15yAK63f6M</span><br><span style="color: hsl(120, 100%, 40%);">+7bKOt+HoY6J8ztGwsT8GTIH8ypdkYO0mQyA97l5n2z57OmY1HV/30zzYqsfW5JO0</span><br><span style="color: hsl(120, 100%, 40%);">+ZPPmacSHyNBAjVaYhZ7+ezcvHpbTRmWYLQE2BKT7G+GLOLMVHJXhswX+l3gGxv+i</span><br><span style="color: hsl(120, 100%, 40%);">+BJ9si8BJbGS+plNZuEHysgvhPzNyLsuDbBqQ01cRuN7aHqYvqXoCZkdDB8lbzNg1</span><br><span style="color: hsl(120, 100%, 40%);">+cjHZy2F1n4FKOEsgYirHfwJRDbxJc7VuMF/Q36SWU6VbnN41yrEh5pkTqTefR97H</span><br><span style="color: hsl(120, 100%, 40%);">+5cQcMWeV+KHpB34A5M5dHSTTXiTB7cmeKahulN7cpBhvLq5PTRC+EAwo38A4tOed</span><br><span style="color: hsl(120, 100%, 40%);">+TD2Tyvba3apiv2qqtq8pSp9BxOxRTb4TKvDC1MDsb2RzK9YgjrmPrs3+eiZM2IX8</span><br><span style="color: hsl(120, 100%, 40%);">+wWXQJ5nDIe5v9gRk7TXbAPy9dYaYGMeThMbyQw8BVOK3rmE4DwCHgI6EQU1peX2A</span><br><span style="color: hsl(120, 100%, 40%);">+CjtDEDnfmma9C97jf9tDbBpK60JjrpVY7W1TAgMBAAEwDQYJKoZIhvcNAQELBQAD</span><br><span style="color: hsl(120, 100%, 40%);">+ggIBAAmokehtxN6WkeaAFiU+BslN+ZBD99yGC+X4qnhnX2kR8jK50fjX74y14oyh</span><br><span style="color: hsl(120, 100%, 40%);">+FPWBC6iZWlpiaoSXOmyKBPfMd+Bz1g4AtVgag27m96A0onOHLABDMvrOFPqqKzjg</span><br><span style="color: hsl(120, 100%, 40%);">+uM5Yjh3VoyEGBN9KKwytKZI8gsb3/UZJGEBDHyJLX8DlTuV6GbR/9567URi+NOZ0</span><br><span style="color: hsl(120, 100%, 40%);">+da9oh4nVa4m70BNQz4qPev2dYlTIH7ZlrYRWkdx/3zf7bweuGfDIpl9Lt91kkahp</span><br><span style="color: hsl(120, 100%, 40%);">++OyMXv+mAEJ6WMyNCBl+JoplSeX7UftwHM8C3aGwTNG6y5b3LrR2HqyFcr+f18PD</span><br><span style="color: hsl(120, 100%, 40%);">+tB4UaYJu4KGKaWsx+aOd1H/tGPbXqaI79WEHXX9wfx7cBrbjtTruUT89Tu74nRg5</span><br><span style="color: hsl(120, 100%, 40%);">+ftyjRb1/XKMOcAkrHWbIwbbGBXNcELjiRW3Cf9LeWM1formFpidML7u62DxqLLR4</span><br><span style="color: hsl(120, 100%, 40%);">+m0pLr1Uv6CoCLsH29YdZ9Dxi+MtXqNrZRo5IXIeiUZC21qZt2OaZqoljABllU8Rg</span><br><span style="color: hsl(120, 100%, 40%);">+GJ0kWlIY6v3wQTYhHLDViLNk52mKUL9Epn/hXojDlIZIZ4dYXvnXTf1IpRa/xBPw</span><br><span style="color: hsl(120, 100%, 40%);">+msSyJMJ5Z4neS/VmpCKGBz3Oz/UUqz5nhrh8OhZZrTpwph+GWFR6PA8fj3s8sCIs</span><br><span style="color: hsl(120, 100%, 40%);">+2r2K+sW8lrrHIDn92qOEp0GEvPABFAY2IY8cyk2kNKTMtSOd</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.csr b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.csr</span><br><span>new file mode 100644</span><br><span>index 0000000..963c63b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.csr</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE REQUEST-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIEbDCCAlQCAQAwJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5leGFtcGxl</span><br><span style="color: hsl(120, 100%, 40%);">+LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANIl+uxlHWFPaQHW</span><br><span style="color: hsl(120, 100%, 40%);">+pllg8LWgqDLorNPhc0lgvzklbpwqvSFnyLHEeJwMGt1FwF/sRDzwgVdMdfmXaxI8</span><br><span style="color: hsl(120, 100%, 40%);">+A8z9q0tLedNFPstFPoAzdIdmdYH5xifts4qpkqnT841q0U/fYsOJhz8zSsepcR4X</span><br><span style="color: hsl(120, 100%, 40%);">+PjQP7HLqa4t28iyfo91sFZvLbpe1FJ088HRkkeW3bUOvCO15yAK63f6M7bKOt+Ho</span><br><span style="color: hsl(120, 100%, 40%);">+Y6J8ztGwsT8GTIH8ypdkYO0mQyA97l5n2z57OmY1HV/30zzYqsfW5JO0ZPPmacSH</span><br><span style="color: hsl(120, 100%, 40%);">+yNBAjVaYhZ7+ezcvHpbTRmWYLQE2BKT7G+GLOLMVHJXhswX+l3gGxv+iBJ9si8BJ</span><br><span style="color: hsl(120, 100%, 40%);">+bGS+plNZuEHysgvhPzNyLsuDbBqQ01cRuN7aHqYvqXoCZkdDB8lbzNg1cjHZy2F1</span><br><span style="color: hsl(120, 100%, 40%);">+n4FKOEsgYirHfwJRDbxJc7VuMF/Q36SWU6VbnN41yrEh5pkTqTefR97H5cQcMWeV</span><br><span style="color: hsl(120, 100%, 40%);">++KHpB34A5M5dHSTTXiTB7cmeKahulN7cpBhvLq5PTRC+EAwo38A4tOedTD2Tyvba</span><br><span style="color: hsl(120, 100%, 40%);">+3apiv2qqtq8pSp9BxOxRTb4TKvDC1MDsb2RzK9YgjrmPrs3+eiZM2IX8wWXQJ5nD</span><br><span style="color: hsl(120, 100%, 40%);">+Ie5v9gRk7TXbAPy9dYaYGMeThMbyQw8BVOK3rmE4DwCHgI6EQU1peX2ACjtDEDnf</span><br><span style="color: hsl(120, 100%, 40%);">+mma9C97jf9tDbBpK60JjrpVY7W1TAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA</span><br><span style="color: hsl(120, 100%, 40%);">+xxAZYLUqH5umdYBQY3Wy4q1LAhUWl+vVK5Y2RPatckkwkme8VA3IRmRibY4w1/QP</span><br><span style="color: hsl(120, 100%, 40%);">+/NEgtXHFI05RaCafVWf8u31pKpYRn7i+306gLF67MJXS01VdHka7JeLaCe+R/R7A</span><br><span style="color: hsl(120, 100%, 40%);">+TKt3rjzPIQAPeJme4wR81E2ajg2OBx1NrX4/QubVE4NQQHZFNwJtWGsDLYccNb/5</span><br><span style="color: hsl(120, 100%, 40%);">+wddfybE1VP8L96UGo74yUQeQx2cpKv9JsolWewbW8s9u2fbr0EQBgpV+AA1Yd0aa</span><br><span style="color: hsl(120, 100%, 40%);">+ob8sj6njdu2ZD1ZHX5b4xr9Z2iSyy+wtwJjjalznMs4mGCxxTFR6s/BeJGxieUb+</span><br><span style="color: hsl(120, 100%, 40%);">+nSk+JN7WxGjgrnhFmNWZXHdyM4aD+9+IEAvj+Im/WW9bco6DMOLWG5Uz4OMoE/jF</span><br><span style="color: hsl(120, 100%, 40%);">+gnExP4VwI9GXAFaxlKTOEVvKGyF6eHsjTYqn849LOyDXmGj3gFW+pDYfJJv5MAlC</span><br><span style="color: hsl(120, 100%, 40%);">+cArUQwUAasizZMqKzx9q1V1S7Fpo1CF1zMNwpuGH0GGy3uTsxtUU5+mb1sWDwgQv</span><br><span style="color: hsl(120, 100%, 40%);">+4ZSGAj3AORXbB4C1zeS1Ty7Axggruq2CqpCl/2nmo9JPFrcRm708g0eb0JyHZnYp</span><br><span style="color: hsl(120, 100%, 40%);">+wGL0VfCSrYm3I5ay+8BkE5SRqZhkniAEguUmA/aXxdUBhsv8gxdfmyeUPmV6ll+H</span><br><span style="color: hsl(120, 100%, 40%);">+4dJsMSps1akswGLmRCULrdHlb3zDMKXUv1ZF9/y2zTY=</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE REQUEST-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.key</span><br><span>new file mode 100644</span><br><span>index 0000000..a9b9803</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.key</span><br><span>@@ -0,0 +1,52 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PRIVATE KEY-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDSJfrsZR1hT2kB</span><br><span style="color: hsl(120, 100%, 40%);">+1qZZYPC1oKgy6KzT4XNJYL85JW6cKr0hZ8ixxHicDBrdRcBf7EQ88IFXTHX5l2sS</span><br><span style="color: hsl(120, 100%, 40%);">+PAPM/atLS3nTRT7LRT6AM3SHZnWB+cYn7bOKqZKp0/ONatFP32LDiYc/M0rHqXEe</span><br><span style="color: hsl(120, 100%, 40%);">+Fz40D+xy6muLdvIsn6PdbBWby26XtRSdPPB0ZJHlt21DrwjtecgCut3+jO2yjrfh</span><br><span style="color: hsl(120, 100%, 40%);">+6GOifM7RsLE/BkyB/MqXZGDtJkMgPe5eZ9s+ezpmNR1f99M82KrH1uSTtGTz5mnE</span><br><span style="color: hsl(120, 100%, 40%);">+h8jQQI1WmIWe/ns3Lx6W00ZlmC0BNgSk+xvhizizFRyV4bMF/pd4Bsb/ogSfbIvA</span><br><span style="color: hsl(120, 100%, 40%);">+SWxkvqZTWbhB8rIL4T8zci7Lg2wakNNXEbje2h6mL6l6AmZHQwfJW8zYNXIx2cth</span><br><span style="color: hsl(120, 100%, 40%);">+dZ+BSjhLIGIqx38CUQ28SXO1bjBf0N+kllOlW5zeNcqxIeaZE6k3n0fex+XEHDFn</span><br><span style="color: hsl(120, 100%, 40%);">+lfih6Qd+AOTOXR0k014kwe3JnimobpTe3KQYby6uT00QvhAMKN/AOLTnnUw9k8r2</span><br><span style="color: hsl(120, 100%, 40%);">+2t2qYr9qqravKUqfQcTsUU2+EyrwwtTA7G9kcyvWII65j67N/nomTNiF/MFl0CeZ</span><br><span style="color: hsl(120, 100%, 40%);">+wyHub/YEZO012wD8vXWGmBjHk4TG8kMPAVTit65hOA8Ah4COhEFNaXl9gAo7QxA5</span><br><span style="color: hsl(120, 100%, 40%);">+35pmvQve43/bQ2waSutCY66VWO1tUwIDAQABAoICAQC9+dPDTQ2oYM9+9/teJYK1</span><br><span style="color: hsl(120, 100%, 40%);">+z0z+6NUEnnVISovUL4C08PYVcus9uW2HNHI8wsfMb5yosotaziaAwl/rFhIhiNkH</span><br><span style="color: hsl(120, 100%, 40%);">+sm2pjpnbzPdZkiqwFPH51EFM61g57F5H5PHyUDR0zm9McdGwUsAxi35VQ5HaIuMQ</span><br><span style="color: hsl(120, 100%, 40%);">+Z9ddNuRrbs4GZ6WJN/j8cJj4JJUDw78ZOh8u5tddR5CG10PE0MY5e0fEk/8ub0HQ</span><br><span style="color: hsl(120, 100%, 40%);">+0rkJTrpvcIX9IqN0//gC97m74ouTCnea2j15+mIeSYjqK9xrotL4or3PCymBCjo7</span><br><span style="color: hsl(120, 100%, 40%);">+pJp3R3tAQfqXQtwLD+zvgVPliZSE6wUQ7+7tmCHtM2DfAtF3W5JuRQR5imbRFIDq</span><br><span style="color: hsl(120, 100%, 40%);">+iNo5Hb/ZslP/TbWS3+cMBBW0/hdLN+zhiD8ozdmlCDE9RPf70r9wcxlNFs6ltaPD</span><br><span style="color: hsl(120, 100%, 40%);">+41IGl8s/Wa1JYHgTmdJqCbJbSVU/a+JV6DBxJD8Y32nUGhAffDOveIip3+CcFpIM</span><br><span style="color: hsl(120, 100%, 40%);">+1++m2CV4sYAIjJ/JyTNtIJk8yPM5vlFP3RAyPlZTABiOFqfMScf9U11bLpFo/dug</span><br><span style="color: hsl(120, 100%, 40%);">+1u5DUkx0hDZEBHj62tTui3b+YWLi3mHRbCHnccxQAonmpb6iX4VrpPFL1dRNhV5y</span><br><span style="color: hsl(120, 100%, 40%);">+AlDN3rLFaAmxPNiYetmhoYC3e5PSFnNhptv4nm74djEtmjQvu0dnl2CMgUPAULYD</span><br><span style="color: hsl(120, 100%, 40%);">+/LIha2NrprWskzxOLVpuIQKCAQEA9RvZcjRzWXY3RzradeBtud6fH7f/3yh9xdjb</span><br><span style="color: hsl(120, 100%, 40%);">+Z/leWt1jyCD30XMMeVK7emWbSud4i328OyxobtAlTi3G4lCite/3rhDGMK1POBkK</span><br><span style="color: hsl(120, 100%, 40%);">+/EAkAXj7t7ogNYSowbh9PrBznXwTgZZ+r5PUYp0FOFqSIhXrYHTVYO9uvnx+pV8e</span><br><span style="color: hsl(120, 100%, 40%);">+ebX+6HDxlVaYfS0N/W0nvQ3qqrCpOgsMGF0vgjU7IIUbV5YGbWaY/4n1f9xxTB94</span><br><span style="color: hsl(120, 100%, 40%);">+hMx5SsZw72EPvgZBnx1xiwURYbRReNOyPPyODpS5MM5Bu1+JWDD/S0G5vVmXi77n</span><br><span style="color: hsl(120, 100%, 40%);">+f3D39zAeHkvusf2qRWSOB5L0EjxfqYkwIqPupHTF+72kHO0dWQKCAQEA23xzUl1L</span><br><span style="color: hsl(120, 100%, 40%);">+b1jXGpKYqlzLAy2LEZI2y1yBsmmuUYvK0P7TlEDt3m4cpWruzD25fXkR8r58R+wl</span><br><span style="color: hsl(120, 100%, 40%);">+YvEwxkHcdZGvc1MAZfkeRCdrwWxwS9RKDtUShM0kwuGl/IIMU8wS/XkHS+1uigIO</span><br><span style="color: hsl(120, 100%, 40%);">+QZ4+f6Te1Nm3Eylsws2IBfG0IC949TcSc8s0uFfFjm0faZbyeI7S7uNV5cFYLDYG</span><br><span style="color: hsl(120, 100%, 40%);">+dfIoSCfmC6rcJFZkLOApJOCWfJD6CqtKjXqmN6KnXXilMmAHVO7ZFyhw9IE3bp9H</span><br><span style="color: hsl(120, 100%, 40%);">+L5y92rRw98HWyuDx69Snh3cEnmI7FmzxanvRhdB8BzyK6YjGkMZ2X2QVV6XoutaJ</span><br><span style="color: hsl(120, 100%, 40%);">+nQmTI5acWJyuiwKCAQAeyai+l6gFjLvUzqeyNsaRmk0ShuI0/bkOqPamUMRxVW27</span><br><span style="color: hsl(120, 100%, 40%);">+LajzPihK9QFnlmuzNPAHVXvXUvSrNqn47/cTZl2JzOKnkqPSaXKR8VNX7BaZuMCl</span><br><span style="color: hsl(120, 100%, 40%);">+i1OQZWFtM+dHgJKFLZilpmmzVDZRTLfjJD1G2sn+C67hxjF669hcnV4Om7WxLL6r</span><br><span style="color: hsl(120, 100%, 40%);">+q3zr/ETNmHBtZtobJqWbDNgwF0RobpdGtnGAxu93vnNpZcLYlLAGh81zoNt7cQGu</span><br><span style="color: hsl(120, 100%, 40%);">+j9qSW+bSPbiNZc2RID07mBvDXVXarwO0BbRr/Mwbr8vhgBf8mMxYWVpqv53mBr1B</span><br><span style="color: hsl(120, 100%, 40%);">+wPfyk5JXtRHCEctmnv7FJN5O+5h2P9S+kkuS9pXBAoIBAAopNsWHYCilej/WrY6l</span><br><span style="color: hsl(120, 100%, 40%);">+gRiCkT+c/0Bm5fI2hkVsLVWDlpP0dY6ollbqHmgCK4YthrEwNFy4B/sOo21qOySO</span><br><span style="color: hsl(120, 100%, 40%);">+PAsgupH9+HK7SHfJ52D7UPpiztqrDJqhC6gm9R8kAXUOl1Hiig2Fjtdm1gnevhoo</span><br><span style="color: hsl(120, 100%, 40%);">+ghs2/bv++98ak3Yx/G2NwSLvM1+dYJ35W0zuGgeOxSEeESnzy3swfRgUv9ynTDUa</span><br><span style="color: hsl(120, 100%, 40%);">+Edr0zOpu7jiw1QarR4ga6famyO8mbo0bOrqcS3qZHB/AVYpcOQ67/PWtUfTACcLO</span><br><span style="color: hsl(120, 100%, 40%);">+jH0T8N80FxVkYyhZ79ZX8M03Mjn5ruQ+30d0d4zYQz6jSYGnQqDzsac9fDxXiqFn</span><br><span style="color: hsl(120, 100%, 40%);">+j4UCggEBAJ5kanD2KAi8FDrqanMdgPu55JeglhK4x7lN0d5dYZbCtYCllnZ1KXob</span><br><span style="color: hsl(120, 100%, 40%);">+RjGFGJljvvROX0nVfunPZch8NtIQ/2l0rXGmBMTeTcfVsUk0QXUYpzfFLlEcciVb</span><br><span style="color: hsl(120, 100%, 40%);">+iO0ICpY31PLxCr8Xwzjk7aS2pAP1v+rZYPS0oaMEaLEL+dS2bASjHQM6yvxuMuzP</span><br><span style="color: hsl(120, 100%, 40%);">+rhJXgmp8Edk1X9hT4ZJ0H7F14LsAPZBIgrbxNtdjpZv0SmjIJurKxCuz3R8l/3df</span><br><span style="color: hsl(120, 100%, 40%);">+F1WPsHQ4jDraRoSReZ+VqhHrG19+6cVBXkHVL+WtGv5i1FtStZ7WgnJ2f5ed+ChU</span><br><span style="color: hsl(120, 100%, 40%);">+Cl32RYPrI2C2WqnxPbr+j2NQDqGDiQU=</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PRIVATE KEY-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt</span><br><span>new file mode 100644</span><br><span>index 0000000..6de7487</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIE/jCCAuYCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV</span><br><span style="color: hsl(120, 100%, 40%);">+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0</span><br><span style="color: hsl(120, 100%, 40%);">+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAgFw0yMjA1MjYyMTE4MTRa</span><br><span style="color: hsl(120, 100%, 40%);">+GA80NzYwMDQyMTIxMTgxNFowJTELMAkGA1UEBhMCVVMxFjAUBgNVBAMMDSouZXhh</span><br><span style="color: hsl(120, 100%, 40%);">+bXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCg9g9zYtqp</span><br><span style="color: hsl(120, 100%, 40%);">+6AoOUMr4yti0T8RhjOAmXNC+vKtPoU/ZxdvoH75dzIrMKn2AXDkH7X9Dwa5rlX0W</span><br><span style="color: hsl(120, 100%, 40%);">+WDggF3p1BGAVX+wjde/NwJE0i/T5ix0zsLJsFYpfbIkOGTyoenw7lHqLHc6JzQL5</span><br><span style="color: hsl(120, 100%, 40%);">+DADvb0GaytElEbhRjAF4lpheXVuMb/sybT3wVAouzZZGR74djPvc72gGtbKsitZH</span><br><span style="color: hsl(120, 100%, 40%);">+BGDkyKXeSrLjmP4tQvAzczR7oAFTU7wJ94w2+Jtv8GG5osNm4AArt7TzFRYCMEx/</span><br><span style="color: hsl(120, 100%, 40%);">+UwV9GlV8cSelLI1yS1ixmBsd0UCXcoq8fT0S8RIJ88cmcPNCUBYRMRkD6zmvnEjJ</span><br><span style="color: hsl(120, 100%, 40%);">+2TXTZoBXVTAso8mqKnlZI9JtRENpJMdRt02gdl+8YbNrSdcKl8pcw2g75E8+Yyxc</span><br><span style="color: hsl(120, 100%, 40%);">+YaJSsC/ztTB/Kp2KUlm+dV9XTdSXTr49kyTOy6Ponf1UYk8k5ltSEknyx1zmQJX1</span><br><span style="color: hsl(120, 100%, 40%);">+P5yscxDixVeFcbuwh7kFDJZ5iQV+KjsElnDiEOlY/0Fxj/+594z/NZ+Drz59lGux</span><br><span style="color: hsl(120, 100%, 40%);">+eMtwLsQv4leP7rdibnQi1ZZM+82GX/fAt4wOut0j+qjF6N6s+b1lAIjVLBoqTIr3</span><br><span style="color: hsl(120, 100%, 40%);">+koGOaIg8h6uwz06INUInfCBpLzGW1SCFyOkAxfHoAKxibZQarDUU2Yf94f7YX+/v</span><br><span style="color: hsl(120, 100%, 40%);">+CpinfQQJycMulPDz1H09fL5Dt8/B3dTaZQIDAQABMA0GCSqGSIb3DQEBCwUAA4IC</span><br><span style="color: hsl(120, 100%, 40%);">+AQCbWS5hsUYTdjs/E5pMEWV++00Dk/dn08zMWrxlyuBiWd9W+f13lwlsH2605ahY</span><br><span style="color: hsl(120, 100%, 40%);">+BD8kkxm4CNZ5axbxQJWs8EokQIuJj5eVm1q1o+1CJv2Dj44Aef3gZ4dq7Vx/Ix8K</span><br><span style="color: hsl(120, 100%, 40%);">+MLexZgf2ciVSQV50WvgzG5/1Ghn9GyOMML+D7n8TZfsdxwqacZXgrMsoag+1DbSA</span><br><span>+++gTg3GXtCeeaeNEKgFUIUIX/n4GT6R8m7+GdksJojvvPed7aYhuzx8sp71uwLxs</span><br><span style="color: hsl(120, 100%, 40%);">+R1OYPKvbuj3Wa114xu9A306WtR2VuXq2+nK8oXpfzp4nAIZTYooj3YwvfkiR2eI7</span><br><span style="color: hsl(120, 100%, 40%);">+YyFDT+RlZHba8KFXOGFlkzjNN78X1oadHmlPYygxQTgDKurVdB2L4ru4v3+rn+7y</span><br><span style="color: hsl(120, 100%, 40%);">+vUFCs2rQ9hNaSHGS5bJH7rq+YKidMuJrOYRr2gyUfsUp4LfqX9XhQK/h3jyWCHKW</span><br><span style="color: hsl(120, 100%, 40%);">+auq5GGrpAQaxm2x0CckD+vWlvYtM4kiv/ljOxRzav2uH/I1y5UR7aJrQw2SFmDoP</span><br><span style="color: hsl(120, 100%, 40%);">+j6yxAoYWYZU4KD4waMQpWuz8cAFMfrXQuo4hNgTqT0AMncJmbQ0F43zyIBN4Z7sf</span><br><span style="color: hsl(120, 100%, 40%);">+0ZpRMknwK+EaZIMy5ntUvhejifOYm94ZERLlDBzca7zWvIL1IGiAJVK5frJGu5Wc</span><br><span style="color: hsl(120, 100%, 40%);">+emuZrs5MvQwwQ2DfkuI1/r9RStbNs1miXfzQpHYoC9F9/g==</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.csr b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.csr</span><br><span>new file mode 100644</span><br><span>index 0000000..28c7035</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.csr</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE REQUEST-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIEajCCAlICAQAwJTELMAkGA1UEBhMCVVMxFjAUBgNVBAMMDSouZXhhbXBsZS5j</span><br><span style="color: hsl(120, 100%, 40%);">+b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCg9g9zYtqp6AoOUMr4</span><br><span style="color: hsl(120, 100%, 40%);">+yti0T8RhjOAmXNC+vKtPoU/ZxdvoH75dzIrMKn2AXDkH7X9Dwa5rlX0WWDggF3p1</span><br><span style="color: hsl(120, 100%, 40%);">+BGAVX+wjde/NwJE0i/T5ix0zsLJsFYpfbIkOGTyoenw7lHqLHc6JzQL5DADvb0Ga</span><br><span style="color: hsl(120, 100%, 40%);">+ytElEbhRjAF4lpheXVuMb/sybT3wVAouzZZGR74djPvc72gGtbKsitZHBGDkyKXe</span><br><span style="color: hsl(120, 100%, 40%);">+SrLjmP4tQvAzczR7oAFTU7wJ94w2+Jtv8GG5osNm4AArt7TzFRYCMEx/UwV9GlV8</span><br><span style="color: hsl(120, 100%, 40%);">+cSelLI1yS1ixmBsd0UCXcoq8fT0S8RIJ88cmcPNCUBYRMRkD6zmvnEjJ2TXTZoBX</span><br><span style="color: hsl(120, 100%, 40%);">+VTAso8mqKnlZI9JtRENpJMdRt02gdl+8YbNrSdcKl8pcw2g75E8+YyxcYaJSsC/z</span><br><span style="color: hsl(120, 100%, 40%);">+tTB/Kp2KUlm+dV9XTdSXTr49kyTOy6Ponf1UYk8k5ltSEknyx1zmQJX1P5yscxDi</span><br><span style="color: hsl(120, 100%, 40%);">+xVeFcbuwh7kFDJZ5iQV+KjsElnDiEOlY/0Fxj/+594z/NZ+Drz59lGuxeMtwLsQv</span><br><span style="color: hsl(120, 100%, 40%);">+4leP7rdibnQi1ZZM+82GX/fAt4wOut0j+qjF6N6s+b1lAIjVLBoqTIr3koGOaIg8</span><br><span style="color: hsl(120, 100%, 40%);">+h6uwz06INUInfCBpLzGW1SCFyOkAxfHoAKxibZQarDUU2Yf94f7YX+/vCpinfQQJ</span><br><span style="color: hsl(120, 100%, 40%);">+ycMulPDz1H09fL5Dt8/B3dTaZQIDAQABoAAwDQYJKoZIhvcNAQELBQADggIBAIB/</span><br><span style="color: hsl(120, 100%, 40%);">+6C59KSk8zc9gYuG5nluZdagYd9sO4eva/P+AlONMy2W+QzBXRcuUMVdMLACRyDne</span><br><span style="color: hsl(120, 100%, 40%);">+ejI23A4R509M53bHuLeGgTgeja4K9ExLymx1Eh1aqalHyJpMYpWGaV1QJPCPWLkB</span><br><span style="color: hsl(120, 100%, 40%);">+dMdNjw32cLRl1MSHHRD/LhrrfEGzL2U6Cv/yo5VYnNBrsTzoaaNtxuESwqitcCs2</span><br><span style="color: hsl(120, 100%, 40%);">+Nxh69in21JWiI6JNpF+HJZezWGNzzL99+WfjUj70BvZq7/ZsTKky4bn7pXzSB/5L</span><br><span style="color: hsl(120, 100%, 40%);">+50leLTvSYqyl3D66n+L3h21QcRcMYPej6HHhMZqsT04rrQ82+qMwnTpGfy0LUIJl</span><br><span style="color: hsl(120, 100%, 40%);">+wZHAdAETEKNTBTSUJJUXaqIKTWyYcgsaZDR40/ajbiFoQrNXCCw6mBihHir3Ex6i</span><br><span style="color: hsl(120, 100%, 40%);">+KlsEheDuf3p+y++TDhKx1eJPL8oECnmiVHGrOXBxE5MtgcorQ3ayp+PZRYztNyjY</span><br><span style="color: hsl(120, 100%, 40%);">+BtJjWn3QP/10MAZp4nSlgcmt5dUQy7fM7FrQfOy4oyvUl948ieOB0IA+wUEEOwVR</span><br><span style="color: hsl(120, 100%, 40%);">+XwLqR3bJrzn5uHJEN+GAq2xr14Si1PXRFq7/2qTLcRU8zPTi/YGxjWzKJcqFb1cA</span><br><span style="color: hsl(120, 100%, 40%);">+55HrcyrT1yTwA53e3FAEMX5RB9DCynQsh22KZybeyK0vt5iQXTs0JUmgUi5t9j0G</span><br><span style="color: hsl(120, 100%, 40%);">+WwDBWnr5CLCrxYjuLVY1lK1L0eMUNZCdi7yUt3BV</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE REQUEST-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.key</span><br><span>new file mode 100644</span><br><span>index 0000000..f5d25e0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.key</span><br><span>@@ -0,0 +1,52 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PRIVATE KEY-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCg9g9zYtqp6AoO</span><br><span style="color: hsl(120, 100%, 40%);">+UMr4yti0T8RhjOAmXNC+vKtPoU/ZxdvoH75dzIrMKn2AXDkH7X9Dwa5rlX0WWDgg</span><br><span style="color: hsl(120, 100%, 40%);">+F3p1BGAVX+wjde/NwJE0i/T5ix0zsLJsFYpfbIkOGTyoenw7lHqLHc6JzQL5DADv</span><br><span style="color: hsl(120, 100%, 40%);">+b0GaytElEbhRjAF4lpheXVuMb/sybT3wVAouzZZGR74djPvc72gGtbKsitZHBGDk</span><br><span style="color: hsl(120, 100%, 40%);">+yKXeSrLjmP4tQvAzczR7oAFTU7wJ94w2+Jtv8GG5osNm4AArt7TzFRYCMEx/UwV9</span><br><span style="color: hsl(120, 100%, 40%);">+GlV8cSelLI1yS1ixmBsd0UCXcoq8fT0S8RIJ88cmcPNCUBYRMRkD6zmvnEjJ2TXT</span><br><span style="color: hsl(120, 100%, 40%);">+ZoBXVTAso8mqKnlZI9JtRENpJMdRt02gdl+8YbNrSdcKl8pcw2g75E8+YyxcYaJS</span><br><span style="color: hsl(120, 100%, 40%);">+sC/ztTB/Kp2KUlm+dV9XTdSXTr49kyTOy6Ponf1UYk8k5ltSEknyx1zmQJX1P5ys</span><br><span style="color: hsl(120, 100%, 40%);">+cxDixVeFcbuwh7kFDJZ5iQV+KjsElnDiEOlY/0Fxj/+594z/NZ+Drz59lGuxeMtw</span><br><span style="color: hsl(120, 100%, 40%);">+LsQv4leP7rdibnQi1ZZM+82GX/fAt4wOut0j+qjF6N6s+b1lAIjVLBoqTIr3koGO</span><br><span style="color: hsl(120, 100%, 40%);">+aIg8h6uwz06INUInfCBpLzGW1SCFyOkAxfHoAKxibZQarDUU2Yf94f7YX+/vCpin</span><br><span style="color: hsl(120, 100%, 40%);">+fQQJycMulPDz1H09fL5Dt8/B3dTaZQIDAQABAoICABQ8Ot8Hq3O2vyTjlVDHt4yb</span><br><span style="color: hsl(120, 100%, 40%);">+hpW47ykDfB6ue17saax4ClhZPUZvg3d9U//CGE1d1yT+gV33Eh2wA4ZNTVDOtwGY</span><br><span style="color: hsl(120, 100%, 40%);">+6IfguMAGGHshqS+CBK7N5PBfmOC8NVK3a3/Gvj2DQhChM6jxRBFpJ+jx9K5wFvDx</span><br><span style="color: hsl(120, 100%, 40%);">+FFn0Hu85B3i9hdfW8B57y1CeUBVoNR8qv8TZR4ST+GD3kLnOTnfpHgFFFE0o2Opx</span><br><span style="color: hsl(120, 100%, 40%);">+/mpUQvxE3HE6QVBnc3lRTKhQgsIE11ROGQCi4oKcerwgh37I8aUEG+mJWPvnAdPr</span><br><span style="color: hsl(120, 100%, 40%);">+EPEwdbsF40rRVqxzcuuVVws9kUX9BqlXg81vYgbRRFLQzJS+MgxmKTUlarcP95lB</span><br><span style="color: hsl(120, 100%, 40%);">++nx7FEomHUdv29fhL97Fhq6LQ91cdY0Vi3YY/xQ7cQKwqZX6ywqKt4Sdjx3tfIZ+</span><br><span style="color: hsl(120, 100%, 40%);">+1cPRjEMW/81vyAQgL02cIYlqV8e6F7POhj76G9fnGhTn1w3zsALlOyODGe8F0Io4</span><br><span style="color: hsl(120, 100%, 40%);">+JjaON4QqhUu+g17cCfq2FUr5HE2l4RmK/yjzU3MDuzR431V8WH9PW0OIK56mbGqj</span><br><span style="color: hsl(120, 100%, 40%);">+Bt7BjAxauUfvW+OHspKW5BPjUoMbu5CQqRyuswcwzFo+Cti8FBKQoTaL/MQ/tkBu</span><br><span style="color: hsl(120, 100%, 40%);">+Zmiy8/xwtpWEMzbU0zGKhpTBlvdqaE1oRNDLT+bjDfYejK0+io/phUJM7kgzbu+A</span><br><span style="color: hsl(120, 100%, 40%);">+bqC5HueW9QJ8Jc6nAeV1AoIBAQDUazHZ/g2fgnAZsfDJUdpCK+Df/L2SBgf2LZow</span><br><span style="color: hsl(120, 100%, 40%);">+Js7Smi5TM8fj3WMYQHSB69TZ/mUBHnBCo83r51KWlgPaYXma66kABTTE1g3oc/Xw</span><br><span style="color: hsl(120, 100%, 40%);">+tAv8vg672XprlVWLU9SzuQsS/erMaiHPuIur13UxJzXlvB8Kqs2AzVDTLXWMG5lT</span><br><span style="color: hsl(120, 100%, 40%);">+6A8NzhPZflxWRQTTN0p0MvOpYUI9Pfc6YZ2Y6et0wgdcTgsTC3R5qwcZlwJBhrMt</span><br><span style="color: hsl(120, 100%, 40%);">+B7KaH4oFy5l1vHt1vKP2CuePPkEDlhAwXql9p7y5wfPZblOfQnQWqxeRKUpXMmou</span><br><span style="color: hsl(120, 100%, 40%);">+HfbY/ZB/1hvJgbu7TbsYugCAThS8Qw/GMqrylOU4KZ6uXR6bAoIBAQDB/C0Cj5Pm</span><br><span style="color: hsl(120, 100%, 40%);">+w/ZrYAsLxIOv/6kX2ZOigHD+0bAmWggZOL/N7+lTnvkblKjr38ZYXqDotC7epVvJ</span><br><span style="color: hsl(120, 100%, 40%);">+2lDavs/aC/xCE4C3C1uzovGko+wc/u1AdP2ek72HE1+ApGtMtKZkxwmkxuS+NsaP</span><br><span style="color: hsl(120, 100%, 40%);">+F0Cg2itTudEBcTi/u99Wl49iq0yHS2D4rOvW/9jLH8GQBzWfv2nVn6xywXsZY0dp</span><br><span style="color: hsl(120, 100%, 40%);">+Tb9ARNum6R43M8zTt7U3XaHXNEOB9c0gi5B9ThNXuqwQuGNvL60jGsAYkOFfQUkW</span><br><span style="color: hsl(120, 100%, 40%);">+lRDrnDk+r5sJ3EOJWL4PglqoCfjS1RVlh1CQZnOX5ZhSRS5CB7GsaqmydP5hoyLH</span><br><span style="color: hsl(120, 100%, 40%);">+apslUHqYkPr/AoIBAGf1Vl6DsZMhOU+6AEfm4VSFOPcmMHjorrjStKVgONRlVMqv</span><br><span style="color: hsl(120, 100%, 40%);">+iuKAFOFnmh2Dl5ZgpHoZtYNHu536hjbgkF4uWl9xejJiWeMDh6b+KZ114G//bCKP</span><br><span style="color: hsl(120, 100%, 40%);">+WxSP71/S1URoCX1v+5uzTXzlqqWdOuOldwFKQj7sPMsOsMHJe7/oOfAQoF13P8uv</span><br><span style="color: hsl(120, 100%, 40%);">+xe0KtkPQyYV48jsxOEPUscxGveR6hxuLYiLQpybY8lYhV8Y0W4xKKiKdo9E+IkSX</span><br><span style="color: hsl(120, 100%, 40%);">+0jEG371NZ0khKRa3twXUSXQCwByZHQokW/1Lu200DrCRZ2VJufJW4BRV4dtsrW2D</span><br><span style="color: hsl(120, 100%, 40%);">+EfJapdATSL/fOCOTEx7YCz5KydMS/+OuqtRXCoUCggEBALwDzxxMTO29wXkQ/aPK</span><br><span style="color: hsl(120, 100%, 40%);">+NFjBUwLqv00hcGOKmVCSsoa/mifgACYsTwWMcK0tlvDPxuXEvijN3Mkn8HYTuyF7</span><br><span style="color: hsl(120, 100%, 40%);">+vGPOw1Kmj5rss4j/2DnCW/G9cpPgXjItdMMamWUfMqc6wv4SSGKUdJ77yogc7SGZ</span><br><span style="color: hsl(120, 100%, 40%);">+WBotwvMTBMTI4RChNutrA/ICqBMapuU5QkJ2umK7A7kpqdsP7GAO+Yf28wc3ti1w</span><br><span style="color: hsl(120, 100%, 40%);">+hPi8HCqYQ+wFtHcBEO1FcCu7GbBZnCXLqDoMfVOmwgjkRIuK4OWSQWTB1kSGhnVb</span><br><span style="color: hsl(120, 100%, 40%);">+fslv04WrnYsqrPNxttmh7bsaC9vpcOAoiBo1M0CMdIjIWPG+s0+u7maZzQW9mxWE</span><br><span style="color: hsl(120, 100%, 40%);">+b8ECggEAaivTQqVBqPGMZfzTetsK+Ae7QLA3K9ulAhkkSJJqkbSFGg2z979g3TGD</span><br><span style="color: hsl(120, 100%, 40%);">+cjI4cSBLXVKMTwBumoc5JDBhOZ6IV9C7ojxKuiI3nIlDWxsY+MUB4LE46growIKX</span><br><span style="color: hsl(120, 100%, 40%);">+REaSIHG9KydTxJQcEjPPI1FR6fxNmIEfPUSIZPVEqkNxYspWUlF/wDz2cyCf06xT</span><br><span style="color: hsl(120, 100%, 40%);">+0pNjP2UawHmdzlohmK5S7AE1GX1m0KIyS2OFFGykBIQ6B+i367vPqBmEVLYkVHmP</span><br><span style="color: hsl(120, 100%, 40%);">+3KiYjBGvRfDYyFD7IBsPvGdcpt56vTaxpyq7Q27VOBU5vmBRY/hPFeSpBqHq2DzA</span><br><span style="color: hsl(120, 100%, 40%);">+1g9hGu9bA0qdotBMeYa/eS5WRcb+AA==</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PRIVATE KEY-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cacert.pem b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cacert.pem</span><br><span>new file mode 120000</span><br><span>index 0000000..440ae96</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cacert.pem</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../keys/uas.crt</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cakey.pem b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cakey.pem</span><br><span>new file mode 120000</span><br><span>index 0000000..0f76a9b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cakey.pem</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../keys/uas.key</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/invite_recv.xml b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/invite_recv.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..2ab846e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/invite_recv.xml</span><br><span>@@ -0,0 +1,74 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive Invite"></span><br><span style="color: hsl(120, 100%, 40%);">+  <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE"></span><br><span style="color: hsl(120, 100%, 40%);">+    <action></span><br><span style="color: hsl(120, 100%, 40%);">+      <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+            header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+            search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+            assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+      </action></span><br><span style="color: hsl(120, 100%, 40%);">+  </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      v=0</span><br><span style="color: hsl(120, 100%, 40%);">+      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sips:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: <sips:[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sips:[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/test-config.yaml b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..ed11289</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/test-config.yaml</span><br><span>@@ -0,0 +1,44 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Test TLS using a certificate with a wildcard CN'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Originate a call using TLS from Asterisk to a remote endpoint,</span><br><span style="color: hsl(120, 100%, 40%);">+         and verify usage of a wildcard certificate. If the call is</span><br><span style="color: hsl(120, 100%, 40%);">+         successfully established then it worked.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: orig-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: dns-server-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'dns_server.DNSServer'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'invite_recv.xml', '-s': 'uas', '-p': '5062', '-t': 'l1', '-tls_version': '1.2' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+orig-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/uas'</span><br><span style="color: hsl(120, 100%, 40%);">+    application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+    async: 'True'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+dns-server-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    port: 10053</span><br><span style="color: hsl(120, 100%, 40%);">+    python-zones:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            example.com</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip_session'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip_sips_contact'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/ca.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/ca.crt</span><br><span>new file mode 120000</span><br><span>index 0000000..1d16722</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/ca.crt</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../../keys/ca.crt</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/extensions.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..ab109a1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..f7b8e9b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf</span><br><span>@@ -0,0 +1,10 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[log_mappings]</span><br><span style="color: hsl(120, 100%, 40%);">+type = log_mappings</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_error = 0,1</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_warning = 2</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_verbose = 3</span><br><span style="color: hsl(120, 100%, 40%);">+asterisk_debug = 4,5,6</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[startup]</span><br><span style="color: hsl(120, 100%, 40%);">+type = startup</span><br><span style="color: hsl(120, 100%, 40%);">+log_level = 3</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjsip.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..1389f8d</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,24 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[global]</span><br><span style="color: hsl(120, 100%, 40%);">+type=global</span><br><span style="color: hsl(120, 100%, 40%);">+debug=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[transport-tls]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=tls</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1:5061</span><br><span style="color: hsl(120, 100%, 40%);">+method=tlsv1_2</span><br><span style="color: hsl(120, 100%, 40%);">+priv_key_file=<<astetcdir>>/uac.key</span><br><span style="color: hsl(120, 100%, 40%);">+cert_file=<<astetcdir>>/uac.crt</span><br><span style="color: hsl(120, 100%, 40%);">+ca_list_file=<<astetcdir>>/ca.crt</span><br><span style="color: hsl(120, 100%, 40%);">+verify_server=yes</span><br><span style="color: hsl(120, 100%, 40%);">+allow_wildcard_certs=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uas]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sips:uas.example.com:5062\;transport=tls</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[uas]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+aors=uas</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/resolver_unbound.conf b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/resolver_unbound.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..38ef153</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/resolver_unbound.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[general]</span><br><span style="color: hsl(120, 100%, 40%);">+nameserver = 127.0.0.1@10053</span><br><span style="color: hsl(120, 100%, 40%);">+resolv =</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.crt</span><br><span>new file mode 120000</span><br><span>index 0000000..9ada8f1</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.crt</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../../keys/uac.crt</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.key</span><br><span>new file mode 120000</span><br><span>index 0000000..f141b2b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.key</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../../keys/uac.key</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/dns_zones/example.com b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/dns_zones/example.com</span><br><span>new file mode 100644</span><br><span>index 0000000..79a9c6e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/dns_zones/example.com</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+zone = [</span><br><span style="color: hsl(120, 100%, 40%);">+    SOA(</span><br><span style="color: hsl(120, 100%, 40%);">+        # For whom we are the authority</span><br><span style="color: hsl(120, 100%, 40%);">+        'example.com',</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # This nameserver's name</span><br><span style="color: hsl(120, 100%, 40%);">+        mname = "ns1.example.com",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Mailbox of individual who handles this</span><br><span style="color: hsl(120, 100%, 40%);">+        rname = "root.example.com",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Unique serial identifying this SOA data</span><br><span style="color: hsl(120, 100%, 40%);">+        serial = 2003010601,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Time interval before zone should be refreshed</span><br><span style="color: hsl(120, 100%, 40%);">+        refresh = "1H",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Interval before failed refresh should be retried</span><br><span style="color: hsl(120, 100%, 40%);">+        retry = "1H",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Upper limit on time interval before expiry</span><br><span style="color: hsl(120, 100%, 40%);">+        expire = "1H",</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        # Minimum TTL</span><br><span style="color: hsl(120, 100%, 40%);">+        minimum = "1H"</span><br><span style="color: hsl(120, 100%, 40%);">+    ),</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    A('uas.example.com', '127.0.0.1'),</span><br><span style="color: hsl(120, 100%, 40%);">+]</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/README.txt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/README.txt</span><br><span>new file mode 100644</span><br><span>index 0000000..0777475</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/README.txt</span><br><span>@@ -0,0 +1,16 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# certs generated using the following commands:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create CA</span><br><span style="color: hsl(120, 100%, 40%);">+openssl req -x509 -days 999999 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create server key and signing request</span><br><span style="color: hsl(120, 100%, 40%);">+openssl req -newkey rsa:4096 -nodes -keyout uas.key -out uas.csr -subj="/C=US/CN=uas"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create server certificate</span><br><span style="color: hsl(120, 100%, 40%);">+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uas.csr -set_serial 01 -req -out uas.crt -extfile <(printf "subjectAltName=DNS:*.example.com")</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create client key and signing request</span><br><span style="color: hsl(120, 100%, 40%);">+openssl req -newkey rsa:4096 -nodes -keyout uac.key -out uac.csr -subj="/C=US/CN=uac.example.com"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# create server certificate</span><br><span style="color: hsl(120, 100%, 40%);">+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uac.csr -set_serial 01 -req -out uac.crt</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt</span><br><span>new file mode 100644</span><br><span>index 0000000..95518c0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIFqTCCA5GgAwIBAgIUa2wnH1fXjnYIDS81xUFtwLFKFRswDQYJKoZIhvcNAQEL</span><br><span style="color: hsl(120, 100%, 40%);">+BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM</span><br><span style="color: hsl(120, 100%, 40%);">+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJp</span><br><span style="color: hsl(120, 100%, 40%);">+dmF0ZSBDQTAgFw0yMjA1MjYyMTE0MjZaGA80NzYwMDQyMTIxMTQyNlowYzELMAkG</span><br><span style="color: hsl(120, 100%, 40%);">+A1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0</span><br><span style="color: hsl(120, 100%, 40%);">+IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTCC</span><br><span style="color: hsl(120, 100%, 40%);">+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALefzXMa1Hc3yv3Pqql0h6Vt</span><br><span style="color: hsl(120, 100%, 40%);">+FIgUO24rI3KKWkJ8PYjemO8XX/eCAYeMD1ElWPHRWCDvZpckrcUG6tqgK7yEJjgD</span><br><span style="color: hsl(120, 100%, 40%);">+DBREDh1D/rryjMcWQ2cYF0xD0X26rT0w2t8e5ylUTX7kSVT/ERcMrL7QR4UvBPHG</span><br><span style="color: hsl(120, 100%, 40%);">+rPXuBCMbLKYyRJ4UwIerVJ4GEoNyvsZ1MK2oC+OpF2ciBzVO8hCzzx0n0TP8ox8f</span><br><span style="color: hsl(120, 100%, 40%);">+BkN1CtGcDaGshCAMC5ZsygkXtCdK0ABzemN2RXfOsLLtBtmR1VA7KRuLat92bcVn</span><br><span style="color: hsl(120, 100%, 40%);">+zLhBXE0Rd4Riwk+Ydg/Y9gkCcbJ3M0i+2ggpQFErmJo8nU6sEd+lWYrKrLhy3g9f</span><br><span style="color: hsl(120, 100%, 40%);">+LmRELI/lYeo/iCw4uoFNgC0aARDA8EnCxC0dAy8FKxtrz1G1jLgoY/xR/JymSMgX</span><br><span style="color: hsl(120, 100%, 40%);">+9Vhibw07xldcXmxzY9GSCPLDGI2I+Nl9TOn0urKBwSVZzrchxM1+ASYUVI1v90vy</span><br><span style="color: hsl(120, 100%, 40%);">+cYE11fnVj94zPuUNX48Dx5fKSUDbQL8EZmIFrf1qjjVgePbm4WIYFIj+BTNOlOnG</span><br><span style="color: hsl(120, 100%, 40%);">+Pl+KX/9DLuoamLX5ZjE00nr7pPJ4FdOIKEw38dTNRtmJTXqvT0GXLtPpFPMHKZBG</span><br><span style="color: hsl(120, 100%, 40%);">+0cdamgVaB7XY3BMjQ82gcDGDXBqIr4fM4ndl6vQ6M77BdWFZ6Yv7a417yniTMu1u</span><br><span style="color: hsl(120, 100%, 40%);">+9kz29GLbO8we3+KLm45FAgMBAAGjUzBRMB0GA1UdDgQWBBSNsrYP0eqyatcYvc46</span><br><span style="color: hsl(120, 100%, 40%);">+7URDvkiW5DAfBgNVHSMEGDAWgBSNsrYP0eqyatcYvc467URDvkiW5DAPBgNVHRMB</span><br><span style="color: hsl(120, 100%, 40%);">+Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCmtdGUE3EH5nyjUpk/aVBPZJmB</span><br><span style="color: hsl(120, 100%, 40%);">+a6aw3XDEY0VkdT/cdGUCGHzbhLhu/DZ0nm3EbvSjDMo66w3IvCFMVGXbzfogQ3vU</span><br><span style="color: hsl(120, 100%, 40%);">++S1wtHjlTkjYOU9YPxMfPnLMzoAr8aJI0TPH6KnVURXdZXXUR4RVq/oCigM9Yr9N</span><br><span style="color: hsl(120, 100%, 40%);">+2cA6mf0HhGTVm6mAZWxuJFFA9bGhoIZ5XWdvvFahwdHKJyt1GxWxGwIdlVtN0/aL</span><br><span style="color: hsl(120, 100%, 40%);">+ql2GbR+Gp6/Oj9VYrKUchw10beYCKMk+TE7olKZsDQUsivk+TXAfvwUfansQZ99V</span><br><span style="color: hsl(120, 100%, 40%);">+aiJsIfO16NQbZLl4C96L4W/4CVOoOWb6QfT2N4YeAhiBlveBkowcdqv0A9PyLMhk</span><br><span style="color: hsl(120, 100%, 40%);">+qMKZAeSa0N2ygIkFm/EngxgmEJ2VT3+aJSVsep0orOScuMTr2w0iNCa84inKjexT</span><br><span style="color: hsl(120, 100%, 40%);">+37WRUFY3/0iAqnrr02H5jY5O3t4+4l5AF6f8xS1WMw8pDkYQwYuFUlA5g9Nr/np+</span><br><span style="color: hsl(120, 100%, 40%);">+Ur6P3H9xVkOiQ5eRC0BBsh9/QKjYbZXrr0p3Lt+TvAmw/cqBSS+LSShdbhEyeIv7</span><br><span style="color: hsl(120, 100%, 40%);">+R689UGTSI+esBjPgyawa9OS6H844LWs8XFsl84Z1rYEaX7hr8nREZHTn6xmygW/V</span><br><span style="color: hsl(120, 100%, 40%);">+q/+fVE1hmOuYN6AQV3U4Pl7MU6TXdWd5w9aFEurI3X825YAFspuncK9/haI++Upv</span><br><span style="color: hsl(120, 100%, 40%);">+6AZBQSqYcNtR92V9Fw==</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.key</span><br><span>new file mode 100644</span><br><span>index 0000000..979fc58</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.key</span><br><span>@@ -0,0 +1,52 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PRIVATE KEY-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQC3n81zGtR3N8r9</span><br><span style="color: hsl(120, 100%, 40%);">+z6qpdIelbRSIFDtuKyNyilpCfD2I3pjvF1/3ggGHjA9RJVjx0Vgg72aXJK3FBura</span><br><span style="color: hsl(120, 100%, 40%);">+oCu8hCY4AwwURA4dQ/668ozHFkNnGBdMQ9F9uq09MNrfHucpVE1+5ElU/xEXDKy+</span><br><span style="color: hsl(120, 100%, 40%);">+0EeFLwTxxqz17gQjGyymMkSeFMCHq1SeBhKDcr7GdTCtqAvjqRdnIgc1TvIQs88d</span><br><span style="color: hsl(120, 100%, 40%);">+J9Ez/KMfHwZDdQrRnA2hrIQgDAuWbMoJF7QnStAAc3pjdkV3zrCy7QbZkdVQOykb</span><br><span style="color: hsl(120, 100%, 40%);">+i2rfdm3FZ8y4QVxNEXeEYsJPmHYP2PYJAnGydzNIvtoIKUBRK5iaPJ1OrBHfpVmK</span><br><span style="color: hsl(120, 100%, 40%);">+yqy4ct4PXy5kRCyP5WHqP4gsOLqBTYAtGgEQwPBJwsQtHQMvBSsba89RtYy4KGP8</span><br><span style="color: hsl(120, 100%, 40%);">+UfycpkjIF/VYYm8NO8ZXXF5sc2PRkgjywxiNiPjZfUzp9LqygcElWc63IcTNfgEm</span><br><span style="color: hsl(120, 100%, 40%);">+FFSNb/dL8nGBNdX51Y/eMz7lDV+PA8eXyklA20C/BGZiBa39ao41YHj25uFiGBSI</span><br><span style="color: hsl(120, 100%, 40%);">+/gUzTpTpxj5fil//Qy7qGpi1+WYxNNJ6+6TyeBXTiChMN/HUzUbZiU16r09Bly7T</span><br><span style="color: hsl(120, 100%, 40%);">+6RTzBymQRtHHWpoFWge12NwTI0PNoHAxg1waiK+HzOJ3Zer0OjO+wXVhWemL+2uN</span><br><span style="color: hsl(120, 100%, 40%);">+e8p4kzLtbvZM9vRi2zvMHt/ii5uORQIDAQABAoICADGYauBM/dfZbO1SurCcNcr7</span><br><span style="color: hsl(120, 100%, 40%);">+hFEgzdB6vE9CiRBuCBzAqqPhN11dctZOgRCUuspNlbUHlDj8gia2MJauLkHzm3MD</span><br><span style="color: hsl(120, 100%, 40%);">+d669luZWqCWMP3PCUqA0xI4nvxxrYEEnweYDrcHe8DN2q0vWvKHyHXJIRRj20yoO</span><br><span style="color: hsl(120, 100%, 40%);">+VEb0a4+j1lJpP1lHF51NLESmNTfltRtbKbOtsNBjqluDuFiwovbZ6fXg/ENDWDee</span><br><span style="color: hsl(120, 100%, 40%);">+pI1xvmNQ9+mT8/fH6RVO+t6r1U/LiBSnHAZjOm4amGUrWe9H0UqjP/4dkNccYJex</span><br><span style="color: hsl(120, 100%, 40%);">+6nxVwv1Z22MZXYwsDK9JFWLnkxf11Bcw3SjZI3MJCGWYO5C1Lvqt6VpwVWhYNhuR</span><br><span style="color: hsl(120, 100%, 40%);">+j3hMWWrYSx/OIs9zDUQreWBnT/Fx5lsVgqOgOa3va1yXOaL+ASvBKlvHW4IEH2O9</span><br><span style="color: hsl(120, 100%, 40%);">+XuSwGqGTxv6bwBHDbqUqWl8yCrMm75RS7xADiS1Q+R/+Bqt8WVd5I0NpUca8ZZAa</span><br><span style="color: hsl(120, 100%, 40%);">+VJKICG3v+Vl0Ou1GiOMvpi3MLReKh0adV6gHPLs41MgDXCwDvaQHWkXlOE9S0IlY</span><br><span style="color: hsl(120, 100%, 40%);">+ZApAxB1BPOaHXapJeoLh+H4HxONEQ9J/cc5XJqpcHebuEl+5qToVSTwNTNoI0mTU</span><br><span style="color: hsl(120, 100%, 40%);">+CdYd9lkRKa7TtaQNiUWso/3sDq+1Qnb0LO3y0+L/QpYNCAyaCDGmjY71pQA6YXD1</span><br><span style="color: hsl(120, 100%, 40%);">+SAgA0vCTWcIbx62mLutBAoIBAQDhWmudh+Vi8XLQmiTRL+Ep3dlMNbdblxveEyZ5</span><br><span style="color: hsl(120, 100%, 40%);">+EM8036M7/PssoEof5Mjmz80mfEq69P0bPWD0+KBvB98ecB2W72FLjdbb6Aow1p88</span><br><span style="color: hsl(120, 100%, 40%);">+Pev2hSug5lIWejH6eVw3U3nV93Uliia7en/wxBJJJYG4Oaagpwg7jI45KyJuRzIs</span><br><span style="color: hsl(120, 100%, 40%);">+yoyNarPmaJXuaXTkWY4qhNPyBwWXcPBbL0/vIncS/UDZRevMzRnRbhc4Rup11at7</span><br><span style="color: hsl(120, 100%, 40%);">+ApCQDJPh1ka/4NWWjh4Y1MjzTO6ZPtP2qjDSFT9VrHyHzq10jL+6f+tYwUnCs0yq</span><br><span style="color: hsl(120, 100%, 40%);">+c9MckU5U9iPG+y0GeqGgvZ/g/KIiUNzJxB9FTG/C9aDxMrjRAoIBAQDQmJrdUMCG</span><br><span style="color: hsl(120, 100%, 40%);">+jA86P6WGR0GWXxBxNxGxe0vj8YbLUtncZUU2bXz3gEwoQTriqOSep+Mf5x5kJK0C</span><br><span style="color: hsl(120, 100%, 40%);">+HPLkY/c/ZaExs81sHjahdMj06kvIP6x+rKre64aRXGYciFg5K7YKmYnyzNEa0aKH</span><br><span style="color: hsl(120, 100%, 40%);">+BHCXEI8Ap/GbQ+LXfCCCi2CduaP/LI5yJTbvbJYFKDLH86eSuJvxZ2eILMan9ftA</span><br><span style="color: hsl(120, 100%, 40%);">+SmjuWl30XZYzfOlpdbWz1tqP1osHzoQjMQA/y1kwqGBs0Rx11S5DD6VNRfqyY5Kl</span><br><span style="color: hsl(120, 100%, 40%);">+q8yskhh2jyBJ1KB0Sg8cOvK5eI/mlJAgomB2eYTJMn5jK8L7WG3bPzK3nFoFqdgY</span><br><span style="color: hsl(120, 100%, 40%);">+syHokMkIGVs1AoIBAQClbQfkqzazbET5Zr4yJXCnmCiErkX8YS/e1LYAV1uUF7sv</span><br><span style="color: hsl(120, 100%, 40%);">+NSV4++2N/heQf+i8IK+HEIKgtWzwR3cWKnQaVvkRrIYCvYuFAJBCi7p2sYn+/IEr</span><br><span style="color: hsl(120, 100%, 40%);">+awfFYkw/70jHgGrGrBH9za1jIKi8qGI3+eWAxClSc2sys5pP0x9CTtdBVCrbQQHw</span><br><span style="color: hsl(120, 100%, 40%);">+2MN/MUDSw/79rWYcnBT5t7lpZpDKHcXFVc198bsIK2ORfrxi3oQMnh50fUx7wg/o</span><br><span style="color: hsl(120, 100%, 40%);">+z7A9+KEyFP95APLGz6mzKxDUWNjfzyMgFC+STiC8lvnDwVWVYMZxu8dCtSW7KduT</span><br><span style="color: hsl(120, 100%, 40%);">+uOBImGfUAr+VTL4JncqzYCLDpknCSDsepctQZAiRAoIBAQCCW5wMSvbGHqk1gajz</span><br><span style="color: hsl(120, 100%, 40%);">+rXwzeN1Ro1SPUbovjTTrw68aqL8EMJA0LB1r2rfuBhY5gDnUKh83/iOQen7gdAiD</span><br><span style="color: hsl(120, 100%, 40%);">+ugNuiCsMMiV56P3c8L7DOeeWklmGTjIejVvS4PIhaEuvfBxVe+IBnJixP/kMrvBv</span><br><span style="color: hsl(120, 100%, 40%);">+PIUkvtv4Rj4a1vdeGjF+ul2av98A6R8nweNaSc6jRnNN/Y0Z8MGFHZgSqW3B5v9o</span><br><span style="color: hsl(120, 100%, 40%);">+Q0QmkR1dJo6TAOY9lZn1Gv5A79J0C6SFX/RCjLv4d20dw51OGTl+WfO/TQnvnq1j</span><br><span style="color: hsl(120, 100%, 40%);">+CjbnbNWJVu7yeXROrCVht94KRu95mp99DO0nFKYZZT3iEjCjxjYL7AR8CxZZvIGl</span><br><span style="color: hsl(120, 100%, 40%);">+ahMxAoIBAQDN89gjOr9wbIr4dXl7GJTg7sEKbIvoatiUix6QV+ZHLEgn7/hcI4uY</span><br><span style="color: hsl(120, 100%, 40%);">+iKc14CFjZu6oICk0s6qq0J++1ZbpTywE8NQOJmDRrRM8GsRw5uGWd/0p+aQDWzPb</span><br><span style="color: hsl(120, 100%, 40%);">+Qu9IyFdKwssoVB49uNL9GQdNwZ3jymW0fc1AyVy1VC2JyXhBHcHQFHKibHFD5NAP</span><br><span style="color: hsl(120, 100%, 40%);">+XkPSXhW1gwK2CBqaTdhbNznWhFZmFCRMxIfZ4XrFQVqr1tz7WXkuKb9KapCfC/vH</span><br><span style="color: hsl(120, 100%, 40%);">+BusYWCyI3erZvVHTz2thQtoqp4bEAwalMF8lWadWLOhjhxjPdkZbUBYBiAisO1th</span><br><span style="color: hsl(120, 100%, 40%);">+KcnkZRueGPfB4++puXDf+CNsb7yvhJsu</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PRIVATE KEY-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt</span><br><span>new file mode 100644</span><br><span>index 0000000..acc6aba</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIFADCCAugCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV</span><br><span style="color: hsl(120, 100%, 40%);">+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0</span><br><span style="color: hsl(120, 100%, 40%);">+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAgFw0yMjA1MjYyMTE2MTVa</span><br><span style="color: hsl(120, 100%, 40%);">+GA80NzYwMDQyMTIxMTYxNVowJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5l</span><br><span style="color: hsl(120, 100%, 40%);">+eGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMYjj608</span><br><span style="color: hsl(120, 100%, 40%);">+5ePhrTSlyvezg2dPN2LqShT2DDU3Pff1LWzXQXz3OYSH6K6LKcV9+gZkixQLEFkp</span><br><span style="color: hsl(120, 100%, 40%);">+rxcWcf9L5KNYA+CAGiUK0Ljd9KVOLoyd1sPJZQKV6pFGomY0po9ACYLK3E0+tBqw</span><br><span style="color: hsl(120, 100%, 40%);">+wCkQNDGdns4aw03kPqRN5fBxlrTOEEp+JRzAv5tBYQVptpOytsqQzeSdK9UbtVD5</span><br><span style="color: hsl(120, 100%, 40%);">+NG4IHWMdKUCjnECLulTDtxGt9RNK3LhGkmLkyH8FQnRE3x2T3c2h2aLtAmuZRrbs</span><br><span style="color: hsl(120, 100%, 40%);">+HwPpAa2EgpBRk8kaeLqLz41qwf4ykMxjqooMILnQ/iQi7ii0MeOhr0bTzvGVoGuj</span><br><span style="color: hsl(120, 100%, 40%);">+NM2XgELEs3+Epyn2c8DdFHdRUZlJFRYIioZ3PVoS5iPynnxoEka/UhsWVtWX1yww</span><br><span style="color: hsl(120, 100%, 40%);">+xHiBt7q/hqG0qCwT4TkOF9E6l2sYFl+QlSv5q+tmTpTYbU+pZR9xXBFe7XP4/84f</span><br><span style="color: hsl(120, 100%, 40%);">+0grhK9CMklE6h742Q1PkDhkb05zbWqnMsyuIBiqgNtiKGadLTdLGR2yZTeIDzyrW</span><br><span style="color: hsl(120, 100%, 40%);">+Qwdj3UMpf3TYPYdHUDdNquYNHExInewnPbfKsaJUaoWEpVPJaY7ex4dPn+/fG4rC</span><br><span style="color: hsl(120, 100%, 40%);">+J1o7ww5qm5gvDi0NvrTulViFEDWUoGmTXmxJLSSHukIKybf2YZx8xZj5Bk40bkSk</span><br><span style="color: hsl(120, 100%, 40%);">+4uJlVaWZiLHF8hKeSa9m7O8NUJzOc8nkveuLAgMBAAEwDQYJKoZIhvcNAQELBQAD</span><br><span style="color: hsl(120, 100%, 40%);">+ggIBAFjUkAhissrvdamAY3bvM5Uw6BR+YpIacwcqhVm04CnYLeJ8u5TwxPHL9uQB</span><br><span style="color: hsl(120, 100%, 40%);">+cN78OUMG6NDHDZ8EMmDfqbj6nn41Z63osXOBFxzsRTprbud/0Opfrr+0oI9M7CSU</span><br><span style="color: hsl(120, 100%, 40%);">+mu1NPFRpEd6AdiBwKMs0uJ8Pklvm6Uc0CiqKE6zlhB0pykKPBn7E9Tyd8SUHOtK/</span><br><span style="color: hsl(120, 100%, 40%);">+xJ9Q5cSGZtddBtiammJdi88xzlGTz93tnLnBoMgbHExt7d6l59EWGSB4v3Xeh3st</span><br><span style="color: hsl(120, 100%, 40%);">+qkfLYVKo0C56FAlduzBx2/1F0GfT/gUKNUBKA/D8M/mZEwV06xzoR0sTGICcejut</span><br><span style="color: hsl(120, 100%, 40%);">+E4ZdmZNyUKH2B3y2rX093yP5xTaHaCdyuUkYTmymr868wCZ01VYqpB8UYEmk+LB9</span><br><span style="color: hsl(120, 100%, 40%);">+WHMjcgbsQ6GpG/qzH8d9HpDN0k6ftK3NlMv6r1EEhb7oUTj4WRGjeO4TMa+Dc0z+</span><br><span style="color: hsl(120, 100%, 40%);">+6umsLJmCfM8Ons2egXp0V9am178bePTMtjArIaDrhJkyEbL1eaJ5sgsm1PVvkg9O</span><br><span style="color: hsl(120, 100%, 40%);">+CRT+jQZdrj0CeX4i0CBMzncbqRgDHyJqVJzVu5NnXNUTOXr43JE6bQeH6+BnAMEr</span><br><span style="color: hsl(120, 100%, 40%);">+2QMb3D8M1R/y0QbeiVeqI1/Gm7dyxUjaVG/wTv8TTkNzqola8luE1ND50wOsBN/K</span><br><span style="color: hsl(120, 100%, 40%);">+H2id56HzoA6dlYPuHsb3GXf5A6XGP5FRcpv6332A29Kk1+Fw</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.csr b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.csr</span><br><span>new file mode 100644</span><br><span>index 0000000..4d9499e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.csr</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE REQUEST-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIEbDCCAlQCAQAwJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5leGFtcGxl</span><br><span style="color: hsl(120, 100%, 40%);">+LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMYjj6085ePhrTSl</span><br><span style="color: hsl(120, 100%, 40%);">+yvezg2dPN2LqShT2DDU3Pff1LWzXQXz3OYSH6K6LKcV9+gZkixQLEFkprxcWcf9L</span><br><span style="color: hsl(120, 100%, 40%);">+5KNYA+CAGiUK0Ljd9KVOLoyd1sPJZQKV6pFGomY0po9ACYLK3E0+tBqwwCkQNDGd</span><br><span style="color: hsl(120, 100%, 40%);">+ns4aw03kPqRN5fBxlrTOEEp+JRzAv5tBYQVptpOytsqQzeSdK9UbtVD5NG4IHWMd</span><br><span style="color: hsl(120, 100%, 40%);">+KUCjnECLulTDtxGt9RNK3LhGkmLkyH8FQnRE3x2T3c2h2aLtAmuZRrbsHwPpAa2E</span><br><span style="color: hsl(120, 100%, 40%);">+gpBRk8kaeLqLz41qwf4ykMxjqooMILnQ/iQi7ii0MeOhr0bTzvGVoGujNM2XgELE</span><br><span style="color: hsl(120, 100%, 40%);">+s3+Epyn2c8DdFHdRUZlJFRYIioZ3PVoS5iPynnxoEka/UhsWVtWX1ywwxHiBt7q/</span><br><span style="color: hsl(120, 100%, 40%);">+hqG0qCwT4TkOF9E6l2sYFl+QlSv5q+tmTpTYbU+pZR9xXBFe7XP4/84f0grhK9CM</span><br><span style="color: hsl(120, 100%, 40%);">+klE6h742Q1PkDhkb05zbWqnMsyuIBiqgNtiKGadLTdLGR2yZTeIDzyrWQwdj3UMp</span><br><span style="color: hsl(120, 100%, 40%);">+f3TYPYdHUDdNquYNHExInewnPbfKsaJUaoWEpVPJaY7ex4dPn+/fG4rCJ1o7ww5q</span><br><span style="color: hsl(120, 100%, 40%);">+m5gvDi0NvrTulViFEDWUoGmTXmxJLSSHukIKybf2YZx8xZj5Bk40bkSk4uJlVaWZ</span><br><span style="color: hsl(120, 100%, 40%);">+iLHF8hKeSa9m7O8NUJzOc8nkveuLAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA</span><br><span style="color: hsl(120, 100%, 40%);">+C/pO+kddgX7XOQSOPVsi27wq/5JDaek3wGfP1jLfI7tpd/Xm+TLo9dkJxA4MVlmx</span><br><span style="color: hsl(120, 100%, 40%);">+6HzW+qPAM6haipbCfrnHrQb5z7G4x2SJWHq0AeTtUtn1nfgV4R9DGRKe2ufwnfAu</span><br><span style="color: hsl(120, 100%, 40%);">+zdm/HMn01j0dj6zD9fgbeQgGzAkxyvXtO1sZ/2lPPBHsZo0h97tCtwa7iGwc1IVv</span><br><span style="color: hsl(120, 100%, 40%);">+4MmBJ+67B+G7jvw4+AdIZEG4l3WoQuN0JHUQqeNtF0YUZmQOkloxmT4TLVAFb1ZO</span><br><span style="color: hsl(120, 100%, 40%);">+69CyR03lhi0JFRO9PY7GDkbJoikmSt5/0NS6Mw4g5LlciTLXiZgh7ffRdJ/C+93Y</span><br><span style="color: hsl(120, 100%, 40%);">+9wBGApz+qbYZ/SoJEy5A5AS1pQ9UHeA9WXHQOhsOm2AlD0aGDEsVjg40IBnKIToH</span><br><span style="color: hsl(120, 100%, 40%);">+lLHpAHt8/jeO4Flp2fkIONrfYjqTushoNVchEBW7hCbzmMZUP8zfB9MJMn5EPqqU</span><br><span style="color: hsl(120, 100%, 40%);">+4LhyBT3LKt016aGWFgQwrTYrJqGFBRrOs39GYztyCvf5N6DKRnzqoE/siufKOEpX</span><br><span style="color: hsl(120, 100%, 40%);">+KwCtvXnTSi+uSiLkPIeGkrJGzkVUveg4554Mg8QL2MIqSkDgmmn3GZoYfzNM9bKS</span><br><span style="color: hsl(120, 100%, 40%);">+qW3scHMu+trrYru6oBnAQDk0Rg/xKKjSJel7pO67LsJR+EobqBnla8kVIciqUR1K</span><br><span style="color: hsl(120, 100%, 40%);">+BOgJ3AM8NIr97tmCWqWBPfNFsk18yoWV+YjEpX7gU+k=</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE REQUEST-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.key</span><br><span>new file mode 100644</span><br><span>index 0000000..075f2f4</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.key</span><br><span>@@ -0,0 +1,52 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PRIVATE KEY-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDGI4+tPOXj4a00</span><br><span style="color: hsl(120, 100%, 40%);">+pcr3s4NnTzdi6koU9gw1Nz339S1s10F89zmEh+iuiynFffoGZIsUCxBZKa8XFnH/</span><br><span style="color: hsl(120, 100%, 40%);">+S+SjWAPggBolCtC43fSlTi6MndbDyWUCleqRRqJmNKaPQAmCytxNPrQasMApEDQx</span><br><span style="color: hsl(120, 100%, 40%);">+nZ7OGsNN5D6kTeXwcZa0zhBKfiUcwL+bQWEFabaTsrbKkM3knSvVG7VQ+TRuCB1j</span><br><span style="color: hsl(120, 100%, 40%);">+HSlAo5xAi7pUw7cRrfUTSty4RpJi5Mh/BUJ0RN8dk93Nodmi7QJrmUa27B8D6QGt</span><br><span style="color: hsl(120, 100%, 40%);">+hIKQUZPJGni6i8+NasH+MpDMY6qKDCC50P4kIu4otDHjoa9G087xlaBrozTNl4BC</span><br><span style="color: hsl(120, 100%, 40%);">+xLN/hKcp9nPA3RR3UVGZSRUWCIqGdz1aEuYj8p58aBJGv1IbFlbVl9csMMR4gbe6</span><br><span style="color: hsl(120, 100%, 40%);">+v4ahtKgsE+E5DhfROpdrGBZfkJUr+avrZk6U2G1PqWUfcVwRXu1z+P/OH9IK4SvQ</span><br><span style="color: hsl(120, 100%, 40%);">+jJJROoe+NkNT5A4ZG9Oc21qpzLMriAYqoDbYihmnS03SxkdsmU3iA88q1kMHY91D</span><br><span style="color: hsl(120, 100%, 40%);">+KX902D2HR1A3TarmDRxMSJ3sJz23yrGiVGqFhKVTyWmO3seHT5/v3xuKwidaO8MO</span><br><span style="color: hsl(120, 100%, 40%);">+apuYLw4tDb607pVYhRA1lKBpk15sSS0kh7pCCsm39mGcfMWY+QZONG5EpOLiZVWl</span><br><span style="color: hsl(120, 100%, 40%);">+mYixxfISnkmvZuzvDVCcznPJ5L3riwIDAQABAoICAQC2cqprUAc0FmvCbeP+wLsA</span><br><span style="color: hsl(120, 100%, 40%);">+Fy6eE7URphtJqUuTlp00euXfp1q8UdWNW7GkHENtPYnfc+yi3cJPVSi1d3Hag0JW</span><br><span style="color: hsl(120, 100%, 40%);">+qD7q2xGlGSScTuiILRNEh59OiTNMgKkrydGRWNspJ5lCO7nmVdksNrKI+WXwzS4H</span><br><span style="color: hsl(120, 100%, 40%);">+/GM+MkjIZh/q71CK96s+1bHZyZMIQ/aN/GNbFYmxuJRTEMed/0srAqfky0ZgMgfA</span><br><span style="color: hsl(120, 100%, 40%);">+W6nBQdLCIdfo4udpe/pxu89vPy2ZGI4Gk1ELd7yKzQmMgMBf0f8hP55+4+TB9YxL</span><br><span style="color: hsl(120, 100%, 40%);">+AugmhnUg+CwX4QH6Ys/3fAFqeSp7pfp9WqgRvqFCa+lEBY6JbuhBY/8D/FJ42nJ9</span><br><span style="color: hsl(120, 100%, 40%);">+jm3fxYiYSKyd0moiua98xk2VZnWq9CR3yO0hwssU1cpLkFijDNAjdzDVJ8Wq8kks</span><br><span style="color: hsl(120, 100%, 40%);">+RqguvnkmUJidtWJ0UmkpeYWIN3IovoaxjMEk68kSHtW7exqE8KZdT6mynjEunx1G</span><br><span style="color: hsl(120, 100%, 40%);">+WrxIaSPa3br1pVBYa2VplSrscF8RiUpDL/3jjxOhE8Lzua/I/6xBSKTEgcqienX/</span><br><span style="color: hsl(120, 100%, 40%);">+WKYu38PDV/fRbNn2mWkVIx0lx2Wu/GWiEsb9QH4vvKQPI9EBuGNxd4zRgdBAVTNm</span><br><span style="color: hsl(120, 100%, 40%);">+HjCLnJRU4Dkg1yMfDgVpSxYjEbTsSX4jWOsdqgK2kgTuQlpZdMUf/vNbJ9xSVm9J</span><br><span style="color: hsl(120, 100%, 40%);">+k5VIKcLSYGcvqnhwdU26yQKCAQEA8voBXeuCRmvYTL472H/3+XbE5/ZeTtYfSGJp</span><br><span style="color: hsl(120, 100%, 40%);">+vt7QVEQrU3M9voCE0BNc9O1PyxkK1NAByshVXBzmYhHidR+mDLL2AwjCAMH/nMWs</span><br><span style="color: hsl(120, 100%, 40%);">+DS1ibKgwJHq7EFcKRIFnN15wlSnndFxemISRRfuPNvGSeSxNkdu1v0CGDhY+pYMb</span><br><span style="color: hsl(120, 100%, 40%);">+BRstfozfAELXWgOyCz55EIK0gVX/2CIQcC8crsCHKgfVnmQhyy9BDrqNuUbbsSz5</span><br><span style="color: hsl(120, 100%, 40%);">+iuVYOC4wq9YX6cAHocITdT4DDn4n5OJ8HRLWv2yIBng2L8yHQoqx7pHRWSxTZRk6</span><br><span style="color: hsl(120, 100%, 40%);">+LUrS6TkkDNayqMEAuzYbBTkgpKdQvofX2FwvTqlTg5lwEsAY1QKCAQEA0MJRPfCc</span><br><span style="color: hsl(120, 100%, 40%);">+FpBS3BuTjXtXGkiQGjjpwyjx2Nf8mPSpZGOblRiZE2TBUkk/hW6CcmA443PDXouh</span><br><span style="color: hsl(120, 100%, 40%);">+NZqTLTqxEdk9PPH1y40f47CFjsOpuHtoMTYzJpnRfB/cPnpA6gwWTJibf8B8VC+R</span><br><span style="color: hsl(120, 100%, 40%);">+Uo8lekTqU6rjF5Q4BiwKbRCczbbZe+Kh0k+Ype0lSVynupRSznPSlrZqGOJy4Dz8</span><br><span style="color: hsl(120, 100%, 40%);">+UEHG2x0O3Ps07cNkH/bguJp7B0sWSD/vIjhfeiGZri09cAbWpKOHytFGiXAlXiDV</span><br><span style="color: hsl(120, 100%, 40%);">+iOregQ/NrLpNyZr8Lgb1Az15grwI6lu27Us1wXS1jxTkoSU2bV7IWMBCluLtcAjs</span><br><span style="color: hsl(120, 100%, 40%);">+fnng0qW8aawi3wKCAQB72g/kTe3D86j3xWg//UrrcC0CiESeLusXPILmdjD/Ixhq</span><br><span style="color: hsl(120, 100%, 40%);">+my13846/eX9Cocywm/03aSfgs6k/IMQWbUNfrFg51OctuMMbG8gto10GAoJPHJQd</span><br><span style="color: hsl(120, 100%, 40%);">+pCnCNHvZW5S/VnZQsmF2oLbfS4O5hncD7LNa7MhFdxb3e+5ZM+GPAHs/aRERlsD9</span><br><span style="color: hsl(120, 100%, 40%);">+IxUenw+cR6XyUo2r96hIBWUXqgwWz7CWLhQnfqbzKQ0ictlW/dVyRJiWwjzrti+9</span><br><span style="color: hsl(120, 100%, 40%);">+B4586hN50rGUa52nP4saUpAtSbMJNEtJ8PC+AKVZt9Tm5JEvwTZpLCjJeYB0vVmw</span><br><span style="color: hsl(120, 100%, 40%);">+6ad7+ZVj2DqBuRL4mwi/dgMCGEtM72bQh9/mzuBZAoIBAQDCDI6mK917n+ZV0ZBj</span><br><span style="color: hsl(120, 100%, 40%);">+yE3cEa1ZoqOwlIPSlFqp92rp9Sku+3F3NIX7LjlMl7/L/6OB0h696L8Oa8P5HABy</span><br><span style="color: hsl(120, 100%, 40%);">+XePtneBjuKf25yQO49QEtznP3NjJPdwbLCZ3MP7cUCX+RzDsHIm1W44TFxq4QA0t</span><br><span style="color: hsl(120, 100%, 40%);">+fsCfL1iwbAm4/eMz2Y7p+G2BaBm1yu2I9wa2iZ87ZzBOhfuza/Nqe2XyWGI3VRh2</span><br><span style="color: hsl(120, 100%, 40%);">+00+M375XdA3Jq1dHHUX2HO/1eD9P8KHA5S6hzsmAur3ECqotoUAq8gxrvB7eC0md</span><br><span style="color: hsl(120, 100%, 40%);">+EIS0LUvSoQbpXyBvJMiIyH4Or4WlcQ4/lSU8obGpEpza2sRLK1+Yb8Mdgb85L3Qn</span><br><span style="color: hsl(120, 100%, 40%);">+KiozAoIBAQDBNOutkl/upvV1kLbpDClsHxyP3Vr2qRNdlnWJqdRCvFgbkg6ndw1R</span><br><span style="color: hsl(120, 100%, 40%);">+6hYTIrgkXv1VCyuM2w9MF8PpEoY3zwli+to9ZYQ36a8WC0zhM1+lpGhimggmMVsp</span><br><span style="color: hsl(120, 100%, 40%);">+YNg90PPuAYHUxgujdvnaAE6VSTPtxxXwWJZjEMCSgHbMu958SKPif07plqXXCTcT</span><br><span style="color: hsl(120, 100%, 40%);">+rvqSvy4QGwTlv/HGO9O31grgMs45y8mjq+tuPbzcZt9urQFNj1uOBtMY3LcvHkjr</span><br><span style="color: hsl(120, 100%, 40%);">+nnEXRSZD2Lraan+3FDXs2Xf59u8Wi7HndgkbLPlnJEBsAmNkcC3LCFM4hnhGfH+/</span><br><span style="color: hsl(120, 100%, 40%);">+81UVKjU7qX1CNZXjtM1AQMTEt68ZLtxI</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PRIVATE KEY-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt</span><br><span>new file mode 100644</span><br><span>index 0000000..066f246</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt</span><br><span>@@ -0,0 +1,30 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIFFzCCAv+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET</span><br><span style="color: hsl(120, 100%, 40%);">+MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ</span><br><span style="color: hsl(120, 100%, 40%);">+dHkgTHRkMRwwGgYDVQQDDBNBc3RlcmlzayBQcml2YXRlIENBMCAXDTIyMDUyNjIx</span><br><span style="color: hsl(120, 100%, 40%);">+MTYwMloYDzQ3NjAwNDIxMjExNjAyWjAbMQswCQYDVQQGEwJVUzEMMAoGA1UEAwwD</span><br><span style="color: hsl(120, 100%, 40%);">+dWFzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwdFyJYpoBrEtf079</span><br><span style="color: hsl(120, 100%, 40%);">+OoE575WaCLCFEtr9xkAGhOkAhRrox3k370G/yznU997IjbQ0b3M5GCt9GITagMhY</span><br><span style="color: hsl(120, 100%, 40%);">+48z6xQi1vb1kZfAq60j8JflyqU1S1c1O5GoTOO8r1ragGExbxlNucxeeLUtu5l7h</span><br><span style="color: hsl(120, 100%, 40%);">+OILqiLgWr6T3e/nnziUO1KGiBJm5bawP6iS8STkmNeMPP6y70542EZG4Gd4cNPtT</span><br><span style="color: hsl(120, 100%, 40%);">+zuqhi12PzlxCecb3I5Znn/vyt2l0ClJaJ/F7nHpE6A9bvoW3uMlAHLmEsAKSNhNE</span><br><span style="color: hsl(120, 100%, 40%);">+aDjnSIHrPS88ifpTOWPDTKkZ80QmWtvpi1dkgxu2Qev5bTrwtWyVKaQCb8Wjwy8F</span><br><span style="color: hsl(120, 100%, 40%);">+pvtiPuZftTA143jFkW7NQrbik0A8FPKbN8lnLpN8eX+sExANLIbiMwh2JGFk9J1/</span><br><span style="color: hsl(120, 100%, 40%);">+FgB4+esGXb4abJqGuS4Dg7HQoNiayTViz16K06HuSLF8Feah3buphVgXePoMxHlQ</span><br><span style="color: hsl(120, 100%, 40%);">+riCGRD5zgbaMULGrelCKUtmOaLXarlJwGX0Ovl9FiSKCaPWxreT+EDGLUfyzbNfS</span><br><span style="color: hsl(120, 100%, 40%);">+UE4Z4QjEM57tO+UsKACvZXbM1kzOc6j6+yzUC0UEkzTuULVsKXze8NQQU2zseOyr</span><br><span style="color: hsl(120, 100%, 40%);">+A2EqOMRI7GiuN6N3fbndQfr64Y66c3RjHp1QDtDu5NvQT7o8DomJ//ddbCiiTUHp</span><br><span style="color: hsl(120, 100%, 40%);">+G2gTLSmwa+lfvjTeZfKZp/5cVvMCAwEAAaMcMBowGAYDVR0RBBEwD4INKi5leGFt</span><br><span style="color: hsl(120, 100%, 40%);">+cGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAD3K0V5CcS9OUCYnry97rJg9MaoG4</span><br><span style="color: hsl(120, 100%, 40%);">+w2pImUSBzqTXkDmp8doXU8kyXhML+noyy0C0vFYhyZNiVUoeekF8WRiTtT0ebRc5</span><br><span style="color: hsl(120, 100%, 40%);">+lYKoNdebjpi8rl4RD5Um9tM2Vsic8D2H0Mk2r8CZWyXi3Y/huY8shNlGbmRMv+0p</span><br><span style="color: hsl(120, 100%, 40%);">+2OwRcMUN2vxlfBm9sc4QL3dCaEy2GzNVmndjnh1W2sUGY66axTcNTYJyMT8TJ3/h</span><br><span style="color: hsl(120, 100%, 40%);">+TyEO2g1WpAcmWhQTa43lRrxqp3wQj2XyLJk+RvYiNiwymOh24feecfu9fIX9UMpN</span><br><span style="color: hsl(120, 100%, 40%);">+kLNOvLtwJESD9Ls60KfXA76etlV2MZ47JcciNGdf0YBJ0G+PeNDo7i39nkszThEi</span><br><span style="color: hsl(120, 100%, 40%);">+xn56jc/3X91Hv/H5NcummaWfDkSv33rP/78NAm8NvmPU7/bXxKqJ6bBzmJuR8aBy</span><br><span style="color: hsl(120, 100%, 40%);">+HQiAa3lEe5SkLW3I/ylJ1dqaJB4MMiY3a/6xPkBkkbxc1rgj4jkxI9V6pAkmQZhN</span><br><span style="color: hsl(120, 100%, 40%);">+g5bPwCU2dwXGmdWPWQ9uy6IhKiCVVL/2E5tKetOxjSfTjrwBHaDv7EY4Lvb3eXO0</span><br><span style="color: hsl(120, 100%, 40%);">+5MAr4T/wYV7awgdJYRVDOG+2pttECmn5gV073kMcky6/VBhwSXA+1SPjBbh4/nz4</span><br><span style="color: hsl(120, 100%, 40%);">+77VTEFOF9Pl/+YBTvIbAj3sV5VwNQe3jsi0JJeP798oTs8IWUun1Eze+MChb1uSp</span><br><span style="color: hsl(120, 100%, 40%);">+taMVUQOaz8YzND0=</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.csr b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.csr</span><br><span>new file mode 100644</span><br><span>index 0000000..7f50120</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.csr</span><br><span>@@ -0,0 +1,26 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN CERTIFICATE REQUEST-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIEYDCCAkgCAQAwGzELMAkGA1UEBhMCVVMxDDAKBgNVBAMMA3VhczCCAiIwDQYJ</span><br><span style="color: hsl(120, 100%, 40%);">+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMHRciWKaAaxLX9O/TqBOe+VmgiwhRLa</span><br><span style="color: hsl(120, 100%, 40%);">+/cZABoTpAIUa6Md5N+9Bv8s51PfeyI20NG9zORgrfRiE2oDIWOPM+sUItb29ZGXw</span><br><span style="color: hsl(120, 100%, 40%);">+KutI/CX5cqlNUtXNTuRqEzjvK9a2oBhMW8ZTbnMXni1LbuZe4TiC6oi4Fq+k93v5</span><br><span style="color: hsl(120, 100%, 40%);">+584lDtShogSZuW2sD+okvEk5JjXjDz+su9OeNhGRuBneHDT7U87qoYtdj85cQnnG</span><br><span style="color: hsl(120, 100%, 40%);">+9yOWZ5/78rdpdApSWifxe5x6ROgPW76Ft7jJQBy5hLACkjYTRGg450iB6z0vPIn6</span><br><span style="color: hsl(120, 100%, 40%);">+Uzljw0ypGfNEJlrb6YtXZIMbtkHr+W068LVslSmkAm/Fo8MvBab7Yj7mX7UwNeN4</span><br><span style="color: hsl(120, 100%, 40%);">+xZFuzUK24pNAPBTymzfJZy6TfHl/rBMQDSyG4jMIdiRhZPSdfxYAePnrBl2+Gmya</span><br><span style="color: hsl(120, 100%, 40%);">+hrkuA4Ox0KDYmsk1Ys9eitOh7kixfBXmod27qYVYF3j6DMR5UK4ghkQ+c4G2jFCx</span><br><span style="color: hsl(120, 100%, 40%);">+q3pQilLZjmi12q5ScBl9Dr5fRYkigmj1sa3k/hAxi1H8s2zX0lBOGeEIxDOe7Tvl</span><br><span style="color: hsl(120, 100%, 40%);">+LCgAr2V2zNZMznOo+vss1AtFBJM07lC1bCl83vDUEFNs7HjsqwNhKjjESOxorjej</span><br><span style="color: hsl(120, 100%, 40%);">+d3253UH6+uGOunN0Yx6dUA7Q7uTb0E+6PA6Jif/3XWwook1B6RtoEy0psGvpX740</span><br><span style="color: hsl(120, 100%, 40%);">+3mXymaf+XFbzAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAvjUpuCVF1cW2jlaG</span><br><span style="color: hsl(120, 100%, 40%);">+aSsQTt780Okgh4VkcUEaICn3BtWTbfIgxpPwGJhEYq+zcsRlGcngJ48Q0CB8+L2U</span><br><span style="color: hsl(120, 100%, 40%);">+XcxIaPXQrA9ye0uuUCsLLs2vQqgVA0fv5ne6nuzNPixYozVM3A4Pncm/SXZmXHqy</span><br><span style="color: hsl(120, 100%, 40%);">+1Jk8bIWZNZBzK9BByILafHi6IUHVRnrH5lcyB+kqSIYtPsnbMlj/1Gv3Gxly9vJB</span><br><span style="color: hsl(120, 100%, 40%);">+RtiRdwkpUAJcdS9uONPHLdMozIJnOyJja++yPHlvjKRQk4HBWK1EvDU8XOKZl45p</span><br><span style="color: hsl(120, 100%, 40%);">+FKaGsYQBMpJiIla5Fsu8S1+OU38GVWsRuCQSCQhOCu7AUm238KywgB7gRiuaybia</span><br><span style="color: hsl(120, 100%, 40%);">+jjdJqjFZ/nV2Oq1B+2Pkb5Xi4h2X6w+BvUFcbFwNJq2nHXVibRmIARVvU6WZAQP5</span><br><span style="color: hsl(120, 100%, 40%);">+JXjPn4ZFHTYn+0ejz+gNVon6Fan7gjFV20blmHjpfwvGA/Qdcq1b+25d4LJne5yh</span><br><span style="color: hsl(120, 100%, 40%);">+SWYd8wYQrrBwD4f8xW0Sl8DLt0yHVAzuIci9ibUrLd5vQUoyuObLwAtgLtiLLBcs</span><br><span style="color: hsl(120, 100%, 40%);">+slIoEA7qmvE3qtP1oPsKm4H9Mbka9rFFmLyHSjoXMZ+Zk8V1TuzcBhGZy74mVY2A</span><br><span style="color: hsl(120, 100%, 40%);">+656b446wK0GhNFRR99G0zy6NvExoldzsq2sWHNPGvgdMqI7/Kreb3QRRiq6sS7wt</span><br><span style="color: hsl(120, 100%, 40%);">+0AX329y/kKon3JtxsfJSVxRekZ8=</span><br><span style="color: hsl(120, 100%, 40%);">+-----END CERTIFICATE REQUEST-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key</span><br><span>new file mode 100644</span><br><span>index 0000000..01f60b4</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key</span><br><span>@@ -0,0 +1,52 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PRIVATE KEY-----</span><br><span style="color: hsl(120, 100%, 40%);">+MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDB0XIlimgGsS1/</span><br><span style="color: hsl(120, 100%, 40%);">+Tv06gTnvlZoIsIUS2v3GQAaE6QCFGujHeTfvQb/LOdT33siNtDRvczkYK30YhNqA</span><br><span style="color: hsl(120, 100%, 40%);">+yFjjzPrFCLW9vWRl8CrrSPwl+XKpTVLVzU7kahM47yvWtqAYTFvGU25zF54tS27m</span><br><span style="color: hsl(120, 100%, 40%);">+XuE4guqIuBavpPd7+efOJQ7UoaIEmbltrA/qJLxJOSY14w8/rLvTnjYRkbgZ3hw0</span><br><span style="color: hsl(120, 100%, 40%);">++1PO6qGLXY/OXEJ5xvcjlmef+/K3aXQKUlon8XucekToD1u+hbe4yUAcuYSwApI2</span><br><span style="color: hsl(120, 100%, 40%);">+E0RoOOdIges9LzyJ+lM5Y8NMqRnzRCZa2+mLV2SDG7ZB6/ltOvC1bJUppAJvxaPD</span><br><span style="color: hsl(120, 100%, 40%);">+LwWm+2I+5l+1MDXjeMWRbs1CtuKTQDwU8ps3yWcuk3x5f6wTEA0shuIzCHYkYWT0</span><br><span style="color: hsl(120, 100%, 40%);">+nX8WAHj56wZdvhpsmoa5LgODsdCg2JrJNWLPXorToe5IsXwV5qHdu6mFWBd4+gzE</span><br><span style="color: hsl(120, 100%, 40%);">+eVCuIIZEPnOBtoxQsat6UIpS2Y5otdquUnAZfQ6+X0WJIoJo9bGt5P4QMYtR/LNs</span><br><span style="color: hsl(120, 100%, 40%);">+19JQThnhCMQznu075SwoAK9ldszWTM5zqPr7LNQLRQSTNO5QtWwpfN7w1BBTbOx4</span><br><span style="color: hsl(120, 100%, 40%);">+7KsDYSo4xEjsaK43o3d9ud1B+vrhjrpzdGMenVAO0O7k29BPujwOiYn/911sKKJN</span><br><span style="color: hsl(120, 100%, 40%);">+QekbaBMtKbBr6V++NN5l8pmn/lxW8wIDAQABAoICAA1jWV4sfFkR/hGQND/JU2Yw</span><br><span style="color: hsl(120, 100%, 40%);">+UE6PWvHdfLAoFgsySR3oqPG2dt2pDgWMviBNHE9lhkW4kNYRkveRncJNlI5Px3a6</span><br><span style="color: hsl(120, 100%, 40%);">+zksH/Rpph51vEjPRUlFNjQ5Fu1Bd32wMYVvYi6CCDcjaVIPQutVoI4X4Qdh0epzt</span><br><span style="color: hsl(120, 100%, 40%);">+EmwZmhrPPWro9mhLrfRhZgSkYQkMdpEcSH5qa9A7L1JD2HpINY5b4Fjsj3J4lKYa</span><br><span style="color: hsl(120, 100%, 40%);">+1Wcsyk69Jq8noYrUjYSL3T8lRyMBNEevzni1LuIvPGygQjR5wCekVdM0a4JDg/5n</span><br><span style="color: hsl(120, 100%, 40%);">+Mwer7qOdTghl0sTF3YwHRhr6m9xLMh84V9Of6D/aVWxCzt7sfFqaLWC7K8nIDZYp</span><br><span style="color: hsl(120, 100%, 40%);">+5A0LcPTTCmrxjjXclWmj719TQMpIsX1zudHYTKYvAPifHJDOk4bcRv/cGauBpXxF</span><br><span style="color: hsl(120, 100%, 40%);">+grvn4jn/FD2zfrZMHv5aH7p6fn5A4HucB29Y9OIAv52GpOrMntDDvOelKBKhfz3L</span><br><span style="color: hsl(120, 100%, 40%);">+pm/CFzye3DTCsERcBDcQdeV8m0AxlX4fyb/IoxISlmGceUqvwXvF57k5PLWbMXyr</span><br><span style="color: hsl(120, 100%, 40%);">+kH9qWvfXvN1UhbFVL//oyzyDcdxvDeKuSKJq2ODHcs8vLmNeYjYSR31hfY9YyOkC</span><br><span style="color: hsl(120, 100%, 40%);">+HpH5SXLYl1CwpzYoV0FcQzgAB3L17pRuQeBfenMXWKfh+ddd/KdGhi0H2nuiJM9P</span><br><span style="color: hsl(120, 100%, 40%);">+uduNsPuWh5DC1VnZLuFZAoIBAQDrKlXLnfdUPwrkc3eqZLrrdbCxRA4kfNQgfJ9r</span><br><span style="color: hsl(120, 100%, 40%);">+sU5sYGUaVtXyRIO4JfL6IxtD3TSAibvchx7XO4F+xvXfXX+Iiy4WaPDYpEaoYrXY</span><br><span style="color: hsl(120, 100%, 40%);">+tgRyGKCh6OxqU8hArkIIp3k3S/3sKen94GRet9pxfUECWs+Lx5a4T+BCCVpMX/5W</span><br><span style="color: hsl(120, 100%, 40%);">+WH7/n99TEq8t4CpFwM8nznazJ6G1gXFghx4nBOmSH2V3iuNHWRzGATbaTPbkMmB0</span><br><span style="color: hsl(120, 100%, 40%);">+deVnIP7woWhXgfSC5qSKdcMiONaaPImUjdsXqLvc+8W+RnzUDCed2IxnFf9buRFd</span><br><span style="color: hsl(120, 100%, 40%);">+EGbg9NFfZfN5+PB2xi+GSobvi8AJQjRLgMGRFXEr37hEbL0fAoIBAQDS/VXr3Cmr</span><br><span style="color: hsl(120, 100%, 40%);">+NoI+glDM25dy+MM5Il8c3rIlOnYl7zRmpi8TIP+aKWc3wk6KOKh+6dBxf6mX8Lr/</span><br><span style="color: hsl(120, 100%, 40%);">+2FI4oPD2gwzkRdwHACkXTfPPPly06IJZW3l7Gw04i3VQ0+KDrXW9v4uoSUltSo+i</span><br><span style="color: hsl(120, 100%, 40%);">+PnYH0l5WEPxB8NN855J5o6IXxF8tCpoTcx4WQEA2fz4kkb0+lJG8eZQImxciC70d</span><br><span style="color: hsl(120, 100%, 40%);">+vRixAck1EvN8QsRFhTmca3+WL6KUZsv8t0DUMhQ7xijTM5jzfL0k+NwVYASDESRj</span><br><span style="color: hsl(120, 100%, 40%);">+3+A7Uv20VxqBwltDF1Laz+VzYiAZiTGjvXieeptYAxcGxZP59vB/hB7jZ2pd/wjh</span><br><span style="color: hsl(120, 100%, 40%);">+z6tLuYCFBVetAoIBAQDNQcxUxvIDlGr7b1U5YmZL8hNhBdeaPWIhYOT86Gtc6N4W</span><br><span style="color: hsl(120, 100%, 40%);">+GUjwBqE5b9YeQdogZ8jVkGJqX32puwSSFTKx3TfdhC2b3ciqLuiFPHMgTe6fb6N0</span><br><span style="color: hsl(120, 100%, 40%);">+7oq7W5lj6zUzvIlunGNraEIWF29DxRFjEUJWvdB9Xp3NDdrdiLBKDVc/Ikrm7zHL</span><br><span style="color: hsl(120, 100%, 40%);">+nnlMf2YmL94gDnNIeAULGYpOCGFnCUCdC85SguVRdxRINvMboyWzk8zgma67Tu92</span><br><span style="color: hsl(120, 100%, 40%);">+NEuQZZt3Tby8JYFGM3oMcV5cTVy3z8z5WsAEDh4SLvG9Mi+KIocaFfRz2EcTflvo</span><br><span style="color: hsl(120, 100%, 40%);">++mGDSqcH5H/CpPYVy1K4QhLG/AD3k1GOS9zXzFldAoIBAA1kh0+xafO0QhA1tWtL</span><br><span style="color: hsl(120, 100%, 40%);">+hRGHON0nkWIDwMscKuO9i1X4toRAU/k1J5gifVnIvulPbivGLr22SihzUsTFcoYz</span><br><span style="color: hsl(120, 100%, 40%);">+S14yEQVgvTr9d7xv+PKCz8NcSxnFXdF5CLlYucgh+pdQ0UydWkvVr8hcrqFQeSx9</span><br><span style="color: hsl(120, 100%, 40%);">+Z4XIA6SqDmIqQN/BV0lEowMZC4/eBDVxXkBz/885HwcXsI3bSlye4iJBHpAdzOfR</span><br><span style="color: hsl(120, 100%, 40%);">+jCMXGd5P1phXOoIOBAPngotIFpVhmGcy7OR7IfpSsK7oHRA+SAsJy4WLcHBTlEce</span><br><span style="color: hsl(120, 100%, 40%);">+QFB8Rc68bEX3bFkmoWL9kmkSXdWxcqrjh1Kmt/3l7t4pRMyqg9Xzmly7EeR8oevP</span><br><span style="color: hsl(120, 100%, 40%);">+qwECggEBAKcd/7MCTckvX4yRtmnIBHre0lX+ZRyalUTnjVJeI/lIO6WeZXN0yWd/</span><br><span style="color: hsl(120, 100%, 40%);">+FidDta60F84nGnG7r7lKCxBoT+xsEYojeXpIZlJLCm3P+91DO6S38ywo7T+mYyCc</span><br><span style="color: hsl(120, 100%, 40%);">+ejWtv0RubCwdmdc+MaPxYIP4tCeLt5R43pcLC22ZVAtMFtdFkgzgLHWFMQgmlT2a</span><br><span style="color: hsl(120, 100%, 40%);">+HV8kKvlKkByskUxIzthZ6TJHE56mFh5LGrvNzmxP4484wPrAr93Y/Szbl9vZWuNQ</span><br><span style="color: hsl(120, 100%, 40%);">+wgaiQkJTST8aSvUFyJIIViLi8otxsq1nGE5lFhCiCzP8XzCkoComvN71eE+x8CM8</span><br><span style="color: hsl(120, 100%, 40%);">+Rx2Oy//JtAAzcF2LclDAtfkZ6TCmPzg=</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PRIVATE KEY-----</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cacert.pem b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cacert.pem</span><br><span>new file mode 120000</span><br><span>index 0000000..440ae96</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cacert.pem</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../keys/uas.crt</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cakey.pem b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cakey.pem</span><br><span>new file mode 120000</span><br><span>index 0000000..0f76a9b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cakey.pem</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+../keys/uas.key</span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/invite_recv.xml b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/invite_recv.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..2ab846e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/invite_recv.xml</span><br><span>@@ -0,0 +1,74 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive Invite"></span><br><span style="color: hsl(120, 100%, 40%);">+  <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="INVITE"></span><br><span style="color: hsl(120, 100%, 40%);">+    <action></span><br><span style="color: hsl(120, 100%, 40%);">+      <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+            header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+            search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+            check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+            assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+      </action></span><br><span style="color: hsl(120, 100%, 40%);">+  </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      v=0</span><br><span style="color: hsl(120, 100%, 40%);">+      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      s=-</span><br><span style="color: hsl(120, 100%, 40%);">+      c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+      t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+      m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+      a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+    <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+      BYE sips:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+      From: <sips:[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+      To: [$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+      [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+      CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+      Contact: sips:[local_ip]:[local_port]</span><br><span style="color: hsl(120, 100%, 40%);">+      Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+      Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+    ]]></span><br><span style="color: hsl(120, 100%, 40%);">+  </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  <recv response="200" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/test-config.yaml b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..7fc276d</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/test-config.yaml</span><br><span>@@ -0,0 +1,44 @@</span><br><span style="color: hsl(120, 100%, 40%);">+testinfo:</span><br><span style="color: hsl(120, 100%, 40%);">+    summary: 'Test TLS using a certificate with a wildcard SAN'</span><br><span style="color: hsl(120, 100%, 40%);">+    description: |</span><br><span style="color: hsl(120, 100%, 40%);">+        'Originate a call using TLS from Asterisk to a remote endpoint,</span><br><span style="color: hsl(120, 100%, 40%);">+         and verify usage of a wildcard certificate. If the call is</span><br><span style="color: hsl(120, 100%, 40%);">+         successfully established then it worked.'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+        config-section: test-config</span><br><span style="color: hsl(120, 100%, 40%);">+        typename: 'sipp.SIPpTestCase'</span><br><span style="color: hsl(120, 100%, 40%);">+    modules:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: orig-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'pluggable_modules.Originator'</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            config-section: dns-server-config</span><br><span style="color: hsl(120, 100%, 40%);">+            typename: 'dns_server.DNSServer'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+                - { 'key-args': {'scenario': 'invite_recv.xml', '-s': 'uas', '-p': '5062', '-t': 'l1', '-tls_version': '1.2' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+orig-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    channel: 'PJSIP/uas'</span><br><span style="color: hsl(120, 100%, 40%);">+    application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+    async: 'True'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+dns-server-config:</span><br><span style="color: hsl(120, 100%, 40%);">+    port: 10053</span><br><span style="color: hsl(120, 100%, 40%);">+    python-zones:</span><br><span style="color: hsl(120, 100%, 40%);">+        -</span><br><span style="color: hsl(120, 100%, 40%);">+            example.com</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+    dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip_session'</span><br><span style="color: hsl(120, 100%, 40%);">+        - asterisk : 'res_pjsip_sips_contact'</span><br><span style="color: hsl(120, 100%, 40%);">+    tags:</span><br><span style="color: hsl(120, 100%, 40%);">+        - pjsip</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/tests.yaml b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/tests.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..dae04ee</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/tests.yaml</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+tests:</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'cn'</span><br><span style="color: hsl(120, 100%, 40%);">+    - test: 'san'</span><br><span>diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml b/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml</span><br><span>index 1243cfb..0e5cdaa 100644</span><br><span>--- a/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml</span><br><span>@@ -1,5 +1,6 @@</span><br><span> tests:</span><br><span>     - test: 'all_ciphers_verify_certs'</span><br><span style="color: hsl(120, 100%, 40%);">+    - dir: 'allow_wildcard_certs'</span><br><span>     - test: 'limited_ciphers_verify_certs'</span><br><span>     - test: 'two_CAs_verify_certs'</span><br><span>     - test: 'two_CAs_no_verify_certs'</span><br><span></span><br></pre><div style="white-space:pre-wrap"></div><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/18662">change 18662</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/testsuite/+/18662"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: certified/18.9 </div>
<div style="display:none"> Gerrit-Change-Id: I2d4cf66b642ccf97a6b275e1425c0cbfad5eb0ab </div>
<div style="display:none"> Gerrit-Change-Number: 18662 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>