From 9de5f3f8ed134b1409cff2056a8db987a40229f8 Mon Sep 17 00:00:00 2001 From: terrafrost Date: Thu, 7 Jan 2021 20:21:27 -0600 Subject: [PATCH] X509: always parse the first cert of a bundle --- phpseclib/File/X509.php | 9 +- tests/Unit/File/X509/X509Test.php | 191 ++++++++++++++++-------------- 2 files changed, 105 insertions(+), 95 deletions(-) diff --git a/phpseclib/File/X509.php b/phpseclib/File/X509.php index 6dd598bd..07fd911d 100644 --- a/phpseclib/File/X509.php +++ b/phpseclib/File/X509.php @@ -5144,9 +5144,12 @@ class File_X509 * subject=/O=organization/OU=org unit/CN=common name * issuer=/O=organization/CN=common name */ - $temp = strlen($str) <= ini_get('pcre.backtrack_limit') ? - preg_replace('#.*?^-+[^-]+-+[\r\n ]*$#ms', '', $str, 1) : - $str; + if (strlen($str) > ini_get('pcre.backtrack_limit')) { + $temp = $str; + } else { + $temp = preg_replace('#.*?^-+[^-]+-+[\r\n ]*$#ms', '', $str, 1); + $temp = preg_replace('#-+END.*[\r\n ]*.*#ms', '', $str, 1); + } // remove new lines $temp = str_replace(array("\r", "\n", ' '), '', $temp); // remove the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- stuff diff --git a/tests/Unit/File/X509/X509Test.php b/tests/Unit/File/X509/X509Test.php index 9f5eeba9..68c47a87 100644 --- a/tests/Unit/File/X509/X509Test.php +++ b/tests/Unit/File/X509/X509Test.php @@ -754,100 +754,107 @@ ut3+b2Xvzq8yzmHMFtLIJ6Afu1jJpqD82BUAFcvi5vhnP8M7b974R18WCOpgNQvXDI+2/8ZINeU= public function testMultiCertPEM() { $a = '-----BEGIN CERTIFICATE----- -MIIL/DCCCuSgAwIBAgIQNC96aabFWNAAAAAAXBAmjjANBgkqhkiG9w0BAQsFADCB -uTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsT -H1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAy -MDE4IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEtMCsG -A1UEAxMkRW50cnVzdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBWTUMxMB4XDTIw -MDUxNDE4NDgwNloXDTIwMTEwOTE5MTgwNFowggE+MQ4wDAYDVQQREwU5NTEyNTEL -MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExETAPBgNVBAcTCFNhbiBK -b3NlMRowGAYDVQQJExEyMDY1IEhhbWlsdG9uIEF2ZTETMBEGCysGAQQBgjc8AgED -EwJVUzEZMBcGCysGAQQBgjc8AgECEwhEZWxhd2FyZTESMBAGA1UEChMJZUJheSBJ -bmMuMR0wGwYDVQQPExRQcml2YXRlIE9yZ2FuaXphdGlvbjEQMA4GA1UEBRMHMjg3 -MTM1MjEXMBUGCisGAQQBg55fAQQTBzQ0MDg0MjMxEjAQBgorBgEEAYOeXwEDEwJV -UzElMCMGCisGAQQBg55fAQITFWh0dHBzOi8vd3d3LnVzcHRvLmdvdjESMBAGA1UE -AxMJZUJheSBJbmMuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmaPd -qOlOyWc8n6MKXI8eIrKgketOTdxuoW1RzfmXB924j2WBzRqNFqcISCYN3a0VpMe3 -AqG9A+YyCWCJWmXdTZkAz3LeJCPTqbzf2nigXYfJX1KFhK96eVVcbirIhRtS4O5G -qYw8v4rokp8YFg/W+c+80i/egNYr4VZCC5zawaYBwtgMkUomSXqz3Yv7JkfZsv5q -pSLD5aO2wSIPjCiPpYzxDO2b/kX1goV6Oyvd4PTmvYteER01cx37dkj2mf/bTdrB -nHAyOF8+84ItHiZjHpi7MIxcmvi40wcPszPsx2GKyQ1604TVR6p+ZT9Gt4qMaJ7h -I7FQCl2dUOEzSF/4NwIDAQABo4IHdjCCB3IwggVkBggrBgEFBQcBDASCBVYwggVS -ooIFTqCCBUowggVGMIIFQjCCBT4WDWltYWdlL3N2Zyt4bWwwMzAxMA0GCWCGSAFl -AwQCAQUABCDQkSARaDrob8re0CIWy2UxJ97L55pY729ITDKZYPUWLTCCBPYWggTy -ZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxINHNJQUFBQUFBQUFBSFZWNzIvYk5o -RDluQUw3SDFqdFV3R1JKaWxLb2x5N1JiTTJUWUVWR0xBdDN4MWFrNHhva21FcHR0 -T2kvM3Z2SFpVbXdGWUR0czZQOStQZHU2TzllbnYrdHhQSCtqRHVobjZkR0tVVFVm -ZGgyTzc2WnAzOC9kZVY5TW5iTjcrOFdMMlVVbnlzKy9xd21ZYkRVcnpiRHJlMStO -UjE5K1BFa0xCV1VYUXEvcno1S0Q2Yzk4TmhFbjkwOTQzODFBdkY0RTBzc2hTRjBs -cGMzdSs2cmRDdmhKQVMrY2RqODV5R1NRUVI2OGQxMGs3VGZybFluRTRuZGNyVWNH -Z1dWbXU5SVAvWlpYbnVkdjNkL3ptYXFxb1dmRXF1NjBUdno0bDRtSi9IWFgyNkhJ -QUtMYXozZUNkaW5CNjZlcDNVL2VhMnErWHRKdHcxaCtHKzN5NzcraVNlZWI3bTJz -dHh2d25rdmovVVkzMDQxZ2szZ2hSaWV0alR3VlNmcDBVWVJ4eGNxSEhTWC8vWmRk -M3kxeXQrdmY0V1VmT0k1dSt1dEgxRTdZeCt5RE9iK1VjMG0xR3RDL2YraDYrYlVW -OWNlbE1DWFMyWUJ3ZzFZcmRkSjVkM0RiTllIZW93aWRCdFJ0S1dHQ1hpdE50TzdU -cmgvdHQ2MTdSVC9MSkE4S0o1U3ZINzBBd3hCOENMaTlWK003VlBxV2hrNVBUWmxG -cVoxTGhDWlVGNlZhWmFaZEk0WUtxS1JxbUtvTk9NempLeXk5Um9sY01JQnFFNk5i -bHlNaWVNRFFySk95Mk5vTmR2cHZUS2NYYWJtdkxKK2xIemkvaHNLc094WGxrcVk1 -VlBjWXA4UkNYMUxiR3FndFRLU2l0Qmppanhzd2hrZW5Ja21sb1ZvQ21OWjJvRmln -ZHBESklCTkpMcVJzTmtLZzlhY2hNZUlXalJFc2pNUTh4dTZLamtwN0YwUWdaYW9y -Q1NhdWF5UWsxTEhNaUlwZkpZQ2Z4ZHpGMm92SVZsZ2tGVjlHSk1qS3RTYStCR1Zp -RE1rWWJXcE15RENoYkszTEFhWDNpbS94bWNqWVB6Sld0b1NEWGk1MlJGTGZySWls -cU1WcEFsWkFUZ1VnWWRwS2FUYTRTVCtEbEdidHlqWkZHVUV1UlRDcXJvaUJxREZY -THNCbWJ2cFVVdjBLVlVycTB3SFFOWDNoeDB4L1V0ZTVGRnA2Q3FwWFdrYVVWVTJj -QVBVS3hKckdobUZKSFJidEJadEFJR0JXVXlIbW1jVVVwUitaSGUxeUQrRTRHeWVi -TXR4bThLUXpyUUN2R2lra1lPRDRoTWhTdmlVV0E2L0RIRGtwM3BLNm5nOEFBYXQx -a1h5Smc3OUJnN1JmYjBXU1dTdENxeDRqcFhCV2xUZEJvdG1ZQ1dDY0lPV01rZTJO -Y1NmV3BXbGpyRER0dG8wSWVQNnBDR0VJMDdoMmdsV3pUWk9GZkNzTG94bWNNRjRy -VjF1Q0s0R3kyQ0EyNVB4bGU3NFB2Rm0zdkRKSDhpb29zaVdzZUxpeFk2YVVtdmxJ -VFBlTEhMeml1V3pIWThiT2xvb2kzNjZ3eGt6a2dndGlTc2E4NDBGNXQvcCtaUCtt -OTQ4eDB2cWU2eTJRWUFBQT09MB8GA1UdEQQYMBaCCGViYXkuY29tggplYmF5LmNv -LnVrMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUAVYHUwhaQNgFK6gubVzxT8MDkOHhw -JQgXL6OqHQcT0wwAAAFyFJ9ciQAABAMARjBEAiBI40aXqg6PJiDDf8vz4RP9cKay -kBSUjs5oGiPJlBmJCAIgAeJzF/JVCiXbjgxPL9QTjYe+wn1DHqhzsjBWEoKYiZYw -EwYDVR0lBAwwCgYIKwYBBQUHAx8wDgYDVR0PAQH/BAQDAgeAMGYGCCsGAQUFBwEB -BFowWDAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMQYIKwYB -BQUHMAKGJWh0dHA6Ly9haWEuZW50cnVzdC5uZXQvdm1jMS1jaGFpbi5jZXIwMgYD -VR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC5lbnRydXN0Lm5ldC92bWMxY2EuY3Js -ME8GA1UdIARIMEYwNgYKYIZIAYb6bAoBCzAoMCYGCCsGAQUFBwIBFhpodHRwOi8v -d3d3LmVudHJ1c3QubmV0L3JwYTAMBgorBgEEAYOeXwEBMB8GA1UdIwQYMBaAFIu2 -OXbQNJCmP2LhZOo+vPR8RqFzMB0GA1UdDgQWBBRMIHPmuhcI/NyAybe3LKA1gblR -/zAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAjBJ/SPTRn8/kjfhLOBnhe -5QPkifZjsLqHJyWUCUoqFfKKazq6T6STMLl0drbsVWyc0Mh6sUSgUwh4Hn0DmGHu -ghDF5JCtoPYUz+G7l1BsAlGOvYd0H9ZcmgvfhiIjpn98Go4O/gXlK1oCd/jMIOMH -bOVB9BLb5ppf9uU2TCxTY67qUx5YylT3bfF4TVM0ZOYERQSZNByRNcFaku+FUpzU -JHHoDqokPw+0AFG2NgPiNhOg/nPh/pEWUYj5qjqgXP/hEvXerSFhdp6sN2OxES7p -GkO+J90tl9B7UQVtTO1bgGq98HIRdfusGzK5IG2MMT1CtPYR8S01mkf7KMiHK1zb +MIILODCCCSCgAwIBAgIQDh0LGipJ++wxFLj8X5MXKDANBgkqhkiG9w0BAQsFADCB +kDELMAkGA1UEBhMCVVMxDTALBgNVBAgTBFV0YWgxDTALBgNVBAcTBExlaGkxFzAV +BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29t +MS8wLQYDVQQDEyZEaWdpQ2VydCBWZXJpZmllZCBNYXJrIEludGVybWVkaWF0ZSBD +QTAeFw0yMDA3MzAwMDAwMDBaFw0yMTAxMjUxMjAwMDBaMIIBDjEdMBsGA1UEDxMU +UHJpdmF0ZSBPcmdhbml6YXRpb24xEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsr +BgEEAYI3PAIBAhMIRGVsYXdhcmUxEDAOBgNVBAUTBzM2MzMwMTkxGTAXBgNVBAkT +EDEwMDAgVyBNYXVkZSBBdmUxDjAMBgNVBBETBTk0MDg1MQswCQYDVQQGEwJVUzET +MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK +ExRMaW5rZWRJbiBDb3Jwb3JhdGlvbjESMBAGCisGAQQBg55fAQMTAlVTMRcwFQYK +KwYBBAGDnl8BBBMHNTY3NTczOTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAOCl7WccAcvSaf5+pNsV82VjFuwdzEwjDYESZmIuurz95e+JtJZst/M3Hw90 +YxKSDV4LdaVFAogXy2F+Npit1KhbBEb8vbBkm4LJ3iM8teE/10JugLyxrcVi3LSj +iKHs+rqxcTJsVYoR+CuPLuAbu4xKi+xQ4tVafrFd0Y21n6OL8nB2SRISHF58kRXq +UDW/NippF1AhcdCc5L5EmXFPCpyWfv+UXgTj9i+/I9AWUC3diHckb5NXd/wS7Jmq +5FE0uixRGTixI5a9uZr0jasTtfhlVtvqFyDmzARB/q9IU0eXm3dtcCJISIXGum6o +yCFUk8pyYsGd/M5Fyw7zbmEqsucCAwEAAaOCBgswggYHMB8GA1UdIwQYMBaAFOsN +zmX0UnV7TbPUsz0w41AYq+NuMB0GA1UdDgQWBBSkuL0+t0wu/+y2xkUY/FOSsiuV +ODAXBgNVHREEEDAOggxsaW5rZWRpbi5jb20wEwYDVR0lBAwwCgYIKwYBBQUHAx8w +gZkGA1UdHwSBkTCBjjBFoEOgQYY/aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Rp +Z2lDZXJ0VmVyaWZpZWRNYXJrSW50ZXJtZWRpYXRlQ0EuY3JsMEWgQ6BBhj9odHRw +Oi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRWZXJpZmllZE1hcmtJbnRlcm1l +ZGlhdGVDQS5jcmwwUAYDVR0gBEkwRzA3BglghkgBhv1sCgEwKjAoBggrBgEFBQcC +ARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAMBgorBgEEAYOeXwEBMF4G +CCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL2NhY2VydHMuZGlnaWNl +cnQuY29tL0RpZ2lDZXJ0VmVyaWZpZWRNYXJrSW50ZXJtZWRpYXRlQ0EuY3J0MAwG +A1UdEwEB/wQCMAAwggOsBggrBgEFBQcBDASCA54wggOaooIDlqCCA5IwggOOMIID +ijCCA4YWDWltYWdlL3N2Zyt4bWwwIzAhMAkGBSsOAwIaBQAEFGckN8uhuoNkcXXh +wRAm7wkz4JRLMIIDThaCA0pkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LEg0c0lB +QUFBQUFBQUNsMVR5MjdiTUJDODl5c0k5VXlhKytLanNITElJVWlCRnVqSjkxUlJR +cUdLSGNTQ25PYnJ1NVRVQkMwTVNKN2w3SEozZHJRL3o0OW03bC9PdytuWU51Q3dN +YTlQNC9IY05tV2Fuci9zZHBmTHhWM0luVjRlZCtpOTN5bS9NWmZoZmlwdEUySm9U +T21IeHpKdFlCNzZ5L1hwdFcyODhVWWpab24rdkR2M1AxNU9EOFBZdDgwMEhIL2I1 +M056dForR2FleXZ2ZzNIWC8zOTErTit0K0w5ODkxVWpITEh0dm5zWTB6WFd1Ryti +YjVMQkJkek5vR2NSTHdGenk1NzdpeWk4eHlzUXdETDNnR2dnZWlZWTBYczJWQjJu +T0ZRODFQb0hBcVltaFBGUUhLRXVSTDBIdk5CbHhBTGgrQlNsazZwb0R3VXJnUU1i +R3QxcVVBazJwVjlBRS9PQitxc0k1S2xwUlN0cG5GSWxSSlo3RWVDZHZQVzdQNmQ5 +T2JtWmgwVFdGd01ZakJrNXlHVnBFc0pNbU1BUjVHS1hmRmhPMzU3cWwwbnNFRGVl +Y29kQmcyVFZVblFjSFJBYkJBMHRDTGRpTDQ4OHRrdVVkZzRkbzF1SExzRlY0cjlD +Q3BsMXRJeDZKemVnMFZ4T2RGeUFTODhMMm03WU1sNnl1QkN5bVpycnNUb2N1YVpS +S094YUZhUXV5UTZGNXJ0cGI3UnUxd1N0SXdPcVV2NkZORjRWdFVqR1dGdEp2NUZn +S3p5d3d4TWprUnVXZFFBZEdEZEJqSjIzdXJGVEdvT0liU3FHRUZhNjc0RGJUQkg0 +eTBuOVFBWjBqWHE2WVpDckhZNmlGYlI3cXYwa04rVi8zK0RIdXB2WFdLQXJNcWdF +YThWTXBXbytXRkdVcURPVWkxVXh3M3BJR20yUzZ4VXgyU0FlVUc2V2xGVDUvVnN0 +S3FkVitlcWtwNHFTTHFnQlJTcmpnRzFTTlRCb0pETE10ZWpHTWEwT0hyNVg3Q3VZ +cXlPaC9WMFhwNjNJWUxTMTl4YUtlZGx0UHFsWDMzNkEwYlJhNW9nQkFBQTCBigYK +KwYBBAHWeQIEAgR8BHoAeAB2AFVZU64wlgCAbNLrUgimyZ6TGCisEFa0QhxVNhVM +X3WsAAABc6DTF3wAAAQDAEcwRQIgRsnN1miYsyCMT234C14MaMgSAgKHXmc7RrBM +a/1ovTMCIQCOc/THDvltzhZrtnoRSbjc2EYp57A0VVHvduQPa7FKBDANBgkqhkiG +9w0BAQsFAAOCAgEA8UQt5jcUeOaDkhvbLq380Oq1Jy8Vr1BO1GPisn20KRCz/NvE +56f8hhmZlZ1xXfOM+JCaGQnwVwcRBQtLQ/+6bmeT8/WM3hf9A5rP0g0ZxvaAlQtu +e6UjvgnNx02QOKNPrmxN0rW8s24kUi0OAf1ump3SY5Ab+S+ywRG7Ah+3qch+FwA8 +CYau9TgV5kvfYDRULBM84EeFhsPcwT+YJ5u7RvkGQobqNao21Ti5tupiks/9NzI8 +splBS77Z6bPdFGvZ7pJdXiiDB2+SZdyv8iqDFM6mKRbOcuwAHcTY2zVhcS46H7SO +8OU7L/2y0XQB1rMtQDarCKwdAcsAb2e+N8mYQ0glQX4k41Sf4saMXsU1EjnOCUas +YxvVgJRD+fe4JWf8EO59fElzkrQsT3guBIzV5Kg1dYaCHngCYQIakjKQM0eKxZ3d +vn4648A0vXynhJUThOSxN4jbvVA5uYYHqHDMjJtkBPDA7HtLSIxRNattshOAoeC5 +LMszAsL9th/WoXkAa2lTs2kashOHEpx+ncGactrL8tu7dvU01Yk6yP1QAjFEo1Nt +8umUG7jQQIuquB2ry4qzFuQvKpbNQZ//9RsSmq1nni+DEKd/S63N7T8M0FpioLVm +Z2OXFTCG5ORjPUOyMGjxzjEPZWmTOG+gqNOc0HKXbuBAsGZbK4dind+YdZE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIFJzCCBA+gAwIBAgIRALPSJ9szCF4XAAAAAFHTkx8wDQYJKoZIhvcNAQELBQAw -gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL -Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg -MjAwOSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw -BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy -MB4XDTE5MDQxNjE1NDU0M1oXDTMwMTExNjE2MTU0M1owgbkxCzAJBgNVBAYTAlVT -MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1 -c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxOCBFbnRydXN0LCBJ -bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxLTArBgNVBAMTJEVudHJ1c3Qg -Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gVk1DMTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAOrOE7nPsgxnWadbz0f0D+btzyoxflXpbrILq358XJUn6MRq -k1m9BmK35G7bf0myFreyx60Rxcj+SvNRsraMd6FUzDuOccfK3PzbUktMKPxMBFh7 -R4/ZSNBMTko2fn7jhRPdFW9k0N+sSKtHwhu0xw8qzGg8oFRJgJgpxZv1zzrny43E -IuRiozQgg2J3ZzY4ova0s/BM/SLqdsGo+Jc68S7jsI6K7zKvw0FB3T6SWYxrBc1p -GsYvlmbCrDs3AP0Jcuske1GlLzFUpUkrvx4na9i4t7XhxVcwz3AuMRbU4nHDIc0w -tLG9Fm24xB31kSqybtpxEGC/oNybhCWjQDqYW58CAwEAAaOCASEwggEdMA4GA1Ud -DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdJQQMMAoGCCsGAQUF -BwMfMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3 -LmVudHJ1c3QubmV0L3JwYTAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0 -dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9j -cmwuZW50cnVzdC5uZXQvZzJjYS5jcmwwHQYDVR0OBBYEFIu2OXbQNJCmP2LhZOo+ -vPR8RqFzMB8GA1UdIwQYMBaAFGpyJnrQHu995ztpUdRsjZ+QEmarMA0GCSqGSIb3 -DQEBCwUAA4IBAQBphKvXT6JDtmuQAhgH8nZ5Xo9LlymnCw5fiGpQJ13rsr2A2Jnl -1Z8poTwskM71kIImRctlYs2Q52Sgvd0egxvcPELQSL7BMGPU42BijWCEvnD8GZvU -/1x5pOg0F2SiEQ5ycmC9ADr2EskcbqMh2QMOOlNV4JfFjtUY1JCTviOWJ7O29wsE -aVMiY6EdrsN1hjqmwaxfzTVikM5m+jgUKWqK3U+56outMWziOfxcpo+Ur67hTglc -fTUKIRMTGhDMVFbwW5O2jINlBjGt5yAbhI/LnRwPvB99LFkISKX50c2NDEkOzEPp -mDaPrsUl15evEah6amsBfpQiWRbKpDLKs1kF +MIIHLzCCBRegAwIBAgIQDZXVhKBTvJ0ZjW6meNxHhTANBgkqhkiG9w0BAQsFADCB +iDELMAkGA1UEBhMCVVMxDTALBgNVBAgTBFV0YWgxDTALBgNVBAcTBExlaGkxFzAV +BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29t +MScwJQYDVQQDEx5EaWdpQ2VydCBWZXJpZmllZCBNYXJrIFJvb3QgQ0EwHhcNMTkw +OTIzMTIyNTQyWhcNMzQwOTIzMTIyNTQyWjCBkDELMAkGA1UEBhMCVVMxDTALBgNV +BAgTBFV0YWgxDTALBgNVBAcTBExlaGkxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMu +MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBW +ZXJpZmllZCBNYXJrIEludGVybWVkaWF0ZSBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAPfhMd+2RBjNZpqq0GVUF0kKK72fQxhJbnxgYv7GFpmi69sX +dgeqH9RE07ShTDtkLks9G/GuiXsLEmjSCBDDTwfB3hpbdrZsNQFWOIRHXmU8ykuP +bCd/HVRZGULeWvbt93deEB1el5MpxP9Fs3LKjw7xytbuM/nkGJ4D2R1IHC953FoU +4BYsp+8VB1+7Gh8eKVh+HpmBeEfIB+cuq4FpZKxi+F5J7UjW5yO4SuDcTF4AMY0J +DPuKIy+Og6laNOtDS30P1CUu1N6BwLMYTbeqyYHJ7B3kLWsDceGMqIcxo8zrk1rT +sJctcXHXhB4k2PnVxt8qkQjg2Lo++kU0dFSUyrzvg3WrGypv9vphWMI+vmCjmu2K +0BZLZ4nKshoTX495R6pGbsecGaaGgACB/1NcGI7PVp7spY2ytLvHHZ+Hh446BGFy +AdM8lZCMXEhNftP8RRRVr8mwHHzyIa86r4yk0SkOlXUkNrGdTqqyMSDJ3W7DWGO/ +vCObzXiM0aq77ebD/0fE5LsZhEJYx7txF9NA1DoICgHp8zqF35i3UOp4+5IyJ8A9 +MjqYcX+LayH06B45bMgTHLmJKcsRYvXAtu+nIvIL0fk4+Ea7kJ7MNx5/udS89b2f +vSFC4hmA3OBDiJqGmldwqJL/HP7RI8O54yj10vpiH4obDo8QgfhKSVoX5HwDAgMB +AAGjggGJMIIBhTAdBgNVHQ4EFgQU6w3OZfRSdXtNs9SzPTDjUBir424wHwYDVR0j +BBgwFoAU7G8ipLME4sFjh+Z3Y+pGaU7u/OswDgYDVR0PAQH/BAQDAgGGMBMGA1Ud +JQQMMAoGCCsGAQUFBwMfMBIGA1UdEwEB/wQIMAYBAf8CAQAwfAYIKwYBBQUHAQEE +cDBuMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wRgYIKwYB +BQUHMAKGOmh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFZlcmlm +aWVkTWFya1Jvb3RDQS5jcnQwSAYDVR0fBEEwPzA9oDugOYY3aHR0cDovL2NybDMu +ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VmVyaWZpZWRNYXJrUm9vdENBLmNybDBCBgNV +HSAEOzA5MDcGCWCGSAGG/WwKATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5k +aWdpY2VydC5jb20vQ1BTMA0GCSqGSIb3DQEBCwUAA4ICAQA6v371ixHAA9WyGlFr ++RvmmqkZZg9pf6+j5sKImeTFAHfYz3TJa2wmDRpZxSRYy9VUFOMPVDEavsJ2i5Ua +jEpkJ/7VHbX60joKBxQHKCbMpbwGen6pTXRaeE6CET2zCMbyiIqT2E6OiBZL8cWT +sgLbdhVKspoOi+c3JwTR4khR24J9IQVxK90Nq3zeciYgBvM3G+ZJtZgkA58CRdex +xVO6O57bwe4ti4rlRgWOGgAFpFrJSD1jqhhHD3MWg17NI4k0ciBPoDHHBAI8hiqg +jPM+y6aEGww7BFSfkp5tl/Aq9uGXCwxNLOc3UlUd8Cc0qH1KfkvjrumVMmJhsk9I +88YefbCuGPZ5Q8V2LIz7LrNDh0VRq/HSENXn1sBGlAFahgUTk/cWJ8nKA+8mHMlE +NGmx205Rtbf9lVL1CbH3QFwlvGEfqoMXw6G9JW2hFQVTKpBKuzjQw43CEw12lstP +oa96ixNAXXVGJsdKpYCqTIWJ0x1DssvG2shvzdHxawvYQ3C+/jaEoQ6bxSIdanI2 +NMtBdy9Q0TjDc7uf/eaUYKkP4wskNc1Os23oHllFHVm++8wdDltNulc7B1TXIQ+2 +oD5EoULMFSVUHX8gtyd463GgOQtBDwf3aZ4Xe6eDrhdfI/4IW098kVcg+qFO841L +qzFkAKWjJj4KjfrbZX4C0Spfxw== -----END CERTIFICATE-----'; $x509 = new File_X509();