aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-04-20 13:56:35 +0200
committerLukas Reschke <lukas@owncloud.com>2015-04-20 13:56:35 +0200
commit3959f8ac4e979f9c1fcaef3d18deb0c7c858f560 (patch)
treebc0a395f5555ecd8f098f3d34473069dda387496 /lib
parente9d6807c5cca15e4a2a2243b6ab855b975ba0b3e (diff)
parent9bc48451b939df58b7e7e90300c9c716c348027f (diff)
downloadnextcloud-server-3959f8ac4e979f9c1fcaef3d18deb0c7c858f560.tar.gz
nextcloud-server-3959f8ac4e979f9c1fcaef3d18deb0c7c858f560.zip
Merge pull request #15637 from owncloud/migrate-certificate-stuff
Migrate personal certificate handling to AppFramework controllers
Diffstat (limited to 'lib')
-rw-r--r--lib/private/security/certificate.php20
-rw-r--r--lib/private/security/certificatemanager.php4
-rw-r--r--lib/public/icertificatemanager.php3
3 files changed, 14 insertions, 13 deletions
diff --git a/lib/private/security/certificate.php b/lib/private/security/certificate.php
index 468427d0702..0d7fcc4148d 100644
--- a/lib/private/security/certificate.php
+++ b/lib/private/security/certificate.php
@@ -49,18 +49,18 @@ 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->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) {
+ $gmt = new \DateTimeZone('GMT');
+ $info = openssl_x509_parse($data);
+ if(!is_array($info)) {
throw new \Exception('Certificate could not get parsed.');
}
+
+ $this->commonName = isset($info['subject']['CN']) ? $info['subject']['CN'] : null;
+ $this->organization = isset($info['subject']['O']) ? $info['subject']['O'] : null;
+ $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;
}
/**
diff --git a/lib/private/security/certificatemanager.php b/lib/private/security/certificatemanager.php
index beeb87a8316..d61c7f29327 100644
--- a/lib/private/security/certificatemanager.php
+++ b/lib/private/security/certificatemanager.php
@@ -107,12 +107,12 @@ class CertificateManager implements ICertificateManager {
*
* @param string $certificate the certificate data
* @param string $name the filename for the certificate
- * @return \OCP\ICertificate|void|bool
+ * @return \OCP\ICertificate
* @throws \Exception If the certificate could not get added
*/
public function addCertificate($certificate, $name) {
if (!Filesystem::isValidPath($name) or Filesystem::isFileBlacklisted($name)) {
- return false;
+ throw new \Exception('Filename is not valid');
}
$dir = $this->getPathToCertificates() . 'uploads/';
diff --git a/lib/public/icertificatemanager.php b/lib/public/icertificatemanager.php
index ec88f32e291..3014cd8f633 100644
--- a/lib/public/icertificatemanager.php
+++ b/lib/public/icertificatemanager.php
@@ -38,7 +38,8 @@ interface ICertificateManager {
/**
* @param string $certificate the certificate data
* @param string $name the filename for the certificate
- * @return bool | \OCP\ICertificate
+ * @return \OCP\ICertificate
+ * @throws \Exception If the certificate could not get added
* @since 8.0.0
*/
public function addCertificate($certificate, $name);