$res.='<tr><td class="right" colspan="2"><a href="#" class="submit">' . $core->typo->BoutonOK(__('Générer la demande de signature')) . '</a></td></td>';
$res.='</table>';
$res.='</form>';
- $res .= '</div>';
$res .= commonPage::bf();
+
+ $res .= commonPage::bh();
+ $res.='<form action="' . SITE_PATH . 'tools/makeP12" method="post" class="notajax" enctype="multipart/form-data">';
+ $res.='<table class="liste">';
+ $res.='<tr><th colspan="2"><strong>' . __('Générer un p12 et pem à partir d\'un certificat et d\'une clé ') . '</strong></th></tr>';
+ $res.='<tr><td>' . __("Clé privée") . '</td><td><input type="file" name="key" /></td></tr>';
+ $res.='<tr><td>' . __("Certificat") . '</td><td><input type="file" name="cert" /></td></tr>';
+ $res.='<tr><td class="right" colspan="2"><a href="#" class="submit">' . $core->typo->BoutonOK(__('Exporter')) . '</a></td></td>';
+ $res.='</table>';
+ $res.='</form>';
+ $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
$epsFilter->extensions = '*.ai;*.eps';\r
\r
$this->fields['version'] = array('type' => 'combo', 'default' => '2', 'editable' => true, 'label' => __('Version'), 'datas' => array('1' => '1', '2' => '2'), 'grade' => 3);\r
- $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de la publication"));\r
+ $this->fields['title'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("Titre de la publication"), 'embed' => false);\r
$this->fields['url_link'] = array('type' => 'text', 'default' => 'http://', 'editable' => true, 'label' => __("URL du lien de retour au site"));\r
$this->fields['signature'] = array('type' => 'combo', 'default' => '1', 'editable' => true, 'label' => __('Signature'), 'grade' => 3, 'datas' => wsDroits::getSignatures());\r
$this->forms['important'] = array('label' => __('Description de la publication'),\r