From bfa0c4b78a977726971f7b48e8f921b8adb56e8b Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Sun, 31 Aug 2014 11:06:18 +0200
Subject: [PATCH] Explicitly set the timezones

---
 lib/private/security/certificate.php |  5 +++--
 tests/lib/security/certificate.php   | 12 ++++++------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/lib/private/security/certificate.php b/lib/private/security/certificate.php
index 63c02a124f..778524507e 100644
--- a/lib/private/security/certificate.php
+++ b/lib/private/security/certificate.php
@@ -35,12 +35,13 @@ class Certificate implements ICertificate {
 	public function __construct($data, $name) {
 		$this->name = $name;
 		try {
+			$gmt = new \DateTimeZone('GMT');
 			$info = openssl_x509_parse($data);
 			$this->commonName = isset($info['subject']['CN']) ? $info['subject']['CN'] : null;
 			$this->organization = isset($info['subject']['O']) ? $info['subject']['O'] : null;
 			$this->serial = $this->formatSerial($info['serialNumber']);
-			$this->issueDate = new \DateTime('@' . $info['validFrom_time_t']);
-			$this->expireDate = new \DateTime('@' . $info['validTo_time_t']);
+			$this->issueDate = new \DateTime('@' . $info['validFrom_time_t'], $gmt);
+			$this->expireDate = new \DateTime('@' . $info['validTo_time_t'], $gmt);
 			$this->issuerName = isset($info['issuer']['CN']) ? $info['issuer']['CN'] : null;
 			$this->issuerOrganization = isset($info['issuer']['O']) ? $info['issuer']['O'] : null;
 		} catch (\Exception $e) {
diff --git a/tests/lib/security/certificate.php b/tests/lib/security/certificate.php
index 9ae68f2cf1..41c8a74b83 100644
--- a/tests/lib/security/certificate.php
+++ b/tests/lib/security/certificate.php
@@ -55,14 +55,14 @@ class CertificateTest extends \PHPUnit_Framework_TestCase {
 	}
 
 	function testGetIssueDate() {
-		$this->assertEquals(new DateTime('2014-08-27 08:45:52'), $this->goodCertificate->getIssueDate());
-		$this->assertEquals(new DateTime('2014-08-27 08:48:51'), $this->invalidCertificate->getIssueDate());
+		$this->assertEquals((new DateTime('2014-08-27 08:45:52 GMT'))->getTimestamp(), $this->goodCertificate->getIssueDate()->getTimestamp());
+		$this->assertEquals((new DateTime('2014-08-27 08:48:51 GMT'))->getTimestamp(), $this->invalidCertificate->getIssueDate()->getTimestamp());
 	}
 
 	function testGetExpireDate() {
-		$this->assertEquals(new DateTime('2015-08-27 08:45:52'), $this->goodCertificate->getExpireDate());
-		$this->assertEquals(new DateTime('2015-08-27 08:48:51'), $this->invalidCertificate->getExpireDate());
-		$this->assertEquals(new DateTime('2014-08-28 09:12:43'), $this->expiredCertificate->getExpireDate());
+		$this->assertEquals((new DateTime('2015-08-27 08:45:52 GMT'))->getTimestamp(), $this->goodCertificate->getExpireDate()->getTimestamp());
+		$this->assertEquals((new DateTime('2015-08-27 08:48:51 GMT'))->getTimestamp(), $this->invalidCertificate->getExpireDate()->getTimestamp());
+		$this->assertEquals((new DateTime('2014-08-28 09:12:43 GMT'))->getTimestamp(), $this->expiredCertificate->getExpireDate()->getTimestamp());
 	}
 
 	/**
@@ -85,4 +85,4 @@ class CertificateTest extends \PHPUnit_Framework_TestCase {
 		$this->assertSame('Internet Widgits Pty Ltd', $this->invalidCertificate->getIssuerOrganization());
 		$this->assertSame('Internet Widgits Pty Ltd', $this->expiredCertificate->getIssuerOrganization());
 	}
-}
\ No newline at end of file
+}
-- 
GitLab