aboutsummaryrefslogblamecommitdiffstats
path: root/mod/hostxrd.php
blob: fe61a874c36ad952f034fd57fb183634a3073036 (plain) (tree)
1
2
3
4
5
6
7
     
 

                                   
                            
                                                 
                                         
























                                                            
                                                      
                               
                                                                                                                                                                                        

                              

 
<?php

require_once('include/crypto.php');

function hostxrd_init(&$a) {
	header('Access-Control-Allow-Origin: *');
	header("Content-type: text/xml");
	$pubkey = get_config('system','site_pubkey');

	if(! $pubkey) {

		// should only have to ever do this once.

		$res=openssl_pkey_new(array(
			'digest_alg' => 'sha1',
			'private_key_bits' => 4096,
			'encrypt_key' => false ));


		$prvkey = '';

		openssl_pkey_export($res, $prvkey);

		// Get public key

		$pkey = openssl_pkey_get_details($res);
		$pubkey = $pkey["key"];

		set_config('system','site_prvkey', $prvkey);
		set_config('system','site_pubkey', $pubkey);
	}

	$tpl = file_get_contents('view/xrd_host.tpl');
	echo str_replace(array(
		'$zhost','$zroot','$domain','$zot_post','$bigkey'),array($a->get_hostname(),z_root(),z_path(),z_root() . '/post', salmon_key(get_config('system','site_pubkey'))),$tpl);
	session_write_close();
	exit();

}