auth->check_module_permissions('mail'); header('Content-Type: text/xml; charset=utf-8'); header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); /* This function fix PHP's messing up POST input containing characters space, dot, open square bracket and others to be compatible with with the deprecated register_globals */ function getRealPOST() { $pairs = explode("&", file_get_contents("php://input")); $vars = array(); foreach ($pairs as $pair) { $nv = explode("=", $pair, 2); $name = urldecode($nv[0]); $value = $nv[1]; $vars[$name] = $value; } return $vars; } function dns_record() { global $private_key; $public_key=''; exec('echo "'.$private_key.'"|openssl rsa -pubout -outform PEM',$pubkey,$result); $pubkey=array_diff($pubkey,array('-----BEGIN PUBLIC KEY-----','-----END PUBLIC KEY-----')); foreach($pubkey as $values) $public_key=$public_key.$values."\n"; $dns_record="HOSTNAME: default._domainkey.".$_POST['domain'].".\n\nTEXT: v=DKIM1; t=s; p=".$public_key; return $dns_record; } $_POST=getRealPOST(); switch ($_POST['action']) { case 'create': /* create DKIM Private-key */ exec("openssl rand -out /usr/local/ispconfig/server/temp/random-data.bin 4096",$output,$result); exec("openssl genrsa -rand /usr/local/ispconfig/server/temp/random-data.bin 1024",$privkey,$result); unlink("/usr/local/ispconfig/server/temp/random-data.bin"); $private_key=''; foreach($privkey as $values) $private_key=$private_key.$values."\n"; $dns_record=dns_record(); break; case 'show': /* show the DNS-Record onLoad */ $private_key=$_POST['pkey']; $dns_record=dns_record(); break; } echo "\n"; echo "\n"; echo "".$private_key."\n"; echo "".$dns_record."\n"; echo "\n"; ?>