From 7f24a3eafd877d5e5d203b8e50c97ada4ca877d1 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Thu, 15 Nov 2012 19:41:42 +0000 Subject: [PATCH] --- inc/commons/class.common.tools.php | 80 +++++++++++++++++++++- inc/ws/Metier/class.ws.book.parametres.php | 2 +- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/inc/commons/class.common.tools.php b/inc/commons/class.common.tools.php index dce745e8e..b4005cde3 100644 --- a/inc/commons/class.common.tools.php +++ b/inc/commons/class.common.tools.php @@ -471,12 +471,90 @@ class commonTools { $res.='' . $core->typo->BoutonOK(__('Générer la demande de signature')) . ''; $res.=''; $res.=''; - $res .= ''; $res .= commonPage::bf(); + + $res .= commonPage::bh(); + $res.='
'; + $res.=''; + $res.=''; + $res.=''; + $res.=''; + $res.=''; + $res.='
' . __('Générer un p12 et pem à partir d\'un certificat et d\'une clé ') . '
' . __("Clé privée") . '
' . __("Certificat") . '
' . $core->typo->BoutonOK(__('Exporter')) . '
'; + $res.='
'; + $res .= commonPage::bf(); + $res .= commonPage::bMain(); return $res; } + public static function makeP12() { + //http://help.adobe.com/en_US/as3/iphone/WS144092a96ffef7cc-371badff126abc17b1f-7fff.html + commonDroits::min(1); + $tmp = cubeFiles::tempdir(); + if (!file_exists($tmp)) { + mkdir($tmp, 0777, true); + } + + $e = explode('.', $_FILES['cert']['name']); + array_pop($e); + $base = implode('.', $e); + + $pem = $tmp . '/' . $base . '.pem'; + $p12 = $tmp . '/' . $base . '.p12'; + + // Generate pem file + $openssl = new cubeCommandLine('openssl'); + $openssl->setPath(CONVERTER_PATH); + $openssl->setArg(null, 'x509'); + $openssl->setArg('-in', $_FILES['cert']['tmp_name']); + $openssl->setArg('-inform', 'DER'); + $openssl->setArg('-out', $pem); + $openssl->setArg('-outform', 'PEM'); + $openssl->execute(); + + + // Generate p12 file + $openssl = new cubeCommandLine('openssl'); + $openssl->setPath(CONVERTER_PATH); + $openssl->setEnv('RANDFILE', $tmp . '/.rnd'); + $openssl->setArg(null, 'pkcs12'); + $openssl->setArg('-export'); + $openssl->setArg('-password', 'pass:'); + $openssl->setArg('-inkey', $_FILES['key']['tmp_name']); + $openssl->setArg('-in', $pem); + $openssl->setArg('-out', $p12); + $openssl->execute(); + + // Generate pem bundle file + $openssl = new cubeCommandLine('openssl'); + $openssl->setPath(CONVERTER_PATH); + $openssl->setEnv('RANDFILE', $tmp . '/.rnd'); + $openssl->setArg(null, 'pkcs12'); + $openssl->setArg('-password', 'pass:'); + $openssl->setArg('-in', $p12); + $openssl->setArg('-out', $pem); + $openssl->setArg('-nodes'); + $openssl->setArg('-clcerts'); + $openssl->execute(); + + unlink($tmp . '/.rnd'); + + $tmpfile = cubeFiles::tempnam() . '.zip'; + + $zip = new cubeCommandLine('zip'); + $zip->cd($tmp); + $zip->setArg(null, $tmpfile); + $zip->setArg('0'); + $zip->setArg('u'); + $zip->setArg('r'); + $zip->setArg('X'); + $zip->setArg(null, '.'); + $zip->execute(); + + cubeHTTP::downloadFile($tmpfile, $base . '.zip'); + } + public static function makeCsr() { // http://help.adobe.com/en_US/as3/iphone/WS144092a96ffef7cc-371badff126abc17b1f-8000.html diff --git a/inc/ws/Metier/class.ws.book.parametres.php b/inc/ws/Metier/class.ws.book.parametres.php index fe0496b45..e0b15cc7a 100644 --- a/inc/ws/Metier/class.ws.book.parametres.php +++ b/inc/ws/Metier/class.ws.book.parametres.php @@ -39,7 +39,7 @@ class wsBookParametres extends wsParametres { $epsFilter->extensions = '*.ai;*.eps'; $this->fields['version'] = array('type' => 'combo', 'default' => '2', 'editable' => true, 'label' => __('Version'), 'datas' => array('1' => '1', '2' => '2'), 'grade' => 3); - $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de la publication")); + $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de la publication"), 'embed' => false); $this->fields['url_link'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du lien de retour au site")); $this->fields['signature'] = array('type' => 'combo', 'default' => '1', 'editable' => true, 'label' => __('Signature'), 'grade' => 3, 'datas' => wsDroits::getSignatures()); $this->forms['important'] = array('label' => __('Description de la publication'), -- 2.39.5