[Asterisk-code-review] pjsip: Add tests that verify wildcard cert-bearing servers (testsuite[19])

Kevin Harwell asteriskteam at digium.com
Wed Jun 8 18:34:42 CDT 2022


Kevin Harwell has uploaded this change for review. ( https://gerrit.asterisk.org/c/testsuite/+/18652 )


Change subject: pjsip: Add tests that verify wildcard cert-bearing servers
......................................................................

pjsip: Add tests that verify wildcard cert-bearing servers

This patch adds two new tests that verify the use of wildcard certs
when found in the common name (CN), or subject alt name (SAN). Note,
certificates set to expire in a few thousand years.

Also, made it so SIPp's working directory is <test_dir>/sipp. This
makes is so the certificate files are easily found when using TLS.

ASTERISK-30072

Change-Id: I2d4cf66b642ccf97a6b275e1425c0cbfad5eb0ab
---
M lib/python/asterisk/sipp.py
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/ca.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/extensions.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjsip.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/resolver_unbound.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/dns_zones/example.com
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/README.txt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.csr
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.csr
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cacert.pem
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cakey.pem
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/invite_recv.xml
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/test-config.yaml
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/ca.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/extensions.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjsip.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/resolver_unbound.conf
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/dns_zones/example.com
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/README.txt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.csr
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.csr
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cacert.pem
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cakey.pem
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/invite_recv.xml
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/test-config.yaml
A tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/tests.yaml
M tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml
45 files changed, 1,017 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/testsuite refs/changes/52/18652/1

diff --git a/lib/python/asterisk/sipp.py b/lib/python/asterisk/sipp.py
index 498bf19..41a50c8 100644
--- a/lib/python/asterisk/sipp.py
+++ b/lib/python/asterisk/sipp.py
@@ -646,7 +646,7 @@
         sipp_args = [
             self.sipp, self.target,
             '-sf',
-            '%s/sipp/%s' % (self.test_dir, self.scenario['scenario']),
+            '%s' % (self.scenario['scenario']),
             '-nostdin',
             '-skip_rlimit',
         ]
@@ -719,7 +719,7 @@
                              sipp_args[0],
                              sipp_args,
                              {"TERM": "vt100", },
-                             None,
+                             "{0}/sipp".format(self.test_dir),
                              None)
         return self._our_exit_deferred
 
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
new file mode 120000
index 0000000..1d16722
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/ca.crt
@@ -0,0 +1 @@
+../../keys/ca.crt
\ No newline at end of file
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
new file mode 100644
index 0000000..ab109a1
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/extensions.conf
@@ -0,0 +1 @@
+[default]
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
new file mode 100644
index 0000000..f7b8e9b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf
@@ -0,0 +1,10 @@
+[log_mappings]
+type = log_mappings
+asterisk_error = 0,1
+asterisk_warning = 2
+asterisk_verbose = 3
+asterisk_debug = 4,5,6
+
+[startup]
+type = startup
+log_level = 3
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
new file mode 100644
index 0000000..1389f8d
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjsip.conf
@@ -0,0 +1,24 @@
+[global]
+type=global
+debug=yes
+
+[transport-tls]
+type=transport
+protocol=tls
+bind=127.0.0.1:5061
+method=tlsv1_2
+priv_key_file=<<astetcdir>>/uac.key
+cert_file=<<astetcdir>>/uac.crt
+ca_list_file=<<astetcdir>>/ca.crt
+verify_server=yes
+allow_wildcard_certs=yes
+
+[uas]
+type=aor
+contact=sips:uas.example.com:5062\;transport=tls
+
+[uas]
+type=endpoint
+direct_media=no
+allow=!all,ulaw
+aors=uas
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
new file mode 100644
index 0000000..38ef153
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/resolver_unbound.conf
@@ -0,0 +1,3 @@
+[general]
+nameserver = 127.0.0.1 at 10053
+resolv =
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
new file mode 120000
index 0000000..9ada8f1
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.crt
@@ -0,0 +1 @@
+../../keys/uac.crt
\ No newline at end of file
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
new file mode 120000
index 0000000..f141b2b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/uac.key
@@ -0,0 +1 @@
+../../keys/uac.key
\ No newline at end of file
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
new file mode 100644
index 0000000..79a9c6e
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/dns_zones/example.com
@@ -0,0 +1,29 @@
+zone = [
+    SOA(
+        # For whom we are the authority
+        'example.com',
+
+        # This nameserver's name
+        mname = "ns1.example.com",
+
+        # Mailbox of individual who handles this
+        rname = "root.example.com",
+
+        # Unique serial identifying this SOA data
+        serial = 2003010601,
+
+        # Time interval before zone should be refreshed
+        refresh = "1H",
+
+        # Interval before failed refresh should be retried
+        retry = "1H",
+
+        # Upper limit on time interval before expiry
+        expire = "1H",
+
+        # Minimum TTL
+        minimum = "1H"
+    ),
+
+    A('uas.example.com', '127.0.0.1'),
+]
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
new file mode 100644
index 0000000..efda3af
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/README.txt
@@ -0,0 +1,16 @@
+# certs generated using the following commands:
+
+# create CA
+openssl req -x509 -days 999999 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt
+
+# create server key and signing request
+openssl req -newkey rsa:4096 -nodes -keyout uas.key -out uas.csr -subj="/C=US/CN=*.example.com"
+
+# create server certificate
+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uas.csr -set_serial 01 -req -out uas.crt
+
+# create client key and signing request
+openssl req -newkey rsa:4096 -nodes -keyout uac.key -out uac.csr -subj="/C=US/CN=uac.example.com"
+
+# create server certificate
+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uac.csr -set_serial 01 -req -out uac.crt
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
new file mode 100644
index 0000000..d8e1623
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFqTCCA5GgAwIBAgIUPbF8KgcAQ7eE5SZCoVRwJjBJz50wDQYJKoZIhvcNAQEL
+BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJp
+dmF0ZSBDQTAgFw0yMjA1MjYyMTE4MDNaGA80NzYwMDQyMTIxMTgwM1owYzELMAkG
+A1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
+IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALqF1vN99YnC3hGgWh6AnMBY
+x88FcBeT/ocdw6NRzsVgPd4V/JP9lpKsyGznbV62rjMeEY/YzkmmzBztZlB8NRwh
+7L6J3fVtoPH5BPQxOq7MvNeABWVZnPYhTUw45fDgb9fn/B0klF+E6qjeGMSYr5Vr
+pCTEpqGzA5QveXezzJXq3K2wb2/ygED+H58L5V4NfDeTZNYPlqyvfIskRbjZ/QbR
+8xcis78CCmQZ4WNoNyMg2tT1NZhcjwz79KY2dEWnvDUuCrGGxjjUr9iucrGAzNCF
+f5fCuz6agDQzXA61Pc3aVDM8vf0sXu/FRA7lVg1NzeMDJqDupFxdK1U4DfqtYPBe
+ojBH9qeOm+WEto/Em2dYZ5ocFG+TciTFI+qOXzDSL76lSDVExgoKPXjJg8+LC/a0
+xUOo9Bhfnd5PM3ard/BcnXMp9oPpc8FWXJE2dfkwyWMcx6GNXdN/Ea82EYbUtkYj
+SVCk3ZiQLaZSbGNE1UxYyxmtcTruMhVC/Dgic3ycyB5MEfAfL0EhVsdltk5TTzND
+t40c/cM+7EqJL0ohBqT222WJjeqCgP4Fusaek1Uw+DYfEe/WuT3g2oNn44XxnxkB
+KHpWj37JjUTc6obvYKWIspcv73P8WnQpI3Pl+j3ywmRSryn4OzXU5H2nPCH+sJ7H
+TiVMqu9ZpeKtMiGskXkBAgMBAAGjUzBRMB0GA1UdDgQWBBTgac3DMlhShY4nmPyW
+FJTEbHeWTzAfBgNVHSMEGDAWgBTgac3DMlhShY4nmPyWFJTEbHeWTzAPBgNVHRMB
+Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCeU36NutIrWJtZVsABXj4uXlzn
+6XNAFlSRAP7RvAnYEMpaiD3xI4GV78K27vMvIwEZYszWS0Cfu/JMfr21lJ5Lm1qv
+yhhtsYvFP7rqRUbjHp26LwVGzuAAwl52OyUxyAasNRoSY+pyRbQoo87xn4wlxf2j
+IHmyt06ToNQ+FKsLKgSHH1EgqaH+D/wS8CESNXcd4YHDZQ5EG7sXEwxmJuRMbW+R
+RIsNBaD6eM8a/CWd8nrhJnYDNRippXwQruqSw6/1rzVYSC5tvhGD7ExlB3r3WdqJ
+MO1imnZlrMAKhkqKTRB49YW5rpRqUJc9qzs0QlS4aZac+H0IFADcpPFIxTO32jaf
+j40zn7tRPtH1gtaXfVe/mUSXRYTRhkOILANpNneCtssrIYDbTT2lquIUV9yE15j1
+YwEIxNjKgkbxT7xOtRR8QUQ8MROPk6mvmBT65BhgKc4M1fqnMlERxJEDyAolgzNV
+QY/3JzGch9KSl0qcdIBdxX6yDTeZPutA58zvNcJQJeHqf05r5uuOf/SRQvs6GHOT
+tb8s9VH4G0/ivkShbT9M6q8lrM5qqnlaRYYf84isViIw/aKDkKbxO4CiiOaf7R7B
+zG+Fir5XZJMBcXyWM90xj8ZHVMKPWvz+u9uolkigyXTaBhYU0c2Z2D+KIyoguyYa
+7TmhpJHLNG6/R6TQZg==
+-----END CERTIFICATE-----
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
new file mode 100644
index 0000000..4861a06
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
++KIlKmq1Cj0jtPyslfjHh8I0R2Ul
+-----END PRIVATE KEY-----
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
new file mode 100644
index 0000000..8d6d6e8
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFADCCAugCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV
+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAgFw0yMjA1MjYyMTE4MjRa
+GA80NzYwMDQyMTIxMTgyNFowJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5l
+eGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANIl+uxl
+HWFPaQHWpllg8LWgqDLorNPhc0lgvzklbpwqvSFnyLHEeJwMGt1FwF/sRDzwgVdM
+dfmXaxI8A8z9q0tLedNFPstFPoAzdIdmdYH5xifts4qpkqnT841q0U/fYsOJhz8z
+SsepcR4XPjQP7HLqa4t28iyfo91sFZvLbpe1FJ088HRkkeW3bUOvCO15yAK63f6M
+7bKOt+HoY6J8ztGwsT8GTIH8ypdkYO0mQyA97l5n2z57OmY1HV/30zzYqsfW5JO0
+ZPPmacSHyNBAjVaYhZ7+ezcvHpbTRmWYLQE2BKT7G+GLOLMVHJXhswX+l3gGxv+i
+BJ9si8BJbGS+plNZuEHysgvhPzNyLsuDbBqQ01cRuN7aHqYvqXoCZkdDB8lbzNg1
+cjHZy2F1n4FKOEsgYirHfwJRDbxJc7VuMF/Q36SWU6VbnN41yrEh5pkTqTefR97H
+5cQcMWeV+KHpB34A5M5dHSTTXiTB7cmeKahulN7cpBhvLq5PTRC+EAwo38A4tOed
+TD2Tyvba3apiv2qqtq8pSp9BxOxRTb4TKvDC1MDsb2RzK9YgjrmPrs3+eiZM2IX8
+wWXQJ5nDIe5v9gRk7TXbAPy9dYaYGMeThMbyQw8BVOK3rmE4DwCHgI6EQU1peX2A
+CjtDEDnfmma9C97jf9tDbBpK60JjrpVY7W1TAgMBAAEwDQYJKoZIhvcNAQELBQAD
+ggIBAAmokehtxN6WkeaAFiU+BslN+ZBD99yGC+X4qnhnX2kR8jK50fjX74y14oyh
+FPWBC6iZWlpiaoSXOmyKBPfMd+Bz1g4AtVgag27m96A0onOHLABDMvrOFPqqKzjg
+uM5Yjh3VoyEGBN9KKwytKZI8gsb3/UZJGEBDHyJLX8DlTuV6GbR/9567URi+NOZ0
+da9oh4nVa4m70BNQz4qPev2dYlTIH7ZlrYRWkdx/3zf7bweuGfDIpl9Lt91kkahp
++OyMXv+mAEJ6WMyNCBl+JoplSeX7UftwHM8C3aGwTNG6y5b3LrR2HqyFcr+f18PD
+tB4UaYJu4KGKaWsx+aOd1H/tGPbXqaI79WEHXX9wfx7cBrbjtTruUT89Tu74nRg5
+ftyjRb1/XKMOcAkrHWbIwbbGBXNcELjiRW3Cf9LeWM1formFpidML7u62DxqLLR4
+m0pLr1Uv6CoCLsH29YdZ9Dxi+MtXqNrZRo5IXIeiUZC21qZt2OaZqoljABllU8Rg
+GJ0kWlIY6v3wQTYhHLDViLNk52mKUL9Epn/hXojDlIZIZ4dYXvnXTf1IpRa/xBPw
+msSyJMJ5Z4neS/VmpCKGBz3Oz/UUqz5nhrh8OhZZrTpwph+GWFR6PA8fj3s8sCIs
+2r2K+sW8lrrHIDn92qOEp0GEvPABFAY2IY8cyk2kNKTMtSOd
+-----END CERTIFICATE-----
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
new file mode 100644
index 0000000..963c63b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.csr
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIEbDCCAlQCAQAwJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5leGFtcGxl
+LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANIl+uxlHWFPaQHW
+pllg8LWgqDLorNPhc0lgvzklbpwqvSFnyLHEeJwMGt1FwF/sRDzwgVdMdfmXaxI8
+A8z9q0tLedNFPstFPoAzdIdmdYH5xifts4qpkqnT841q0U/fYsOJhz8zSsepcR4X
+PjQP7HLqa4t28iyfo91sFZvLbpe1FJ088HRkkeW3bUOvCO15yAK63f6M7bKOt+Ho
+Y6J8ztGwsT8GTIH8ypdkYO0mQyA97l5n2z57OmY1HV/30zzYqsfW5JO0ZPPmacSH
+yNBAjVaYhZ7+ezcvHpbTRmWYLQE2BKT7G+GLOLMVHJXhswX+l3gGxv+iBJ9si8BJ
+bGS+plNZuEHysgvhPzNyLsuDbBqQ01cRuN7aHqYvqXoCZkdDB8lbzNg1cjHZy2F1
+n4FKOEsgYirHfwJRDbxJc7VuMF/Q36SWU6VbnN41yrEh5pkTqTefR97H5cQcMWeV
++KHpB34A5M5dHSTTXiTB7cmeKahulN7cpBhvLq5PTRC+EAwo38A4tOedTD2Tyvba
+3apiv2qqtq8pSp9BxOxRTb4TKvDC1MDsb2RzK9YgjrmPrs3+eiZM2IX8wWXQJ5nD
+Ie5v9gRk7TXbAPy9dYaYGMeThMbyQw8BVOK3rmE4DwCHgI6EQU1peX2ACjtDEDnf
+mma9C97jf9tDbBpK60JjrpVY7W1TAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA
+xxAZYLUqH5umdYBQY3Wy4q1LAhUWl+vVK5Y2RPatckkwkme8VA3IRmRibY4w1/QP
+/NEgtXHFI05RaCafVWf8u31pKpYRn7i+306gLF67MJXS01VdHka7JeLaCe+R/R7A
+TKt3rjzPIQAPeJme4wR81E2ajg2OBx1NrX4/QubVE4NQQHZFNwJtWGsDLYccNb/5
+wddfybE1VP8L96UGo74yUQeQx2cpKv9JsolWewbW8s9u2fbr0EQBgpV+AA1Yd0aa
+ob8sj6njdu2ZD1ZHX5b4xr9Z2iSyy+wtwJjjalznMs4mGCxxTFR6s/BeJGxieUb+
+nSk+JN7WxGjgrnhFmNWZXHdyM4aD+9+IEAvj+Im/WW9bco6DMOLWG5Uz4OMoE/jF
+gnExP4VwI9GXAFaxlKTOEVvKGyF6eHsjTYqn849LOyDXmGj3gFW+pDYfJJv5MAlC
+cArUQwUAasizZMqKzx9q1V1S7Fpo1CF1zMNwpuGH0GGy3uTsxtUU5+mb1sWDwgQv
+4ZSGAj3AORXbB4C1zeS1Ty7Axggruq2CqpCl/2nmo9JPFrcRm708g0eb0JyHZnYp
+wGL0VfCSrYm3I5ay+8BkE5SRqZhkniAEguUmA/aXxdUBhsv8gxdfmyeUPmV6ll+H
+4dJsMSps1akswGLmRCULrdHlb3zDMKXUv1ZF9/y2zTY=
+-----END CERTIFICATE REQUEST-----
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
new file mode 100644
index 0000000..a9b9803
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+Cl32RYPrI2C2WqnxPbr+j2NQDqGDiQU=
+-----END PRIVATE KEY-----
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
new file mode 100644
index 0000000..6de7487
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/jCCAuYCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV
+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAgFw0yMjA1MjYyMTE4MTRa
+GA80NzYwMDQyMTIxMTgxNFowJTELMAkGA1UEBhMCVVMxFjAUBgNVBAMMDSouZXhh
+bXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCg9g9zYtqp
+6AoOUMr4yti0T8RhjOAmXNC+vKtPoU/ZxdvoH75dzIrMKn2AXDkH7X9Dwa5rlX0W
+WDggF3p1BGAVX+wjde/NwJE0i/T5ix0zsLJsFYpfbIkOGTyoenw7lHqLHc6JzQL5
+DADvb0GaytElEbhRjAF4lpheXVuMb/sybT3wVAouzZZGR74djPvc72gGtbKsitZH
+BGDkyKXeSrLjmP4tQvAzczR7oAFTU7wJ94w2+Jtv8GG5osNm4AArt7TzFRYCMEx/
+UwV9GlV8cSelLI1yS1ixmBsd0UCXcoq8fT0S8RIJ88cmcPNCUBYRMRkD6zmvnEjJ
+2TXTZoBXVTAso8mqKnlZI9JtRENpJMdRt02gdl+8YbNrSdcKl8pcw2g75E8+Yyxc
+YaJSsC/ztTB/Kp2KUlm+dV9XTdSXTr49kyTOy6Ponf1UYk8k5ltSEknyx1zmQJX1
+P5yscxDixVeFcbuwh7kFDJZ5iQV+KjsElnDiEOlY/0Fxj/+594z/NZ+Drz59lGux
+eMtwLsQv4leP7rdibnQi1ZZM+82GX/fAt4wOut0j+qjF6N6s+b1lAIjVLBoqTIr3
+koGOaIg8h6uwz06INUInfCBpLzGW1SCFyOkAxfHoAKxibZQarDUU2Yf94f7YX+/v
+CpinfQQJycMulPDz1H09fL5Dt8/B3dTaZQIDAQABMA0GCSqGSIb3DQEBCwUAA4IC
+AQCbWS5hsUYTdjs/E5pMEWV++00Dk/dn08zMWrxlyuBiWd9W+f13lwlsH2605ahY
+BD8kkxm4CNZ5axbxQJWs8EokQIuJj5eVm1q1o+1CJv2Dj44Aef3gZ4dq7Vx/Ix8K
+MLexZgf2ciVSQV50WvgzG5/1Ghn9GyOMML+D7n8TZfsdxwqacZXgrMsoag+1DbSA
+++gTg3GXtCeeaeNEKgFUIUIX/n4GT6R8m7+GdksJojvvPed7aYhuzx8sp71uwLxs
+R1OYPKvbuj3Wa114xu9A306WtR2VuXq2+nK8oXpfzp4nAIZTYooj3YwvfkiR2eI7
+YyFDT+RlZHba8KFXOGFlkzjNN78X1oadHmlPYygxQTgDKurVdB2L4ru4v3+rn+7y
+vUFCs2rQ9hNaSHGS5bJH7rq+YKidMuJrOYRr2gyUfsUp4LfqX9XhQK/h3jyWCHKW
+auq5GGrpAQaxm2x0CckD+vWlvYtM4kiv/ljOxRzav2uH/I1y5UR7aJrQw2SFmDoP
+j6yxAoYWYZU4KD4waMQpWuz8cAFMfrXQuo4hNgTqT0AMncJmbQ0F43zyIBN4Z7sf
+0ZpRMknwK+EaZIMy5ntUvhejifOYm94ZERLlDBzca7zWvIL1IGiAJVK5frJGu5Wc
+emuZrs5MvQwwQ2DfkuI1/r9RStbNs1miXfzQpHYoC9F9/g==
+-----END CERTIFICATE-----
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
new file mode 100644
index 0000000..28c7035
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.csr
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIEajCCAlICAQAwJTELMAkGA1UEBhMCVVMxFjAUBgNVBAMMDSouZXhhbXBsZS5j
+b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCg9g9zYtqp6AoOUMr4
+yti0T8RhjOAmXNC+vKtPoU/ZxdvoH75dzIrMKn2AXDkH7X9Dwa5rlX0WWDggF3p1
+BGAVX+wjde/NwJE0i/T5ix0zsLJsFYpfbIkOGTyoenw7lHqLHc6JzQL5DADvb0Ga
+ytElEbhRjAF4lpheXVuMb/sybT3wVAouzZZGR74djPvc72gGtbKsitZHBGDkyKXe
+SrLjmP4tQvAzczR7oAFTU7wJ94w2+Jtv8GG5osNm4AArt7TzFRYCMEx/UwV9GlV8
+cSelLI1yS1ixmBsd0UCXcoq8fT0S8RIJ88cmcPNCUBYRMRkD6zmvnEjJ2TXTZoBX
+VTAso8mqKnlZI9JtRENpJMdRt02gdl+8YbNrSdcKl8pcw2g75E8+YyxcYaJSsC/z
+tTB/Kp2KUlm+dV9XTdSXTr49kyTOy6Ponf1UYk8k5ltSEknyx1zmQJX1P5yscxDi
+xVeFcbuwh7kFDJZ5iQV+KjsElnDiEOlY/0Fxj/+594z/NZ+Drz59lGuxeMtwLsQv
+4leP7rdibnQi1ZZM+82GX/fAt4wOut0j+qjF6N6s+b1lAIjVLBoqTIr3koGOaIg8
+h6uwz06INUInfCBpLzGW1SCFyOkAxfHoAKxibZQarDUU2Yf94f7YX+/vCpinfQQJ
+ycMulPDz1H09fL5Dt8/B3dTaZQIDAQABoAAwDQYJKoZIhvcNAQELBQADggIBAIB/
+6C59KSk8zc9gYuG5nluZdagYd9sO4eva/P+AlONMy2W+QzBXRcuUMVdMLACRyDne
+ejI23A4R509M53bHuLeGgTgeja4K9ExLymx1Eh1aqalHyJpMYpWGaV1QJPCPWLkB
+dMdNjw32cLRl1MSHHRD/LhrrfEGzL2U6Cv/yo5VYnNBrsTzoaaNtxuESwqitcCs2
+Nxh69in21JWiI6JNpF+HJZezWGNzzL99+WfjUj70BvZq7/ZsTKky4bn7pXzSB/5L
+50leLTvSYqyl3D66n+L3h21QcRcMYPej6HHhMZqsT04rrQ82+qMwnTpGfy0LUIJl
+wZHAdAETEKNTBTSUJJUXaqIKTWyYcgsaZDR40/ajbiFoQrNXCCw6mBihHir3Ex6i
+KlsEheDuf3p+y++TDhKx1eJPL8oECnmiVHGrOXBxE5MtgcorQ3ayp+PZRYztNyjY
+BtJjWn3QP/10MAZp4nSlgcmt5dUQy7fM7FrQfOy4oyvUl948ieOB0IA+wUEEOwVR
+XwLqR3bJrzn5uHJEN+GAq2xr14Si1PXRFq7/2qTLcRU8zPTi/YGxjWzKJcqFb1cA
+55HrcyrT1yTwA53e3FAEMX5RB9DCynQsh22KZybeyK0vt5iQXTs0JUmgUi5t9j0G
+WwDBWnr5CLCrxYjuLVY1lK1L0eMUNZCdi7yUt3BV
+-----END CERTIFICATE REQUEST-----
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
new file mode 100644
index 0000000..f5d25e0
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+1g9hGu9bA0qdotBMeYa/eS5WRcb+AA==
+-----END PRIVATE KEY-----
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
new file mode 120000
index 0000000..440ae96
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cacert.pem
@@ -0,0 +1 @@
+../keys/uas.crt
\ No newline at end of file
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
new file mode 120000
index 0000000..0f76a9b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/cakey.pem
@@ -0,0 +1 @@
+../keys/uas.key
\ No newline at end of file
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
new file mode 100644
index 0000000..2ab846e
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/sipp/invite_recv.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Receive Invite">
+  <Global variables="remote_tag" />
+
+  <recv request="INVITE">
+    <action>
+      <ereg regexp=".*(;tag=.*)"
+            header="From:"
+            search_in="hdr"
+            check_it="true"
+            assign_to="remote_tag"/>
+      </action>
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      SIP/2.0 180 Ringing
+      [last_Via:]
+      [last_From:]
+      [last_To:];tag=[pid]SIPpTag01[call_number]
+      [last_Call-ID:]
+      [last_CSeq:]
+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]>
+      Content-Length: [len]
+
+    ]]>
+  </send>
+
+  <send retrans="500">
+    <![CDATA[
+
+      SIP/2.0 200 OK
+      [last_Via:]
+      [last_From:]
+      [last_To:];tag=[pid]SIPpTag01[call_number]
+      [last_Call-ID:]
+      [last_CSeq:]
+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]>
+      Content-Type: application/sdp
+      Content-Length: [len]
+
+      v=0
+      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+      s=-
+      c=IN IP[media_ip_type] [media_ip]
+      t=0 0
+      m=audio [media_port] RTP/AVP 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv request="ACK" />
+
+  <send retrans="500">
+    <![CDATA[
+      BYE sips:[service]@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: <sips:[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]
+      To: [$remote_tag]
+      [last_Call-ID:]
+      CSeq: [cseq] BYE
+      Contact: sips:[local_ip]:[local_port]
+      Max-Forwards: 70
+      Content-Length: 0
+    ]]>
+  </send>
+
+  <recv response="200" />
+
+</scenario>
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
new file mode 100644
index 0000000..ed11289
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/test-config.yaml
@@ -0,0 +1,44 @@
+testinfo:
+    summary: 'Test TLS using a certificate with a wildcard CN'
+    description: |
+        'Originate a call using TLS from Asterisk to a remote endpoint,
+         and verify usage of a wildcard certificate. If the call is
+         successfully established then it worked.'
+
+test-modules:
+    test-object:
+        config-section: test-config
+        typename: 'sipp.SIPpTestCase'
+    modules:
+        -
+            config-section: orig-config
+            typename: 'pluggable_modules.Originator'
+        -
+            config-section: dns-server-config
+            typename: 'dns_server.DNSServer'
+
+test-config:
+    test-iterations:
+        -
+            scenarios:
+                - { 'key-args': {'scenario': 'invite_recv.xml', '-s': 'uas', '-p': '5062', '-t': 'l1', '-tls_version': '1.2' } }
+
+orig-config:
+    channel: 'PJSIP/uas'
+    application: 'Echo'
+    async: 'True'
+
+dns-server-config:
+    port: 10053
+    python-zones:
+        -
+            example.com
+
+properties:
+    dependencies:
+        - asterisk : 'chan_pjsip'
+        - asterisk : 'res_pjsip'
+        - asterisk : 'res_pjsip_session'
+        - asterisk : 'res_pjsip_sips_contact'
+    tags:
+        - pjsip
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
new file mode 120000
index 0000000..1d16722
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/ca.crt
@@ -0,0 +1 @@
+../../keys/ca.crt
\ No newline at end of file
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
new file mode 100644
index 0000000..ab109a1
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/extensions.conf
@@ -0,0 +1 @@
+[default]
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
new file mode 100644
index 0000000..f7b8e9b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf
@@ -0,0 +1,10 @@
+[log_mappings]
+type = log_mappings
+asterisk_error = 0,1
+asterisk_warning = 2
+asterisk_verbose = 3
+asterisk_debug = 4,5,6
+
+[startup]
+type = startup
+log_level = 3
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
new file mode 100644
index 0000000..1389f8d
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjsip.conf
@@ -0,0 +1,24 @@
+[global]
+type=global
+debug=yes
+
+[transport-tls]
+type=transport
+protocol=tls
+bind=127.0.0.1:5061
+method=tlsv1_2
+priv_key_file=<<astetcdir>>/uac.key
+cert_file=<<astetcdir>>/uac.crt
+ca_list_file=<<astetcdir>>/ca.crt
+verify_server=yes
+allow_wildcard_certs=yes
+
+[uas]
+type=aor
+contact=sips:uas.example.com:5062\;transport=tls
+
+[uas]
+type=endpoint
+direct_media=no
+allow=!all,ulaw
+aors=uas
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
new file mode 100644
index 0000000..38ef153
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/resolver_unbound.conf
@@ -0,0 +1,3 @@
+[general]
+nameserver = 127.0.0.1 at 10053
+resolv =
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
new file mode 120000
index 0000000..9ada8f1
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.crt
@@ -0,0 +1 @@
+../../keys/uac.crt
\ No newline at end of file
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
new file mode 120000
index 0000000..f141b2b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/uac.key
@@ -0,0 +1 @@
+../../keys/uac.key
\ No newline at end of file
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
new file mode 100644
index 0000000..79a9c6e
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/dns_zones/example.com
@@ -0,0 +1,29 @@
+zone = [
+    SOA(
+        # For whom we are the authority
+        'example.com',
+
+        # This nameserver's name
+        mname = "ns1.example.com",
+
+        # Mailbox of individual who handles this
+        rname = "root.example.com",
+
+        # Unique serial identifying this SOA data
+        serial = 2003010601,
+
+        # Time interval before zone should be refreshed
+        refresh = "1H",
+
+        # Interval before failed refresh should be retried
+        retry = "1H",
+
+        # Upper limit on time interval before expiry
+        expire = "1H",
+
+        # Minimum TTL
+        minimum = "1H"
+    ),
+
+    A('uas.example.com', '127.0.0.1'),
+]
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
new file mode 100644
index 0000000..0777475
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/README.txt
@@ -0,0 +1,16 @@
+# certs generated using the following commands:
+
+# create CA
+openssl req -x509 -days 999999 -newkey rsa:4096 -nodes -keyout ca.key -out ca.crt
+
+# create server key and signing request
+openssl req -newkey rsa:4096 -nodes -keyout uas.key -out uas.csr -subj="/C=US/CN=uas"
+
+# create server certificate
+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")
+
+# create client key and signing request
+openssl req -newkey rsa:4096 -nodes -keyout uac.key -out uac.csr -subj="/C=US/CN=uac.example.com"
+
+# create server certificate
+openssl x509 -days 999999 -CAkey ca.key -CA ca.crt -in uac.csr -set_serial 01 -req -out uac.crt
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
new file mode 100644
index 0000000..95518c0
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFqTCCA5GgAwIBAgIUa2wnH1fXjnYIDS81xUFtwLFKFRswDQYJKoZIhvcNAQEL
+BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJp
+dmF0ZSBDQTAgFw0yMjA1MjYyMTE0MjZaGA80NzYwMDQyMTIxMTQyNlowYzELMAkG
+A1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0
+IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALefzXMa1Hc3yv3Pqql0h6Vt
+FIgUO24rI3KKWkJ8PYjemO8XX/eCAYeMD1ElWPHRWCDvZpckrcUG6tqgK7yEJjgD
+DBREDh1D/rryjMcWQ2cYF0xD0X26rT0w2t8e5ylUTX7kSVT/ERcMrL7QR4UvBPHG
+rPXuBCMbLKYyRJ4UwIerVJ4GEoNyvsZ1MK2oC+OpF2ciBzVO8hCzzx0n0TP8ox8f
+BkN1CtGcDaGshCAMC5ZsygkXtCdK0ABzemN2RXfOsLLtBtmR1VA7KRuLat92bcVn
+zLhBXE0Rd4Riwk+Ydg/Y9gkCcbJ3M0i+2ggpQFErmJo8nU6sEd+lWYrKrLhy3g9f
+LmRELI/lYeo/iCw4uoFNgC0aARDA8EnCxC0dAy8FKxtrz1G1jLgoY/xR/JymSMgX
+9Vhibw07xldcXmxzY9GSCPLDGI2I+Nl9TOn0urKBwSVZzrchxM1+ASYUVI1v90vy
+cYE11fnVj94zPuUNX48Dx5fKSUDbQL8EZmIFrf1qjjVgePbm4WIYFIj+BTNOlOnG
+Pl+KX/9DLuoamLX5ZjE00nr7pPJ4FdOIKEw38dTNRtmJTXqvT0GXLtPpFPMHKZBG
+0cdamgVaB7XY3BMjQ82gcDGDXBqIr4fM4ndl6vQ6M77BdWFZ6Yv7a417yniTMu1u
+9kz29GLbO8we3+KLm45FAgMBAAGjUzBRMB0GA1UdDgQWBBSNsrYP0eqyatcYvc46
+7URDvkiW5DAfBgNVHSMEGDAWgBSNsrYP0eqyatcYvc467URDvkiW5DAPBgNVHRMB
+Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCmtdGUE3EH5nyjUpk/aVBPZJmB
+a6aw3XDEY0VkdT/cdGUCGHzbhLhu/DZ0nm3EbvSjDMo66w3IvCFMVGXbzfogQ3vU
++S1wtHjlTkjYOU9YPxMfPnLMzoAr8aJI0TPH6KnVURXdZXXUR4RVq/oCigM9Yr9N
+2cA6mf0HhGTVm6mAZWxuJFFA9bGhoIZ5XWdvvFahwdHKJyt1GxWxGwIdlVtN0/aL
+ql2GbR+Gp6/Oj9VYrKUchw10beYCKMk+TE7olKZsDQUsivk+TXAfvwUfansQZ99V
+aiJsIfO16NQbZLl4C96L4W/4CVOoOWb6QfT2N4YeAhiBlveBkowcdqv0A9PyLMhk
+qMKZAeSa0N2ygIkFm/EngxgmEJ2VT3+aJSVsep0orOScuMTr2w0iNCa84inKjexT
+37WRUFY3/0iAqnrr02H5jY5O3t4+4l5AF6f8xS1WMw8pDkYQwYuFUlA5g9Nr/np+
+Ur6P3H9xVkOiQ5eRC0BBsh9/QKjYbZXrr0p3Lt+TvAmw/cqBSS+LSShdbhEyeIv7
+R689UGTSI+esBjPgyawa9OS6H844LWs8XFsl84Z1rYEaX7hr8nREZHTn6xmygW/V
+q/+fVE1hmOuYN6AQV3U4Pl7MU6TXdWd5w9aFEurI3X825YAFspuncK9/haI++Upv
+6AZBQSqYcNtR92V9Fw==
+-----END CERTIFICATE-----
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
new file mode 100644
index 0000000..979fc58
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+KcnkZRueGPfB4++puXDf+CNsb7yvhJsu
+-----END PRIVATE KEY-----
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
new file mode 100644
index 0000000..acc6aba
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIFADCCAugCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV
+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAgFw0yMjA1MjYyMTE2MTVa
+GA80NzYwMDQyMTIxMTYxNVowJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5l
+eGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMYjj608
+5ePhrTSlyvezg2dPN2LqShT2DDU3Pff1LWzXQXz3OYSH6K6LKcV9+gZkixQLEFkp
+rxcWcf9L5KNYA+CAGiUK0Ljd9KVOLoyd1sPJZQKV6pFGomY0po9ACYLK3E0+tBqw
+wCkQNDGdns4aw03kPqRN5fBxlrTOEEp+JRzAv5tBYQVptpOytsqQzeSdK9UbtVD5
+NG4IHWMdKUCjnECLulTDtxGt9RNK3LhGkmLkyH8FQnRE3x2T3c2h2aLtAmuZRrbs
+HwPpAa2EgpBRk8kaeLqLz41qwf4ykMxjqooMILnQ/iQi7ii0MeOhr0bTzvGVoGuj
+NM2XgELEs3+Epyn2c8DdFHdRUZlJFRYIioZ3PVoS5iPynnxoEka/UhsWVtWX1yww
+xHiBt7q/hqG0qCwT4TkOF9E6l2sYFl+QlSv5q+tmTpTYbU+pZR9xXBFe7XP4/84f
+0grhK9CMklE6h742Q1PkDhkb05zbWqnMsyuIBiqgNtiKGadLTdLGR2yZTeIDzyrW
+Qwdj3UMpf3TYPYdHUDdNquYNHExInewnPbfKsaJUaoWEpVPJaY7ex4dPn+/fG4rC
+J1o7ww5qm5gvDi0NvrTulViFEDWUoGmTXmxJLSSHukIKybf2YZx8xZj5Bk40bkSk
+4uJlVaWZiLHF8hKeSa9m7O8NUJzOc8nkveuLAgMBAAEwDQYJKoZIhvcNAQELBQAD
+ggIBAFjUkAhissrvdamAY3bvM5Uw6BR+YpIacwcqhVm04CnYLeJ8u5TwxPHL9uQB
+cN78OUMG6NDHDZ8EMmDfqbj6nn41Z63osXOBFxzsRTprbud/0Opfrr+0oI9M7CSU
+mu1NPFRpEd6AdiBwKMs0uJ8Pklvm6Uc0CiqKE6zlhB0pykKPBn7E9Tyd8SUHOtK/
+xJ9Q5cSGZtddBtiammJdi88xzlGTz93tnLnBoMgbHExt7d6l59EWGSB4v3Xeh3st
+qkfLYVKo0C56FAlduzBx2/1F0GfT/gUKNUBKA/D8M/mZEwV06xzoR0sTGICcejut
+E4ZdmZNyUKH2B3y2rX093yP5xTaHaCdyuUkYTmymr868wCZ01VYqpB8UYEmk+LB9
+WHMjcgbsQ6GpG/qzH8d9HpDN0k6ftK3NlMv6r1EEhb7oUTj4WRGjeO4TMa+Dc0z+
+6umsLJmCfM8Ons2egXp0V9am178bePTMtjArIaDrhJkyEbL1eaJ5sgsm1PVvkg9O
+CRT+jQZdrj0CeX4i0CBMzncbqRgDHyJqVJzVu5NnXNUTOXr43JE6bQeH6+BnAMEr
+2QMb3D8M1R/y0QbeiVeqI1/Gm7dyxUjaVG/wTv8TTkNzqola8luE1ND50wOsBN/K
+H2id56HzoA6dlYPuHsb3GXf5A6XGP5FRcpv6332A29Kk1+Fw
+-----END CERTIFICATE-----
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
new file mode 100644
index 0000000..4d9499e
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.csr
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIEbDCCAlQCAQAwJzELMAkGA1UEBhMCVVMxGDAWBgNVBAMMD3VhYy5leGFtcGxl
+LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMYjj6085ePhrTSl
+yvezg2dPN2LqShT2DDU3Pff1LWzXQXz3OYSH6K6LKcV9+gZkixQLEFkprxcWcf9L
+5KNYA+CAGiUK0Ljd9KVOLoyd1sPJZQKV6pFGomY0po9ACYLK3E0+tBqwwCkQNDGd
+ns4aw03kPqRN5fBxlrTOEEp+JRzAv5tBYQVptpOytsqQzeSdK9UbtVD5NG4IHWMd
+KUCjnECLulTDtxGt9RNK3LhGkmLkyH8FQnRE3x2T3c2h2aLtAmuZRrbsHwPpAa2E
+gpBRk8kaeLqLz41qwf4ykMxjqooMILnQ/iQi7ii0MeOhr0bTzvGVoGujNM2XgELE
+s3+Epyn2c8DdFHdRUZlJFRYIioZ3PVoS5iPynnxoEka/UhsWVtWX1ywwxHiBt7q/
+hqG0qCwT4TkOF9E6l2sYFl+QlSv5q+tmTpTYbU+pZR9xXBFe7XP4/84f0grhK9CM
+klE6h742Q1PkDhkb05zbWqnMsyuIBiqgNtiKGadLTdLGR2yZTeIDzyrWQwdj3UMp
+f3TYPYdHUDdNquYNHExInewnPbfKsaJUaoWEpVPJaY7ex4dPn+/fG4rCJ1o7ww5q
+m5gvDi0NvrTulViFEDWUoGmTXmxJLSSHukIKybf2YZx8xZj5Bk40bkSk4uJlVaWZ
+iLHF8hKeSa9m7O8NUJzOc8nkveuLAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA
+C/pO+kddgX7XOQSOPVsi27wq/5JDaek3wGfP1jLfI7tpd/Xm+TLo9dkJxA4MVlmx
+6HzW+qPAM6haipbCfrnHrQb5z7G4x2SJWHq0AeTtUtn1nfgV4R9DGRKe2ufwnfAu
+zdm/HMn01j0dj6zD9fgbeQgGzAkxyvXtO1sZ/2lPPBHsZo0h97tCtwa7iGwc1IVv
+4MmBJ+67B+G7jvw4+AdIZEG4l3WoQuN0JHUQqeNtF0YUZmQOkloxmT4TLVAFb1ZO
+69CyR03lhi0JFRO9PY7GDkbJoikmSt5/0NS6Mw4g5LlciTLXiZgh7ffRdJ/C+93Y
+9wBGApz+qbYZ/SoJEy5A5AS1pQ9UHeA9WXHQOhsOm2AlD0aGDEsVjg40IBnKIToH
+lLHpAHt8/jeO4Flp2fkIONrfYjqTushoNVchEBW7hCbzmMZUP8zfB9MJMn5EPqqU
+4LhyBT3LKt016aGWFgQwrTYrJqGFBRrOs39GYztyCvf5N6DKRnzqoE/siufKOEpX
+KwCtvXnTSi+uSiLkPIeGkrJGzkVUveg4554Mg8QL2MIqSkDgmmn3GZoYfzNM9bKS
+qW3scHMu+trrYru6oBnAQDk0Rg/xKKjSJel7pO67LsJR+EobqBnla8kVIciqUR1K
+BOgJ3AM8NIr97tmCWqWBPfNFsk18yoWV+YjEpX7gU+k=
+-----END CERTIFICATE REQUEST-----
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
new file mode 100644
index 0000000..075f2f4
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+81UVKjU7qX1CNZXjtM1AQMTEt68ZLtxI
+-----END PRIVATE KEY-----
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
new file mode 100644
index 0000000..066f246
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFzCCAv+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET
+MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
+dHkgTHRkMRwwGgYDVQQDDBNBc3RlcmlzayBQcml2YXRlIENBMCAXDTIyMDUyNjIx
+MTYwMloYDzQ3NjAwNDIxMjExNjAyWjAbMQswCQYDVQQGEwJVUzEMMAoGA1UEAwwD
+dWFzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwdFyJYpoBrEtf079
+OoE575WaCLCFEtr9xkAGhOkAhRrox3k370G/yznU997IjbQ0b3M5GCt9GITagMhY
+48z6xQi1vb1kZfAq60j8JflyqU1S1c1O5GoTOO8r1ragGExbxlNucxeeLUtu5l7h
+OILqiLgWr6T3e/nnziUO1KGiBJm5bawP6iS8STkmNeMPP6y70542EZG4Gd4cNPtT
+zuqhi12PzlxCecb3I5Znn/vyt2l0ClJaJ/F7nHpE6A9bvoW3uMlAHLmEsAKSNhNE
+aDjnSIHrPS88ifpTOWPDTKkZ80QmWtvpi1dkgxu2Qev5bTrwtWyVKaQCb8Wjwy8F
+pvtiPuZftTA143jFkW7NQrbik0A8FPKbN8lnLpN8eX+sExANLIbiMwh2JGFk9J1/
+FgB4+esGXb4abJqGuS4Dg7HQoNiayTViz16K06HuSLF8Feah3buphVgXePoMxHlQ
+riCGRD5zgbaMULGrelCKUtmOaLXarlJwGX0Ovl9FiSKCaPWxreT+EDGLUfyzbNfS
+UE4Z4QjEM57tO+UsKACvZXbM1kzOc6j6+yzUC0UEkzTuULVsKXze8NQQU2zseOyr
+A2EqOMRI7GiuN6N3fbndQfr64Y66c3RjHp1QDtDu5NvQT7o8DomJ//ddbCiiTUHp
+G2gTLSmwa+lfvjTeZfKZp/5cVvMCAwEAAaMcMBowGAYDVR0RBBEwD4INKi5leGFt
+cGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAD3K0V5CcS9OUCYnry97rJg9MaoG4
+w2pImUSBzqTXkDmp8doXU8kyXhML+noyy0C0vFYhyZNiVUoeekF8WRiTtT0ebRc5
+lYKoNdebjpi8rl4RD5Um9tM2Vsic8D2H0Mk2r8CZWyXi3Y/huY8shNlGbmRMv+0p
+2OwRcMUN2vxlfBm9sc4QL3dCaEy2GzNVmndjnh1W2sUGY66axTcNTYJyMT8TJ3/h
+TyEO2g1WpAcmWhQTa43lRrxqp3wQj2XyLJk+RvYiNiwymOh24feecfu9fIX9UMpN
+kLNOvLtwJESD9Ls60KfXA76etlV2MZ47JcciNGdf0YBJ0G+PeNDo7i39nkszThEi
+xn56jc/3X91Hv/H5NcummaWfDkSv33rP/78NAm8NvmPU7/bXxKqJ6bBzmJuR8aBy
+HQiAa3lEe5SkLW3I/ylJ1dqaJB4MMiY3a/6xPkBkkbxc1rgj4jkxI9V6pAkmQZhN
+g5bPwCU2dwXGmdWPWQ9uy6IhKiCVVL/2E5tKetOxjSfTjrwBHaDv7EY4Lvb3eXO0
+5MAr4T/wYV7awgdJYRVDOG+2pttECmn5gV073kMcky6/VBhwSXA+1SPjBbh4/nz4
+77VTEFOF9Pl/+YBTvIbAj3sV5VwNQe3jsi0JJeP798oTs8IWUun1Eze+MChb1uSp
+taMVUQOaz8YzND0=
+-----END CERTIFICATE-----
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
new file mode 100644
index 0000000..7f50120
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.csr
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIEYDCCAkgCAQAwGzELMAkGA1UEBhMCVVMxDDAKBgNVBAMMA3VhczCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMHRciWKaAaxLX9O/TqBOe+VmgiwhRLa
+/cZABoTpAIUa6Md5N+9Bv8s51PfeyI20NG9zORgrfRiE2oDIWOPM+sUItb29ZGXw
+KutI/CX5cqlNUtXNTuRqEzjvK9a2oBhMW8ZTbnMXni1LbuZe4TiC6oi4Fq+k93v5
+584lDtShogSZuW2sD+okvEk5JjXjDz+su9OeNhGRuBneHDT7U87qoYtdj85cQnnG
+9yOWZ5/78rdpdApSWifxe5x6ROgPW76Ft7jJQBy5hLACkjYTRGg450iB6z0vPIn6
+Uzljw0ypGfNEJlrb6YtXZIMbtkHr+W068LVslSmkAm/Fo8MvBab7Yj7mX7UwNeN4
+xZFuzUK24pNAPBTymzfJZy6TfHl/rBMQDSyG4jMIdiRhZPSdfxYAePnrBl2+Gmya
+hrkuA4Ox0KDYmsk1Ys9eitOh7kixfBXmod27qYVYF3j6DMR5UK4ghkQ+c4G2jFCx
+q3pQilLZjmi12q5ScBl9Dr5fRYkigmj1sa3k/hAxi1H8s2zX0lBOGeEIxDOe7Tvl
+LCgAr2V2zNZMznOo+vss1AtFBJM07lC1bCl83vDUEFNs7HjsqwNhKjjESOxorjej
+d3253UH6+uGOunN0Yx6dUA7Q7uTb0E+6PA6Jif/3XWwook1B6RtoEy0psGvpX740
+3mXymaf+XFbzAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAvjUpuCVF1cW2jlaG
+aSsQTt780Okgh4VkcUEaICn3BtWTbfIgxpPwGJhEYq+zcsRlGcngJ48Q0CB8+L2U
+XcxIaPXQrA9ye0uuUCsLLs2vQqgVA0fv5ne6nuzNPixYozVM3A4Pncm/SXZmXHqy
+1Jk8bIWZNZBzK9BByILafHi6IUHVRnrH5lcyB+kqSIYtPsnbMlj/1Gv3Gxly9vJB
+RtiRdwkpUAJcdS9uONPHLdMozIJnOyJja++yPHlvjKRQk4HBWK1EvDU8XOKZl45p
+FKaGsYQBMpJiIla5Fsu8S1+OU38GVWsRuCQSCQhOCu7AUm238KywgB7gRiuaybia
+jjdJqjFZ/nV2Oq1B+2Pkb5Xi4h2X6w+BvUFcbFwNJq2nHXVibRmIARVvU6WZAQP5
+JXjPn4ZFHTYn+0ejz+gNVon6Fan7gjFV20blmHjpfwvGA/Qdcq1b+25d4LJne5yh
+SWYd8wYQrrBwD4f8xW0Sl8DLt0yHVAzuIci9ibUrLd5vQUoyuObLwAtgLtiLLBcs
+slIoEA7qmvE3qtP1oPsKm4H9Mbka9rFFmLyHSjoXMZ+Zk8V1TuzcBhGZy74mVY2A
+656b446wK0GhNFRR99G0zy6NvExoldzsq2sWHNPGvgdMqI7/Kreb3QRRiq6sS7wt
+0AX329y/kKon3JtxsfJSVxRekZ8=
+-----END CERTIFICATE REQUEST-----
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
new file mode 100644
index 0000000..01f60b4
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDB0XIlimgGsS1/
+Tv06gTnvlZoIsIUS2v3GQAaE6QCFGujHeTfvQb/LOdT33siNtDRvczkYK30YhNqA
+yFjjzPrFCLW9vWRl8CrrSPwl+XKpTVLVzU7kahM47yvWtqAYTFvGU25zF54tS27m
+XuE4guqIuBavpPd7+efOJQ7UoaIEmbltrA/qJLxJOSY14w8/rLvTnjYRkbgZ3hw0
++1PO6qGLXY/OXEJ5xvcjlmef+/K3aXQKUlon8XucekToD1u+hbe4yUAcuYSwApI2
+E0RoOOdIges9LzyJ+lM5Y8NMqRnzRCZa2+mLV2SDG7ZB6/ltOvC1bJUppAJvxaPD
+LwWm+2I+5l+1MDXjeMWRbs1CtuKTQDwU8ps3yWcuk3x5f6wTEA0shuIzCHYkYWT0
+nX8WAHj56wZdvhpsmoa5LgODsdCg2JrJNWLPXorToe5IsXwV5qHdu6mFWBd4+gzE
+eVCuIIZEPnOBtoxQsat6UIpS2Y5otdquUnAZfQ6+X0WJIoJo9bGt5P4QMYtR/LNs
+19JQThnhCMQznu075SwoAK9ldszWTM5zqPr7LNQLRQSTNO5QtWwpfN7w1BBTbOx4
+7KsDYSo4xEjsaK43o3d9ud1B+vrhjrpzdGMenVAO0O7k29BPujwOiYn/911sKKJN
+QekbaBMtKbBr6V++NN5l8pmn/lxW8wIDAQABAoICAA1jWV4sfFkR/hGQND/JU2Yw
+UE6PWvHdfLAoFgsySR3oqPG2dt2pDgWMviBNHE9lhkW4kNYRkveRncJNlI5Px3a6
+zksH/Rpph51vEjPRUlFNjQ5Fu1Bd32wMYVvYi6CCDcjaVIPQutVoI4X4Qdh0epzt
+EmwZmhrPPWro9mhLrfRhZgSkYQkMdpEcSH5qa9A7L1JD2HpINY5b4Fjsj3J4lKYa
+1Wcsyk69Jq8noYrUjYSL3T8lRyMBNEevzni1LuIvPGygQjR5wCekVdM0a4JDg/5n
+Mwer7qOdTghl0sTF3YwHRhr6m9xLMh84V9Of6D/aVWxCzt7sfFqaLWC7K8nIDZYp
+5A0LcPTTCmrxjjXclWmj719TQMpIsX1zudHYTKYvAPifHJDOk4bcRv/cGauBpXxF
+grvn4jn/FD2zfrZMHv5aH7p6fn5A4HucB29Y9OIAv52GpOrMntDDvOelKBKhfz3L
+pm/CFzye3DTCsERcBDcQdeV8m0AxlX4fyb/IoxISlmGceUqvwXvF57k5PLWbMXyr
+kH9qWvfXvN1UhbFVL//oyzyDcdxvDeKuSKJq2ODHcs8vLmNeYjYSR31hfY9YyOkC
+HpH5SXLYl1CwpzYoV0FcQzgAB3L17pRuQeBfenMXWKfh+ddd/KdGhi0H2nuiJM9P
+uduNsPuWh5DC1VnZLuFZAoIBAQDrKlXLnfdUPwrkc3eqZLrrdbCxRA4kfNQgfJ9r
+sU5sYGUaVtXyRIO4JfL6IxtD3TSAibvchx7XO4F+xvXfXX+Iiy4WaPDYpEaoYrXY
+tgRyGKCh6OxqU8hArkIIp3k3S/3sKen94GRet9pxfUECWs+Lx5a4T+BCCVpMX/5W
+WH7/n99TEq8t4CpFwM8nznazJ6G1gXFghx4nBOmSH2V3iuNHWRzGATbaTPbkMmB0
+deVnIP7woWhXgfSC5qSKdcMiONaaPImUjdsXqLvc+8W+RnzUDCed2IxnFf9buRFd
+EGbg9NFfZfN5+PB2xi+GSobvi8AJQjRLgMGRFXEr37hEbL0fAoIBAQDS/VXr3Cmr
+NoI+glDM25dy+MM5Il8c3rIlOnYl7zRmpi8TIP+aKWc3wk6KOKh+6dBxf6mX8Lr/
+2FI4oPD2gwzkRdwHACkXTfPPPly06IJZW3l7Gw04i3VQ0+KDrXW9v4uoSUltSo+i
+PnYH0l5WEPxB8NN855J5o6IXxF8tCpoTcx4WQEA2fz4kkb0+lJG8eZQImxciC70d
+vRixAck1EvN8QsRFhTmca3+WL6KUZsv8t0DUMhQ7xijTM5jzfL0k+NwVYASDESRj
+3+A7Uv20VxqBwltDF1Laz+VzYiAZiTGjvXieeptYAxcGxZP59vB/hB7jZ2pd/wjh
+z6tLuYCFBVetAoIBAQDNQcxUxvIDlGr7b1U5YmZL8hNhBdeaPWIhYOT86Gtc6N4W
+GUjwBqE5b9YeQdogZ8jVkGJqX32puwSSFTKx3TfdhC2b3ciqLuiFPHMgTe6fb6N0
+7oq7W5lj6zUzvIlunGNraEIWF29DxRFjEUJWvdB9Xp3NDdrdiLBKDVc/Ikrm7zHL
+nnlMf2YmL94gDnNIeAULGYpOCGFnCUCdC85SguVRdxRINvMboyWzk8zgma67Tu92
+NEuQZZt3Tby8JYFGM3oMcV5cTVy3z8z5WsAEDh4SLvG9Mi+KIocaFfRz2EcTflvo
++mGDSqcH5H/CpPYVy1K4QhLG/AD3k1GOS9zXzFldAoIBAA1kh0+xafO0QhA1tWtL
+hRGHON0nkWIDwMscKuO9i1X4toRAU/k1J5gifVnIvulPbivGLr22SihzUsTFcoYz
+S14yEQVgvTr9d7xv+PKCz8NcSxnFXdF5CLlYucgh+pdQ0UydWkvVr8hcrqFQeSx9
+Z4XIA6SqDmIqQN/BV0lEowMZC4/eBDVxXkBz/885HwcXsI3bSlye4iJBHpAdzOfR
+jCMXGd5P1phXOoIOBAPngotIFpVhmGcy7OR7IfpSsK7oHRA+SAsJy4WLcHBTlEce
+QFB8Rc68bEX3bFkmoWL9kmkSXdWxcqrjh1Kmt/3l7t4pRMyqg9Xzmly7EeR8oevP
+qwECggEBAKcd/7MCTckvX4yRtmnIBHre0lX+ZRyalUTnjVJeI/lIO6WeZXN0yWd/
+FidDta60F84nGnG7r7lKCxBoT+xsEYojeXpIZlJLCm3P+91DO6S38ywo7T+mYyCc
+ejWtv0RubCwdmdc+MaPxYIP4tCeLt5R43pcLC22ZVAtMFtdFkgzgLHWFMQgmlT2a
+HV8kKvlKkByskUxIzthZ6TJHE56mFh5LGrvNzmxP4484wPrAr93Y/Szbl9vZWuNQ
+wgaiQkJTST8aSvUFyJIIViLi8otxsq1nGE5lFhCiCzP8XzCkoComvN71eE+x8CM8
+Rx2Oy//JtAAzcF2LclDAtfkZ6TCmPzg=
+-----END PRIVATE KEY-----
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
new file mode 120000
index 0000000..440ae96
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cacert.pem
@@ -0,0 +1 @@
+../keys/uas.crt
\ No newline at end of file
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
new file mode 120000
index 0000000..0f76a9b
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/cakey.pem
@@ -0,0 +1 @@
+../keys/uas.key
\ No newline at end of file
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
new file mode 100644
index 0000000..2ab846e
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/sipp/invite_recv.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Receive Invite">
+  <Global variables="remote_tag" />
+
+  <recv request="INVITE">
+    <action>
+      <ereg regexp=".*(;tag=.*)"
+            header="From:"
+            search_in="hdr"
+            check_it="true"
+            assign_to="remote_tag"/>
+      </action>
+  </recv>
+
+  <send>
+    <![CDATA[
+
+      SIP/2.0 180 Ringing
+      [last_Via:]
+      [last_From:]
+      [last_To:];tag=[pid]SIPpTag01[call_number]
+      [last_Call-ID:]
+      [last_CSeq:]
+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]>
+      Content-Length: [len]
+
+    ]]>
+  </send>
+
+  <send retrans="500">
+    <![CDATA[
+
+      SIP/2.0 200 OK
+      [last_Via:]
+      [last_From:]
+      [last_To:];tag=[pid]SIPpTag01[call_number]
+      [last_Call-ID:]
+      [last_CSeq:]
+      Contact: <sips:[service]@[local_ip]:[local_port];transport=[transport]>
+      Content-Type: application/sdp
+      Content-Length: [len]
+
+      v=0
+      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
+      s=-
+      c=IN IP[media_ip_type] [media_ip]
+      t=0 0
+      m=audio [media_port] RTP/AVP 0
+      a=rtpmap:0 PCMU/8000
+
+    ]]>
+  </send>
+
+  <recv request="ACK" />
+
+  <send retrans="500">
+    <![CDATA[
+      BYE sips:[service]@[remote_ip]:[remote_port] SIP/2.0
+      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+      From: <sips:[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]
+      To: [$remote_tag]
+      [last_Call-ID:]
+      CSeq: [cseq] BYE
+      Contact: sips:[local_ip]:[local_port]
+      Max-Forwards: 70
+      Content-Length: 0
+    ]]>
+  </send>
+
+  <recv response="200" />
+
+</scenario>
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
new file mode 100644
index 0000000..7fc276d
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/test-config.yaml
@@ -0,0 +1,44 @@
+testinfo:
+    summary: 'Test TLS using a certificate with a wildcard SAN'
+    description: |
+        'Originate a call using TLS from Asterisk to a remote endpoint,
+         and verify usage of a wildcard certificate. If the call is
+         successfully established then it worked.'
+
+test-modules:
+    test-object:
+        config-section: test-config
+        typename: 'sipp.SIPpTestCase'
+    modules:
+        -
+            config-section: orig-config
+            typename: 'pluggable_modules.Originator'
+        -
+            config-section: dns-server-config
+            typename: 'dns_server.DNSServer'
+
+test-config:
+    test-iterations:
+        -
+            scenarios:
+                - { 'key-args': {'scenario': 'invite_recv.xml', '-s': 'uas', '-p': '5062', '-t': 'l1', '-tls_version': '1.2' } }
+
+orig-config:
+    channel: 'PJSIP/uas'
+    application: 'Echo'
+    async: 'True'
+
+dns-server-config:
+    port: 10053
+    python-zones:
+        -
+            example.com
+
+properties:
+    dependencies:
+        - asterisk : 'chan_pjsip'
+        - asterisk : 'res_pjsip'
+        - asterisk : 'res_pjsip_session'
+        - asterisk : 'res_pjsip_sips_contact'
+    tags:
+        - pjsip
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
new file mode 100644
index 0000000..dae04ee
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/tests.yaml
@@ -0,0 +1,3 @@
+tests:
+    - test: 'cn'
+    - test: 'san'
diff --git a/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml b/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml
index 1243cfb..0e5cdaa 100644
--- a/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/tests.yaml
@@ -1,5 +1,6 @@
 tests:
     - test: 'all_ciphers_verify_certs'
+    - dir: 'allow_wildcard_certs'
     - test: 'limited_ciphers_verify_certs'
     - test: 'two_CAs_verify_certs'
     - test: 'two_CAs_no_verify_certs'

-- 
To view, visit https://gerrit.asterisk.org/c/testsuite/+/18652
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: testsuite
Gerrit-Branch: 19
Gerrit-Change-Id: I2d4cf66b642ccf97a6b275e1425c0cbfad5eb0ab
Gerrit-Change-Number: 18652
Gerrit-PatchSet: 1
Gerrit-Owner: Kevin Harwell <kharwell at digium.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20220608/d16081a3/attachment-0001.html>


More information about the asterisk-code-review mailing list