2013-11-12 19:24:34 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
if (!defined('ONYX')) exit;
|
|
|
|
|
|
|
|
function remove_directory($dir)
|
|
|
|
{
|
|
|
|
if (is_dir($dir))
|
|
|
|
{
|
|
|
|
$objects = scandir($dir);
|
|
|
|
foreach ($objects as $object)
|
|
|
|
{
|
|
|
|
if ($object != "." && $object != "..")
|
|
|
|
{
|
|
|
|
if (filetype($dir."/".$object) == "dir")
|
|
|
|
remove_directory($dir."/".$object);
|
|
|
|
else
|
|
|
|
unlink($dir."/".$object);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
reset($objects);
|
|
|
|
rmdir($dir);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-11-25 18:18:51 +00:00
|
|
|
function new_client($name, $misc_dir)
|
2013-11-12 21:41:10 +00:00
|
|
|
{
|
2013-11-25 17:24:46 +00:00
|
|
|
//TODO handle if already exist
|
|
|
|
putenv("OPENSSL_CONF=$misc_dir/openssl.cnf");
|
|
|
|
putenv("TOP_DIR=$misc_dir/pki");
|
|
|
|
$output = shell_exec("$misc_dir/CA.sh -newclient $name");
|
2013-11-12 21:41:10 +00:00
|
|
|
}
|
|
|
|
|
2013-11-25 14:38:06 +00:00
|
|
|
if (!empty($p[2]))
|
2013-11-12 21:41:10 +00:00
|
|
|
{
|
2013-11-25 17:24:46 +00:00
|
|
|
if (isset($VAR['misc_dir']))
|
|
|
|
$misc_dir = $VAR['misc_dir'];
|
|
|
|
else
|
|
|
|
{
|
|
|
|
erreur("Merci d'ajouter la variable misc_dir dans root.xml");
|
|
|
|
return "admin/home";
|
|
|
|
}
|
|
|
|
|
|
|
|
$misc_dir = $VAR['misc_dir'];
|
|
|
|
|
2013-11-25 14:38:06 +00:00
|
|
|
if ($p[2] == "newca")
|
|
|
|
{
|
2013-11-25 17:24:46 +00:00
|
|
|
putenv("OPENSSL_CONF=$misc_dir/openssl.cnf");
|
|
|
|
putenv("TOP_DIR=$misc_dir/pki");
|
|
|
|
$output = shell_exec("$misc_dir/CA.sh -newca");
|
2013-11-12 21:41:10 +00:00
|
|
|
|
2013-11-25 17:24:46 +00:00
|
|
|
$ca_file = "$misc_dir/pki/cacert.crt";
|
2013-11-12 21:41:10 +00:00
|
|
|
//TODO check permission ?
|
|
|
|
if (file_exists($ca_file))
|
|
|
|
{
|
2013-11-25 17:24:46 +00:00
|
|
|
$data = openssl_x509_parse(file_get_contents("$misc_dir/pki/cacert.crt"));
|
2013-11-25 14:38:06 +00:00
|
|
|
$template->assign("cert", $data);
|
2013-11-12 21:41:10 +00:00
|
|
|
}
|
2013-11-25 14:38:06 +00:00
|
|
|
}
|
2013-11-12 21:41:10 +00:00
|
|
|
|
2013-11-25 14:38:06 +00:00
|
|
|
elseif ($p[2] == "deleteca")
|
|
|
|
{
|
2013-11-25 17:24:46 +00:00
|
|
|
$dir = "$misc_dir/pki";
|
2013-11-12 19:24:34 +00:00
|
|
|
remove_directory($dir);
|
2013-11-25 14:38:06 +00:00
|
|
|
}
|
2013-11-25 18:02:49 +00:00
|
|
|
|
|
|
|
if ($p[2] == "deleteca" || $p[2] == "newca")
|
|
|
|
{
|
|
|
|
header("Location: /admin/");
|
|
|
|
exit;
|
|
|
|
}
|
2013-11-12 19:24:34 +00:00
|
|
|
}
|
|
|
|
|