diff options
Diffstat (limited to 'apps/files_external/ajax/addRootCertificate.php')
-rw-r--r-- | apps/files_external/ajax/addRootCertificate.php | 34 |
1 files changed, 7 insertions, 27 deletions
diff --git a/apps/files_external/ajax/addRootCertificate.php b/apps/files_external/ajax/addRootCertificate.php index fcd3a617ada..38b18605945 100644 --- a/apps/files_external/ajax/addRootCertificate.php +++ b/apps/files_external/ajax/addRootCertificate.php @@ -3,8 +3,8 @@ OCP\JSON::checkAppEnabled('files_external'); OCP\JSON::callCheck(); -if ( ! ($filename = $_FILES['rootcert_import']['name']) ) { - header('Location:' . OCP\Util::linkToRoute( "settings_personal" )); +if (!($filename = $_FILES['rootcert_import']['name'])) { + header('Location:' . OCP\Util::linkToRoute("settings_personal")); exit; } @@ -13,33 +13,13 @@ $data = fread($fh, filesize($_FILES['rootcert_import']['tmp_name'])); fclose($fh); $filename = $_FILES['rootcert_import']['name']; -$view = new \OC\Files\View('/'.\OCP\User::getUser().'/files_external/uploads'); -if (!$view->file_exists('')) { - $view->mkdir(''); -} - -$isValid = openssl_pkey_get_public($data); - -//maybe it was just the wrong file format, try to convert it... -if ($isValid == false) { - $data = chunk_split(base64_encode($data), 64, "\n"); - $data = "-----BEGIN CERTIFICATE-----\n".$data."-----END CERTIFICATE-----\n"; - $isValid = openssl_pkey_get_public($data); -} +$certificateManager = \OC::$server->getCertificateManager(); -// add the certificate if it could be verified -if ( $isValid ) { - // disable proxy to prevent multiple fopen calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - $view->file_put_contents($filename, $data); - OC_Mount_Config::createCertificateBundle(); - \OC_FileProxy::$enabled = $proxyStatus; -} else { +if (!$certificateManager->addCertificate($data, $filename)) { OCP\Util::writeLog('files_external', - 'Couldn\'t import SSL root certificate ('.$filename.'), allowed formats: PEM and DER', - OCP\Util::WARN); + 'Couldn\'t import SSL root certificate (' . $filename . '), allowed formats: PEM and DER', + OCP\Util::WARN); } -header('Location:' . OCP\Util::linkToRoute( "settings_personal" )); +header('Location:' . OCP\Util::linkToRoute("settings_personal")); exit; |