<?php
-
-require_once('include/crypto.php');
-
-function hostxrd_init(&$a) {
+/**
+ * @file mod/hostxrd.php
+ */
+use Friendica\App;
+use Friendica\Core\Config;
+use Friendica\Core\Renderer;
+use Friendica\Core\System;
+use Friendica\Protocol\Salmon;
+use Friendica\Util\Crypto;
+
+function hostxrd_init(App $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 ));
-
+ $pubkey = Config::get('system', 'site_pubkey');
- $prvkey = '';
+ if (! $pubkey) {
+ $res = Crypto::newKeypair(1024);
- 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);
+ Config::set('system','site_prvkey', $res['prvkey']);
+ Config::set('system','site_pubkey', $res['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();
+ $tpl = Renderer::getMarkupTemplate('xrd_host.tpl');
+ echo Renderer::replaceMacros($tpl, [
+ '$zhost' => $a->getHostName(),
+ '$zroot' => System::baseUrl(),
+ '$domain' => System::baseUrl(),
+ '$bigkey' => Salmon::salmonKey(Config::get('system', 'site_pubkey'))]
+ );
-}
\ No newline at end of file
+ exit();
+}