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

Kevin Harwell asteriskteam at digium.com
Thu May 19 18:27:24 CDT 2022


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


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

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,026 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/testsuite refs/changes/73/18573/1

diff --git a/lib/python/asterisk/sipp.py b/lib/python/asterisk/sipp.py
index 498bf19..f010251 100644
--- a/lib/python/asterisk/sipp.py
+++ b/lib/python/asterisk/sipp.py
@@ -646,7 +646,8 @@
         sipp_args = [
             self.sipp, self.target,
             '-sf',
-            '%s/sipp/%s' % (self.test_dir, self.scenario['scenario']),
+            '%s' % (self.scenario['scenario']),
+#            '%s/sipp/%s' % (self.test_dir, self.scenario['scenario']),
             '-nostdin',
             '-skip_rlimit',
         ]
@@ -719,7 +720,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..1468ade
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/configs/ast1/pjproject.conf
@@ -0,0 +1,14 @@
+; Common pjproject options
+;
+;========================LOG_MAPPINGS SECTION OPTIONS===============================
+[log_mappings]  ; NOTE: The id of this object MUST be log_mappings.
+type = log_mappings
+asterisk_error = 0,1
+asterisk_warning = 2,3,4,5,6
+;asterisk_notice =
+;asterisk_verbose =
+;asterisk_debug = 3,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..858fcf0
--- /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 -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 -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 -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..2ea4f93
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/ca.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFpzCCA4+gAwIBAgIUSnDTD4tLBg1kDRv9d1AQFi+icoIwDQYJKoZIhvcNAQEL
+BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJp
+dmF0ZSBDQTAeFw0yMjA1MTgxODQxMzZaFw0yMjA2MTcxODQxMzZaMGMxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxHDAaBgNVBAMME0FzdGVyaXNrIFByaXZhdGUgQ0EwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQ91BFnDYawMJvkOkICGlfwBZo
+jVSZrXvhZxtaAfJQunl6l20DUwiKcTUq8cfgYWbW/yCoi2V7UE7rmoz91Q9diGc1
+7VMZuEmEnj1x302O6Z3P3OIZepAv9/+lG6G+dL+DK+WfDeeErCpe5trN17elxNLZ
+//WqOqewyd3tSZpZ78N/SnHqDVZVykCb2zLvAvLAkjwbUlbOazyDFWIfmgwobnTn
+WrZ0YGlCllucGVv9JuZGJNerosKSbTCI7JsBgpSIhOSy2QmneW2XcugFnCdxs5wL
+rCdz8IWiNnS6gaaiPHvLDdy3mg5/5agqIXFC5Mufb8dn8GsLoCG0GB/wBKRpp6mS
+Oo3PkiO/lkl3O9k8qUTGkDtDA7VMD2FoJOXmAKQxdv87Fes3OWi5BeWuQx5CwST8
+rVGbTCK6dJz2OXz2JjUiDdfZFsNj1OhA2ZBQxbG5SMIq0lllkbZI6ZUdgJ9WH/aA
+dogXXv0TyZ2bBBHfgCNzKLLM5btDkIWCUpQMrTKas7x7iTgDaN3eRcgE85hSIcbu
+KaheMSGadTbX082UcXgqfEraMMYK2VeBFejAX6Afm83KU5/68OXqTMZak09Z3oxx
+BpxKYrkJY2RB7a5pTfo3mP8ZY6S5N8hrt80QSRWUxxmURprrMfcJAPjRnsref0yQ
+tpwGGnXXKbU8JBhuXQIDAQABo1MwUTAdBgNVHQ4EFgQUFJZuEX6W4jrGHM0ICy3c
+NIWiWRIwHwYDVR0jBBgwFoAUFJZuEX6W4jrGHM0ICy3cNIWiWRIwDwYDVR0TAQH/
+BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAxyGVraSV60i/cJgySoaem7FLte//
+66l3pvYYyfhwwa9IXMoitS4ZKIt9gzSrkvaR5ng5Xr9CPROqR1OtMdeu1BxzoSDz
+aeLajkATQT4I2tM4sPgLpKGqjvy+aHEf7tTR4lGlv3FHH81pbMUpDL4pSrRLlGEH
+EfbbzL56kiN2TjyBWtVaryLj+/M7lNaNdmBYAj/lvf24fBtiR5Lvdr3S609m4mHN
+RKCnbpQxHFD6iSHzA4x72XOTjrLbyhqFFclrowNl1FZy/ViNMsIG34hS/sxdKCc7
+GKYUIUPEQG7x71hHoLVA7OiKXzE1hF/JM0VnFCC6YO7al3jroEHVvYFFr7vtly4X
+i/8sJ/fGTsHyrcDyVEXufiw82GHFtKCRLOBmUlbJI7RfcipdVJz/jgJsQ7lwTIg5
+qScMIpuN2DAeAHZrXr3Y/zPceLBFmb7+s8Sh5dz/nGV7zr6v8ZbUE1WgCrbjz1rG
+q+yPglKlPwKbdsjaPrLmzemt98T+MnRd5Zn+lPjXEJO9Sg8s6HG1dKYK47te9J6J
+ae0y1wmjZW4SvLFp0xiZO6NVkrQl01qNQ2V832E8/hDKCSxtDXpIwiVRzLngAV8O
+KMYhvL2wie9+Ctlir1J7simSnl8PjHlgybjsOkDtTxXOa9d21a9WX4hEJeMaYoY0
+VAjSfvfMgg1Btu4=
+-----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..5e68175
--- /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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
+QlR3v4Gv/pkn4W48dTIKIbHNFcBA3g==
+-----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..85790dc
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uac.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/jCCAuYCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV
+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAeFw0yMjA1MTkyMDU0MTha
+Fw0yMjA2MTgyMDU0MThaMCcxCzAJBgNVBAYTAlVTMRgwFgYDVQQDDA91YWMuZXhh
+bXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEWHLrJkKv
+fL0b6sj4hWKf7RlP4b3CB01KcilHvwXoBmvzOW/ID2JEJPAJGrXHqgAIva/x2URy
+ObAMlE23UNHe0SLeSkVk6gdPv2NcxbudTGSkMoaJcyAyQ2tISARE4a44ZzmpJ/93
+LVNA/9WKkFp+cyThmni8vhheTsQP5gfM0yjLFhhAKDOqIg41uTgYLw9aLTqPRqbb
++lklYGzrIhybgI7ztN0H600WzccLi+OtSKIQ0gC3gzuk3R3tk194fU1yAT7SvKr9
+/6wY3ovO0AQoHf8t0Z+66QyvzicgsHMdAAkiarO1D+tqTyByeUYPZxP1s9Tly3A3
+o4V04Ici0WHFV7aSm7vKqaw4THgZsrbZrPSHJ/vkH4DG7BzoecaUcLsdq+vm2swa
+39qWHzz0lE12Iw4ioHeuhNZQ4yNkqTTzQPotmVKnZt1lXURiw4s03mYN4QH3w9cw
+uFFO6WAGeAA/UUMRD0HPD7SH3DYp+Q7h2C02yZF1gYZcOEbGP8idSEP7YvFshNiF
++7WBWi5929kqflqijon0Jzct6zfpu998BYbF9NS/ns2IEAhnGHoMMu17snEDTVqZ
+TuemLQzZxt0fEmIsAsb4lpKrnCe1q2jpf4o6aSE5IEobPaR6oEC0Cgpzs/3zZfTO
+kTCSlY4zDoYIs5v0BdgOKZUaTszZafoQ3QIDAQABMA0GCSqGSIb3DQEBCwUAA4IC
+AQAOs/bOxbA1AtEw7faawH8AIyqS2KkO2dPAEPiQkZH1l+BfAMbBoIA9XUwMX83P
+QqYIt+ixCF7NBNZojngMg0ugFEeBkZF8rEsLUur1x2ZibWA+NrsCZMWTRzfoJpJV
+hZBN5PrPMlWOzEQ4o9IYaS67FyuDf/y4oFLc9VTNwpmyRgmTaXlHAwLlEC5+mCi6
+/wrtWaOvUcSzYD4LuSMvRH1vvqCkAhA+ByoKvZLGVqj5UCLuwkz9JOJMJlsDdF/G
+2dN2dSpv1GiNE40unq4kY8hXEa3hSjW+N/SPi2ftaH+bXLYp3+3gel/9CuotfbEY
+Ovqj1olIvOq8m+2/DHhctL1D37ryAMxru62mIr7Flyv+KLkCxrvzBVko08uAX13m
+z3dkQL4qbu0SfXlaZcoioahRzZSxGjQS7I/vswJRYwoqMR3JzChHM+SHFdGgSECV
+KW4cYyR0rBU3ydNuKm1PvoTEz5qlX1sYkO1fRa7sNGSxtcU+YjyfsMLM/lDvVfk1
+T8u+ZBAYlEkGLMtkpL9a4VZkDLVbPduEymOe9NgcEiE8l5WxIcMxJ1roEizInAB6
+G1Wd1M36vuZabAqPENSevEDlgGSskyDMTGm+/p1BrWC+CF5BzjUdxC1D1HNLOtNp
+6jgGfPUrlk8wECvf7zBP2Yr841i/RgOnRVaDs42HF/VxlQ==
+-----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..8dad934
--- /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
+LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMRYcusmQq98vRvq
+yPiFYp/tGU/hvcIHTUpyKUe/BegGa/M5b8gPYkQk8AkatceqAAi9r/HZRHI5sAyU
+TbdQ0d7RIt5KRWTqB0+/Y1zFu51MZKQyholzIDJDa0hIBEThrjhnOakn/3ctU0D/
+1YqQWn5zJOGaeLy+GF5OxA/mB8zTKMsWGEAoM6oiDjW5OBgvD1otOo9Gptv6WSVg
+bOsiHJuAjvO03QfrTRbNxwuL461IohDSALeDO6TdHe2TX3h9TXIBPtK8qv3/rBje
+i87QBCgd/y3Rn7rpDK/OJyCwcx0ACSJqs7UP62pPIHJ5Rg9nE/Wz1OXLcDejhXTg
+hyLRYcVXtpKbu8qprDhMeBmyttms9Icn++QfgMbsHOh5xpRwux2r6+bazBrf2pYf
+PPSUTXYjDiKgd66E1lDjI2SpNPNA+i2ZUqdm3WVdRGLDizTeZg3hAffD1zC4UU7p
+YAZ4AD9RQxEPQc8PtIfcNin5DuHYLTbJkXWBhlw4RsY/yJ1IQ/ti8WyE2IX7tYFa
+Ln3b2Sp+WqKOifQnNy3rN+m733wFhsX01L+ezYgQCGcYegwy7XuycQNNWplO56Yt
+DNnG3R8SYiwCxviWkqucJ7WraOl/ijppITkgShs9pHqgQLQKCnOz/fNl9M6RMJKV
+jjMOhgizm/QF2A4plRpOzNlp+hDdAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA
+aEpS/bxTWohZ6Xie0/tsOwaSEf7o42N6CwicYeYVXo8Tx+5+eU2nPiS9W4ErvYgw
+VucvVg7VRzf0nYjDmGLfrQ7Cnq+5pkCdNjVCVKO6z4iATdJzYLHwpgIHypFRVfKR
+g4XvZvbQfTgyDIXAMqODIDPGTsp7bJaU/p7na5RiJeOn/UjatA9aeOYEFyvWd3sH
+EQ9cC9OVgWuTw+jOLh/Z1l77qxKRVDoGshIsKxpaP2dS5sH4bo7lCfVTZf1VQiBZ
+eMr1+Bj8XwvxQ/GKMQ8xir1oaryZ6GezXRM3bht48i7lpEvgxx4pflEbTp32TFT1
+hviBqYrACp71wzwmFRwPXnVT7QWROmkHJUhz5tJ3uH8uI+6WT4GcP3qUUo6SEpuf
+OcDIDRcQq7LG8zjYGILUHbfS6m6XI2BnK+rjELmldGcw7XGplCTNV4zj+TQ2EKOw
++EkIkyXHSTitpMjrq5AXeIlMnIAClJ1T5TfV0bOimOHEsHV3H0sKvnCEO/0A443/
+yyV3/cYIJFG5i7QI80vsY8aMX6/xJh/m7EFm3DhEu/4luFYq24K/5rqVttMG6VNr
+cGq/IwVorIY8IzPy9o5w2xP1K8K6ryvo4dH6ng2xD5MgXxCw0nPAJyqYvOzgqeRi
+ECTtsuf/tCjdSUvAZHik79/mwcGTqvPtbY+I/2CqxCE=
+-----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..941ae26
--- /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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
+N2d1e4cwEgPv9Aut7EsDjVvpsTCooEJc
+-----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..92dc2fd
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/cn/keys/uas.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/DCCAuQCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV
+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAeFw0yMjA1MTkyMDUyMDha
+Fw0yMjA2MTgyMDUyMDhaMCUxCzAJBgNVBAYTAlVTMRYwFAYDVQQDDA0qLmV4YW1w
+bGUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuyyyjE3fh/BA
+xy1ju1hmxLqkqe0V9PA31pmPWFHKfbvX5r3k3fFMaYIPIP6T0d+as6RF4ZnBROsg
+mkisqg3KiEOQugN2UWuW91zWE1LWUFmME7q9ozHRiwR+haZcRDt9bfD0Dq9+qYZ4
+gkoA0mCzPm87Xq5VUPxjohhlblH41Yy5/bc7nPQPCpLGMAzVOzMBOLvfx79+y/56
+T0K4Bd6u7EORHCVaea5ZvoTpK/8hzRs8n2QoYb0HsiDXW/M0iGic4o1tj2db3lh+
+OFAVDfaoXF2M4CkwigaU89VAv3EzpoF7uT3e59Pd0EcVW/zO86srxH+XUsK9rlJ5
+wc/Nys9T7e+ubjN8xSyJEVeIvnkdl/YEMoDFMw9PH7+YsnEu79ioMVE9pmnLKyOv
+l2a6yV152pMpt6vRK8G1LGvc8UF5Vi/oSmmUzhKkTNtpwbX9syOL01cHs+hFURPW
+8b89YKNmf8pKuB0zDvt6A47Jb1xV8frmTkTUaDRS8V4Ug+VSTm6yVSqucpYt/B6g
+K4Z+eOlQhl3SIm6SK62GvFkQgWpHvxF7+U77UdZyPTXHI47MdG4HnGxFcUrQVDWd
+STizD0kVqRYCyYkgk4JBqTY1FtkgxKB+lu0UCIwdE5ogs9nK+QlsnR17ertdxr5m
+4tsIJ6AB6qU6B7gnOShbdpHHTn6EOQECAwEAATANBgkqhkiG9w0BAQsFAAOCAgEA
+ejMDMn5MRAgd9QfiRc8KaW3NX2Q5Fg7o7S7MeectlZ1+8yAw0Bdg7YuYRtXODYsk
+xRQePb6OlcsNWKa8KpChtH5jrcVtNmCllAk2SdeuTn+R/ZsnPSwlZqN8u+/WR3Zj
+2C9rdsUZDJu93UwgMrROBN+EnTkXD5iK/k/valOPwf54BSmb/esYtbkO5BuPJfuj
+x5cS0l/B50cwSYWadwkTqx9K5T9h91q7yG3hwNSSUy9G8RBk4peunQPkEQ1JrWHB
+3RkPEjfsxL9+O77aUBi9syaytv52tophpWWl3W3ksebDyqUcPGBbTodp3JOk0MUX
+FxEYofX8mrBCyXHp5wwMHjoHqqYq6jtObR79F21LidfGh30A07EP5chi3qguHxE8
+/Dt1w+qrsso6hC3wBfJJ1/Yll3L2jjWdwMOGhqpxb4f8vBoyvynZ5QOH/yjHO1g7
+VyAvD2gt6DwRPxQYgzKXIVFlXqPyZEkRFjwbVdDUUCJaFZA7vL2XkRqjPhUumV76
+M4om3yhNtULj2Ccw/C6cz+kAHlBtDvDDbAL1KEGXG3P0GFGs2fPfqBmUHAWa546r
+4ag5hEo5B7gspBSV7Ep2xIJPXpmfl+IcNQRlOKEsQljX+Er0eXpyykaEEouYL5Sw
+huLKfSLVTjIFZSEFFQR0ikbGMAM/P9rsZm+SkT08pCU=
+-----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..1e07642
--- /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
+b20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC7LLKMTd+H8EDHLWO7
+WGbEuqSp7RX08DfWmY9YUcp9u9fmveTd8Uxpgg8g/pPR35qzpEXhmcFE6yCaSKyq
+DcqIQ5C6A3ZRa5b3XNYTUtZQWYwTur2jMdGLBH6FplxEO31t8PQOr36phniCSgDS
+YLM+bzterlVQ/GOiGGVuUfjVjLn9tzuc9A8KksYwDNU7MwE4u9/Hv37L/npPQrgF
+3q7sQ5EcJVp5rlm+hOkr/yHNGzyfZChhvQeyINdb8zSIaJzijW2PZ1veWH44UBUN
+9qhcXYzgKTCKBpTz1UC/cTOmgXu5Pd7n093QRxVb/M7zqyvEf5dSwr2uUnnBz83K
+z1Pt765uM3zFLIkRV4i+eR2X9gQygMUzD08fv5iycS7v2KgxUT2macsrI6+XZrrJ
+XXnakym3q9ErwbUsa9zxQXlWL+hKaZTOEqRM22nBtf2zI4vTVwez6EVRE9bxvz1g
+o2Z/ykq4HTMO+3oDjslvXFXx+uZORNRoNFLxXhSD5VJObrJVKq5yli38HqArhn54
+6VCGXdIibpIrrYa8WRCBake/EXv5TvtR1nI9Nccjjsx0bgecbEVxStBUNZ1JOLMP
+SRWpFgLJiSCTgkGpNjUW2SDEoH6W7RQIjB0TmiCz2cr5CWydHXt6u13Gvmbi2wgn
+oAHqpToHuCc5KFt2kcdOfoQ5AQIDAQABoAAwDQYJKoZIhvcNAQELBQADggIBAF7l
+moWPq7HuurQQdXS9iM6erVigSsin1PW7AjF2JRhIce4y+GwtX+ndYCl/S0eJhDDj
+zaJ5AOEiV++y6Ce4/kkUJoXD6jBSm1Bl02gHjozW3IL7m8VvlBUHA+zAp7K4tkor
+0FXLhvcVChmnn3LyDzgFOwqjKlThab6bMMRMu5NRQhQWC4YPB2AZmc3ffXtWQrvf
+laQ75kaXx2K96fREmqWSj2z6i/nMOIn3N4PCWDxtGRg6nmULU2fwsQVyer5zD307
+Bdfccsmrld+cGJo0WVnukyGyCNpzgJxhZRhGCVEaQhO/CX3SqtDOIp3F9YKyFaDc
+HW4rFa9u/F93cRmG6o7+5L+L/htMCYu6WG4LiF4rnMHJ5Fgt0ckmswgC3oLM148W
+Hri9bUvHgL1V1jhW3Lks70YDtX5mA7u5cnKeBiZNGfZS/NmSxguz8cuJZPsZl9Dr
+wTu7qlzv0YLvtYiXYai7w/Sm9rY2+9WcSvKK34hVZ45wq0qjR6V0HY3reUSOtlns
+s+drb/u774310eGixSEU3N/lorRsFoh9rzTI5bq4cYIIO1ZSm2mhFsCxAiJ0Osat
+jSzy9sQ9LXzg7dbekJ0Xi5vhcLz96Xri1nZ/Ns8DOopC/tm94+M8gDNsGAn19koD
+BvFJ3zepyYOLt0EBHihw7GMbWUsWafrW/HRwOzBb
+-----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..d1d5330
--- /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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
+GHMYcphfWOkDUJCTZSU/gvR7508nCz/N
+-----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..1468ade
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/configs/ast1/pjproject.conf
@@ -0,0 +1,14 @@
+; Common pjproject options
+;
+;========================LOG_MAPPINGS SECTION OPTIONS===============================
+[log_mappings]  ; NOTE: The id of this object MUST be log_mappings.
+type = log_mappings
+asterisk_error = 0,1
+asterisk_warning = 2,3,4,5,6
+;asterisk_notice =
+;asterisk_verbose =
+;asterisk_debug = 3,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..642fdf0
--- /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 -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 -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 -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..2ea4f93
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/ca.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFpzCCA4+gAwIBAgIUSnDTD4tLBg1kDRv9d1AQFi+icoIwDQYJKoZIhvcNAQEL
+BQAwYzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJp
+dmF0ZSBDQTAeFw0yMjA1MTgxODQxMzZaFw0yMjA2MTcxODQxMzZaMGMxCzAJBgNV
+BAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQxHDAaBgNVBAMME0FzdGVyaXNrIFByaXZhdGUgQ0EwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQ91BFnDYawMJvkOkICGlfwBZo
+jVSZrXvhZxtaAfJQunl6l20DUwiKcTUq8cfgYWbW/yCoi2V7UE7rmoz91Q9diGc1
+7VMZuEmEnj1x302O6Z3P3OIZepAv9/+lG6G+dL+DK+WfDeeErCpe5trN17elxNLZ
+//WqOqewyd3tSZpZ78N/SnHqDVZVykCb2zLvAvLAkjwbUlbOazyDFWIfmgwobnTn
+WrZ0YGlCllucGVv9JuZGJNerosKSbTCI7JsBgpSIhOSy2QmneW2XcugFnCdxs5wL
+rCdz8IWiNnS6gaaiPHvLDdy3mg5/5agqIXFC5Mufb8dn8GsLoCG0GB/wBKRpp6mS
+Oo3PkiO/lkl3O9k8qUTGkDtDA7VMD2FoJOXmAKQxdv87Fes3OWi5BeWuQx5CwST8
+rVGbTCK6dJz2OXz2JjUiDdfZFsNj1OhA2ZBQxbG5SMIq0lllkbZI6ZUdgJ9WH/aA
+dogXXv0TyZ2bBBHfgCNzKLLM5btDkIWCUpQMrTKas7x7iTgDaN3eRcgE85hSIcbu
+KaheMSGadTbX082UcXgqfEraMMYK2VeBFejAX6Afm83KU5/68OXqTMZak09Z3oxx
+BpxKYrkJY2RB7a5pTfo3mP8ZY6S5N8hrt80QSRWUxxmURprrMfcJAPjRnsref0yQ
+tpwGGnXXKbU8JBhuXQIDAQABo1MwUTAdBgNVHQ4EFgQUFJZuEX6W4jrGHM0ICy3c
+NIWiWRIwHwYDVR0jBBgwFoAUFJZuEX6W4jrGHM0ICy3cNIWiWRIwDwYDVR0TAQH/
+BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAxyGVraSV60i/cJgySoaem7FLte//
+66l3pvYYyfhwwa9IXMoitS4ZKIt9gzSrkvaR5ng5Xr9CPROqR1OtMdeu1BxzoSDz
+aeLajkATQT4I2tM4sPgLpKGqjvy+aHEf7tTR4lGlv3FHH81pbMUpDL4pSrRLlGEH
+EfbbzL56kiN2TjyBWtVaryLj+/M7lNaNdmBYAj/lvf24fBtiR5Lvdr3S609m4mHN
+RKCnbpQxHFD6iSHzA4x72XOTjrLbyhqFFclrowNl1FZy/ViNMsIG34hS/sxdKCc7
+GKYUIUPEQG7x71hHoLVA7OiKXzE1hF/JM0VnFCC6YO7al3jroEHVvYFFr7vtly4X
+i/8sJ/fGTsHyrcDyVEXufiw82GHFtKCRLOBmUlbJI7RfcipdVJz/jgJsQ7lwTIg5
+qScMIpuN2DAeAHZrXr3Y/zPceLBFmb7+s8Sh5dz/nGV7zr6v8ZbUE1WgCrbjz1rG
+q+yPglKlPwKbdsjaPrLmzemt98T+MnRd5Zn+lPjXEJO9Sg8s6HG1dKYK47te9J6J
+ae0y1wmjZW4SvLFp0xiZO6NVkrQl01qNQ2V832E8/hDKCSxtDXpIwiVRzLngAV8O
+KMYhvL2wie9+Ctlir1J7simSnl8PjHlgybjsOkDtTxXOa9d21a9WX4hEJeMaYoY0
+VAjSfvfMgg1Btu4=
+-----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..5e68175
--- /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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
+QlR3v4Gv/pkn4W48dTIKIbHNFcBA3g==
+-----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..4c28ff6
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uac.crt
@@ -0,0 +1,29 @@
+-----BEGIN CERTIFICATE-----
+MIIE/jCCAuYCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV
+BAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
+ZDEcMBoGA1UEAwwTQXN0ZXJpc2sgUHJpdmF0ZSBDQTAeFw0yMjA1MTkyMTIyMTha
+Fw0yMjA2MTgyMTIyMThaMCcxCzAJBgNVBAYTAlVTMRgwFgYDVQQDDA91YWMuZXhh
+bXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqKqeIqa63
+rlx3c3bMNVLamCXB3b7HtYiTUqqXeKLIbT96sdCGb9VmK7VrLCdX11mUVQjSzvYm
+CmO2UwlgkKdHZztty95+/xfILUkz+gf7CYYGqvr5MYziQD+ss7oGjEfJoPB7tao0
+cPa1bcu+9V56CT7pvJazE7k/AjuHEGfjjXo6QkCi7GU+tl2R/27l7FHKo38E/I90
+eSD2t6vFAu6CHA6m4MVjhOJhQUyWMb+np0bogMznsnG+y/w7dyemTuVNZ5IdyGei
+qd+H5S9NsXbKSFhszWQImizvRxsLLEn2sl/oTJsGCzdCKU+bPRGHqj7l4u/f9mb4
+gD6ZZri6O51qW4EJ1du+qtczg+zBqOqONtJrCHkwmPAOgbU3TYNcUfwNyQBQBAc/
+Wfs0Ygj47rNHb7wknwsQP9+69GqadpBIOteLhU00cGBPzLLB9PP+J+gO2fn2HC0u
+iy70o31dsn0VT4oG8jY3LPI982XIM3JguWa68RA2YV2+aALhPOHwbv6V3OmaPHP1
+uXNBwR99U2GU4Hve1vcGuwqx91xwiy2pZR8KWIiv1dlA2Q8XORbdoEkqMafOatuq
+EqSgsin7jmWB6XiC7ZXodEEOETw5Wd0Rzo0aHfXZ8sYTWgtD6uuv7I0qdtmH5bIJ
+vKo0RyC3h+6M3ekKnWCtxwc+Y2t4FX9fMQIDAQABMA0GCSqGSIb3DQEBCwUAA4IC
+AQA7vReuw82GIqH3P5J7tCS9Gab9IpsOLgbRzyqEbuu6DC3GAuBoRvvpeJwi2x2z
+3X43VlYM7F7RyCQDau+KK4g3ZOAyWrHdbFqYhZlfJfPduIyt2Tk9k40uPM4vmIyV
+e9x/4gBRl4ecNFackv4wsa+CFe7jytgNshpbcT545HAaVqZ1syDYGb+14zqk7LRW
+opcfR8TDGUA9O2xLdfUOyiX9Q3V78S8ZEcB0+DeibZ21LKXASBLtcg6fmCLUfB74
+Bx22DTV8QqMEVf+7gVq7lq6wuJXLqS6dAi8x0QsoiazvnWF1DjHXMhpxiOmKI/Kn
+M+53YPXqVh4zVcRKP/vlV/duvzGrbjVo/fOiU915nCZLC7rKN5mFYAFO2yxn/XzO
+5uNBAxx5zjFzg6OX0uEFxol8M6Bn2Pj4CL2qeCc85A0PTsQWfIJ4h0TW+2Y3ARMX
+H5txNMRQ6NSx7pN8d+4UrQOn8toZsu0dvMyloNYzHv6oDWbAwWebWdDTHmyihH8B
+Ve5gOqGdklnq3WkAQys7CH2DF/QBU9OiHywuPwMZkFmPBw/Pn63zK0Lflf86zujQ
+7+y192rMwfNcdq1NiJLBSMUbCCVe+4bJ727tmuNPGrotBrG4OZ8nqLY9qHUMvTMb
+XWCsfLNuFF+w6t3X+hmVWUCjMitcHLUZfJHWVP/WdExQQw==
+-----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..f0be497
--- /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
+LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKoqp4iprreuXHdz
+dsw1UtqYJcHdvse1iJNSqpd4oshtP3qx0IZv1WYrtWssJ1fXWZRVCNLO9iYKY7ZT
+CWCQp0dnO23L3n7/F8gtSTP6B/sJhgaq+vkxjOJAP6yzugaMR8mg8Hu1qjRw9rVt
+y771XnoJPum8lrMTuT8CO4cQZ+ONejpCQKLsZT62XZH/buXsUcqjfwT8j3R5IPa3
+q8UC7oIcDqbgxWOE4mFBTJYxv6enRuiAzOeycb7L/Dt3J6ZO5U1nkh3IZ6Kp34fl
+L02xdspIWGzNZAiaLO9HGwssSfayX+hMmwYLN0IpT5s9EYeqPuXi79/2ZviAPplm
+uLo7nWpbgQnV276q1zOD7MGo6o420msIeTCY8A6BtTdNg1xR/A3JAFAEBz9Z+zRi
+CPjus0dvvCSfCxA/37r0app2kEg614uFTTRwYE/MssH08/4n6A7Z+fYcLS6LLvSj
+fV2yfRVPigbyNjcs8j3zZcgzcmC5ZrrxEDZhXb5oAuE84fBu/pXc6Zo8c/W5c0HB
+H31TYZTge97W9wa7CrH3XHCLLallHwpYiK/V2UDZDxc5Ft2gSSoxp85q26oSpKCy
+KfuOZYHpeILtleh0QQ4RPDlZ3RHOjRod9dnyxhNaC0Pq66/sjSp22Yflsgm8qjRH
+ILeH7ozd6QqdYK3HBz5ja3gVf18xAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEA
+SMiv45cnQfTdwyIXHB0TvWBG6UKZbT/j8RcPBsjHyU85Xc20fdXfSOqvFYc6VRN/
+bjH2HbvsYTEyMNY9iQ2UoDXRf53Uj9AzqakaQ+mhC8K7/4u4DjA4dCTMy+fFkSzT
+sCLQ7Uh9zvRIjimyWSFuEKWbBvCJzTvZteaOBZwDTfZ3JSYfuBuiPI8o0AHSqwZm
+OgSCu41mY1YQcbXWzOjpIR5AaYQDhriPVnPOsZsuojIUWT79dxYeyVfXJf8WVoYu
+eWJ+IkFivwzutUvPXOst2BHASugA0Jp8t7D8KBOZQGeeev891AYj0xRier8RbcrX
+uP5s936sK7JSJ7Pv1NqcLgLewR1sFWQP1M9JOBGl9kP3ASdRmRUgpsZIyoPD8YPj
+VfTgdoA1Ox8oU32lOTh+GXKfTmUc9NWj3rnBm8irca/QUw+QTjDPFR5d1w0p2Srh
+Hz8tSCqabx16TPyxBCNQEpOxvUb3/ArQYvFomE9S/gsRmTu6sezUSVvv84+JuIGX
+Sz6ljJJ1iCJt26DWvRpbsz8Le6xgXU6tmVKwWTR5sgEQO/VISSob0153npFGr30j
+DAHL3er2bSX2hEfek6j1BYVasY3mxUN1Pb9mby4PH24O802KX2OmzKEY8gZAvigA
+wX6n01kmVoFfvcTIK+Fiv7ZQUu3uS8wqNEZ7GlE6Gaw=
+-----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..0850b03
--- /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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
+JT7j8iLJP3V7rE3Ag17AuC80ximkXA==
+-----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..26c77bd
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET
+MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
+dHkgTHRkMRwwGgYDVQQDDBNBc3RlcmlzayBQcml2YXRlIENBMB4XDTIyMDUxOTIx
+MjYwNFoXDTIyMDYxODIxMjYwNFowGzELMAkGA1UEBhMCVVMxDDAKBgNVBAMMA3Vh
+czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN31uQPNJmQMut+OiAzh
+4z1cviFeKoWUrqcBETz7qbmas7u2Kdcyd/UC8hCmG4DgB3n02JyBrOna8Rm/InVf
+ZPEZ2P5C++1M3rL4phATGNtzWAta8qjXYC5fdpnwk3Ehqri6L/DQfU/jWOUU+F3D
+GMlnsA1le4nSTycvM6xy+Lk43/6aVPtzVI6UWuAVwntYuUIb0wjGknM9C9sgVe6D
+kTfREv+y8jtYkGbDlrWWvm8YU2v4aFGCgW7YoxjxJiJiWDRHu9V2NZxjUgSl6k8+
++4JqzRHP2+e+K4vWERepGODK8WnEm/30Br+tEDHhK84GYmkE/PK0Yy9UPK4WAplZ
+rjdkDU9d/mz74XKEug+qMLT4QnEcuko+M/JH+AYM7NC1B/QxvvaEvkmuYIMKWrtM
+MAxSXy3m+aAb07I0KeRIPP/E3mmTZYU2rGU1eFNg7bfsMBO8D0bevHFFYYS9816R
+XEze2BWmo1LXBWctwqkk6VMCvJOAV7yVod0yNxtTK1CDnwLwpCgK+IK4AFShh2p5
+8vakduqtxNL2e2DIeTUz1qA7wuG+pAQF73xcknkeiKTlIsoIRlgNUwSAA9b9Igsw
+ieKRA7ZH8/LN4nsLOzOZ/h/kw9vC1VrJnV+7hzZjPXiL+N429XVfiyzBCLVIr3ca
+xl2I2D1A55Z2orD6jdjPbQrlAgMBAAGjHDAaMBgGA1UdEQQRMA+CDSouZXhhbXBs
+ZS5jb20wDQYJKoZIhvcNAQELBQADggIBALv1luzL0z5TFBrsv101uLhvfRYgbNtb
+r1CUO8Axpy+lzlRR+JxJJgbIt3SvGm/VeCKI5RjrKt3nVWnJfVG3g6X2OcJakoPt
+ojtvM4cgTleKKgelyS8HeqgrbKfmZcEzfvTQA+/vTN4TlY5nU/xJ7EC4/ihwUNoN
+3Kd+d9WzYGQe+yxWesRz+o0DKtg9RpzicECN2X/UoMwd3hOh8dcmzLlvuTz+UW1M
+bdeLV6bYgxRB2BIEPmeVxALUIqjOYAg3siQvk1poz7rMg5veLXVTor4RbsgxUepC
+pNsuPbtTm2MGHLwEFOGYloxvnU1XmPr86iprniQ3aQtJHCzt8IbTaF9M/G2wzHC2
+Qcsr79O4GIj/RyvgHCOhmhSLGIFmGSlU8W2TLG40c6WSS8padaD035qWiUrusRzG
+twk7bh4iPcfQnZ+FUUnjjqPUPnDI5dV3rLd5nfTvfi5Uq3r3yh0sAdcYMYefQD2n
+IQe0DYtYl2ABrxtp5Dj7Xpj2ZCrK3n1eUN7qpQeTcpTUHWvOz9aotN+KafxslSsN
+qmf5/3E8YLlJdkyL8DZzhbEnOksHyyeMmcgMwpL4S5Nucqe9eUanBoVPSeTOVvmA
+wiVfEu0YG/FZiVZAMOOoWaGO79Ma/TatLSSkzEcYGsh3uS/LFdIFKT1X4FvQSuw4
+PMfm+Tq5nqhk
+-----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..78b1f5b
--- /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
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAN31uQPNJmQMut+OiAzh4z1cviFeKoWU
+rqcBETz7qbmas7u2Kdcyd/UC8hCmG4DgB3n02JyBrOna8Rm/InVfZPEZ2P5C++1M
+3rL4phATGNtzWAta8qjXYC5fdpnwk3Ehqri6L/DQfU/jWOUU+F3DGMlnsA1le4nS
+TycvM6xy+Lk43/6aVPtzVI6UWuAVwntYuUIb0wjGknM9C9sgVe6DkTfREv+y8jtY
+kGbDlrWWvm8YU2v4aFGCgW7YoxjxJiJiWDRHu9V2NZxjUgSl6k8++4JqzRHP2+e+
+K4vWERepGODK8WnEm/30Br+tEDHhK84GYmkE/PK0Yy9UPK4WAplZrjdkDU9d/mz7
+4XKEug+qMLT4QnEcuko+M/JH+AYM7NC1B/QxvvaEvkmuYIMKWrtMMAxSXy3m+aAb
+07I0KeRIPP/E3mmTZYU2rGU1eFNg7bfsMBO8D0bevHFFYYS9816RXEze2BWmo1LX
+BWctwqkk6VMCvJOAV7yVod0yNxtTK1CDnwLwpCgK+IK4AFShh2p58vakduqtxNL2
+e2DIeTUz1qA7wuG+pAQF73xcknkeiKTlIsoIRlgNUwSAA9b9IgswieKRA7ZH8/LN
+4nsLOzOZ/h/kw9vC1VrJnV+7hzZjPXiL+N429XVfiyzBCLVIr3caxl2I2D1A55Z2
+orD6jdjPbQrlAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAgEAYTcECHuJFKG9Meod
+iFnUGr8FvGsQhcR9+xnuHNPgMvxX4W2bU3ANuL5tiXBvS7JaAhCmADb1dnfoa9sH
+vxjDkep4Eo0EXEdirXO6HdjrnEXAdpqRW5Wl8v9SZA+I4wW0LgBHYj+x927x5In1
+6XjXnknznjiTryEwRA+A5/132vjBQ0qgW51roEFH+OmdEuFPaDyGvftvW536RNT5
+hTNxOOpn/zOd5hO7kZXyf1aK6AC7yukyP9kZmEfc2NmmThSeQUK40qUEZUHtIOxN
+dARiFWR8BHodr+F/JtnZasQ9M4KzzcZy3VfSqgcCf+kPWOJWuqnoYvxsEp4gi2PN
+gvjOoJRqeGgNeFQdT37rIJin6Xli0jjEPV5yGfVNaCywB25kjZ+t5xxmxekSAmWR
+rFGylX8F5nIC7IlTJ+9aiEbQ4PRI5Sxhoka04teLIW5EN0kYRPM4AUOVRSMn1KIN
+RsB8Rp/lq7W0BSuqOikV+pTN3VtT1110IzJbOA7E70wuSzMs09VoFYt9Ws1LYFYM
+ICqI2/EiGqkQIN6t+NRifKtUOQ/SDYG50Gcur5XpXXcSaGK7/cPZcM9b1CtRsGQd
+zVCK7PIqiS8zdTetm80asNjPztLWMJsLgYVuxcjjIW0OI1+9riaWBH+q5o+TX6t7
+3vXuDIfvCC+aeqIH7D7eZfppunA=
+-----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..d479201
--- /dev/null
+++ b/tests/channels/pjsip/secure_calling/calls/nominal/allow_wildcard_certs/san/keys/uas.key
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+mhzD3hI/tUtx0NSIioknJdEh55j8NT4=
+-----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/+/18573
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: testsuite
Gerrit-Branch: 16
Gerrit-Change-Id: I2d4cf66b642ccf97a6b275e1425c0cbfad5eb0ab
Gerrit-Change-Number: 18573
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/20220519/64dd2597/attachment-0001.html>


More information about the asterisk-code-review mailing list