aboutsummaryrefslogtreecommitdiffstats
path: root/mod/hostxrd.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/hostxrd.php')
-rw-r--r--mod/hostxrd.php30
1 files changed, 29 insertions, 1 deletions
diff --git a/mod/hostxrd.php b/mod/hostxrd.php
index c7861d26d..fe61a874c 100644
--- a/mod/hostxrd.php
+++ b/mod/hostxrd.php
@@ -1,10 +1,38 @@
<?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('$zroot','$domain'),array(z_root(),z_path()),$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();