From 42a7ff61ff487bdf4010084c5a1d85a598f9d7ab Mon Sep 17 00:00:00 2001 From: Metaclassing Date: Tue, 7 Mar 2017 15:22:44 -0600 Subject: [PATCH 1/2] namespacing the array_map function --- phpseclib/File/X509.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpseclib/File/X509.php b/phpseclib/File/X509.php index 863d9e99..275ff253 100644 --- a/phpseclib/File/X509.php +++ b/phpseclib/File/X509.php @@ -3464,7 +3464,7 @@ class X509 $altName = array(); if (isset($subject->domains) && count($subject->domains) > 1) { - $altName = array_map(array('X509', '_dnsName'), $subject->domains); + $altName = array_map(array('\phpseclib\File\X509', '_dnsName'), $subject->domains); } if (isset($subject->ipAddresses) && count($subject->ipAddresses)) { From 91a0866fdced1d7b5741b31f0ef2556dfce1d6a5 Mon Sep 17 00:00:00 2001 From: terrafrost Date: Tue, 7 Mar 2017 21:29:35 -0600 Subject: [PATCH 2/2] Tests/X509: add unit test for issue involving multiple domain names --- tests/Unit/File/X509/X509Test.php | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/Unit/File/X509/X509Test.php b/tests/Unit/File/X509/X509Test.php index 3b88161c..99e09397 100644 --- a/tests/Unit/File/X509/X509Test.php +++ b/tests/Unit/File/X509/X509Test.php @@ -454,4 +454,30 @@ Mj93S runkit_constant_remove('FILE_X509_IGNORE_TYPE'); } + + // fixed by #1104 + public function testMultipleDomainNames() + { + $keyGenerator = new RSA(); + $keys = $keyGenerator->createKey(512); + + $privateKey = new RSA(); + $privateKey->loadKey($keys['privatekey']); + + $publicKey = new RSA(); + $publicKey->loadKey($keys['publickey']); + $publicKey->setPublicKey(); + + $subject = new X509(); + $subject->setDomain('example.com', 'example.net'); + + $subject->setPublicKey($publicKey); + + $issuer = new X509(); + $issuer->setPrivateKey($privateKey); + $issuer->setDN($subject->getDN()); + + $x509 = new X509(); + $x509->sign($issuer, $subject); + } }