diff options
author | Mario Vavti <mario@mariovavti.com> | 2018-08-09 11:07:38 +0200 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2018-08-09 11:07:38 +0200 |
commit | 5c5a808290b5e7b0ede1ad3f2a1574c6d7f76dc3 (patch) | |
tree | cf799e20dd003007939e7702700ed564bc86e5e2 /Zotlabs/Lib/Zotfinger.php | |
parent | 5c30b2f27133d4fe20e509f095951e1fb36e77ba (diff) | |
parent | 1d13cc1601eb6e4a127d975465fda32d92c402a1 (diff) | |
download | volse-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.php | 50 |
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 |