aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/security/certificate.php
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2014-08-27 16:28:51 +0200
committerRobin Appelman <icewind@owncloud.com>2014-08-31 10:47:50 +0200
commit4efe6f62402482608cb1b2f4c51b9b3e41603733 (patch)
tree371c210240a69df23e0a732d8f45dd0993fa5bb9 /lib/private/security/certificate.php
parent1361bbb1e6a47266cf3a11b2ddba77706522d9e0 (diff)
downloadnextcloud-server-4efe6f62402482608cb1b2f4c51b9b3e41603733.tar.gz
nextcloud-server-4efe6f62402482608cb1b2f4c51b9b3e41603733.zip
Add unit tests and fix rootcerts creation bug
Diffstat (limited to 'lib/private/security/certificate.php')
-rw-r--r--lib/private/security/certificate.php27
1 files changed, 16 insertions, 11 deletions
diff --git a/lib/private/security/certificate.php b/lib/private/security/certificate.php
index 953111f469d..63c02a124f4 100644
--- a/lib/private/security/certificate.php
+++ b/lib/private/security/certificate.php
@@ -30,17 +30,22 @@ class Certificate implements ICertificate {
/**
* @param string $data base64 encoded certificate
* @param string $name
+ * @throws \Exception If the certificate could not get parsed
*/
public function __construct($data, $name) {
$this->name = $name;
- $info = openssl_x509_parse($data);
- $this->commonName = $info['subject']['CN'];
- $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->issuerName = $info['issuer']['CN'];
- $this->issuerOrganization = isset($info['issuer']['O']) ? $info['issuer']['O'] : null;
+ try {
+ $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->issuerName = isset($info['issuer']['CN']) ? $info['issuer']['CN'] : null;
+ $this->issuerOrganization = isset($info['issuer']['O']) ? $info['issuer']['O'] : null;
+ } catch (\Exception $e) {
+ throw new \Exception('Certificate could not get parsed.');
+ }
}
/**
@@ -62,7 +67,7 @@ class Certificate implements ICertificate {
}
/**
- * @return string
+ * @return string|null
*/
public function getCommonName() {
return $this->commonName;
@@ -105,14 +110,14 @@ class Certificate implements ICertificate {
}
/**
- * @return string
+ * @return string|null
*/
public function getIssuerName() {
return $this->issuerName;
}
/**
- * @return string
+ * @return string|null
*/
public function getIssuerOrganization() {
return $this->issuerOrganization;