aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Lib/Zotfinger.php
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2018-08-09 11:07:38 +0200
committerMario Vavti <mario@mariovavti.com>2018-08-09 11:07:38 +0200
commit5c5a808290b5e7b0ede1ad3f2a1574c6d7f76dc3 (patch)
treecf799e20dd003007939e7702700ed564bc86e5e2 /Zotlabs/Lib/Zotfinger.php
parent5c30b2f27133d4fe20e509f095951e1fb36e77ba (diff)
parent1d13cc1601eb6e4a127d975465fda32d92c402a1 (diff)
downloadvolse-hubzilla-5c5a808290b5e7b0ede1ad3f2a1574c6d7f76dc3.tar.gz
volse-hubzilla-5c5a808290b5e7b0ede1ad3f2a1574c6d7f76dc3.tar.bz2
volse-hubzilla-5c5a808290b5e7b0ede1ad3f2a1574c6d7f76dc3.zip
Merge remote-tracking branch 'mike/master' into dev
Diffstat (limited to 'Zotlabs/Lib/Zotfinger.php')
-rw-r--r--Zotlabs/Lib/Zotfinger.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/Zotlabs/Lib/Zotfinger.php b/Zotlabs/Lib/Zotfinger.php
new file mode 100644
index 000000000..537e440d4
--- /dev/null
+++ b/Zotlabs/Lib/Zotfinger.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Zotlabs\Lib;
+
+use Zotlabs\Web\HTTPSig;
+
+class Zotfinger {
+
+ static function exec($resource,$channel = null) {
+
+ if(! $resource) {
+ return false;
+ }
+
+ if($channel) {
+ $headers = [
+ 'Accept' => 'application/x-zot+json',
+ 'X-Zot-Token' => random_string(),
+ ];
+ $h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false);
+ }
+ else {
+ $h = [ 'Accept: application/x-zot+json' ];
+ }
+
+ $result = [];
+
+
+ $redirects = 0;
+ $x = z_fetch_url($resource,false,$redirects, [ 'headers' => $h ] );
+
+ if($x['success']) {
+
+ $result['signature'] = HTTPSig::verify($x);
+
+ $result['data'] = json_decode($x['body'],true);
+
+ if($result['data'] && is_array($result['data']) && array_key_exists('encrypted',$result['data']) && $result['data']['encrypted']) {
+ $result['data'] = json_decode(crypto_unencapsulate($result['data'],get_config('system','prvkey')),true);
+ }
+
+ return $result;
+ }
+
+ return false;
+ }
+
+
+
+} \ No newline at end of file