From 8fc48f2d4398fce0fe345da6e5e0587006459c1c Mon Sep 17 00:00:00 2001 From: zotlabs Date: Wed, 21 Feb 2018 15:56:51 -0800 Subject: add event resource_id to iconfig so Diaspora can search on it without looking inside JSON objects. --- include/event.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/event.php b/include/event.php index c1cf59425..1077a3c64 100644 --- a/include/event.php +++ b/include/event.php @@ -1200,6 +1200,13 @@ function event_store_item($arr, $event) { )); } + // propagate the event resource_id so that posts containing it are easily searchable in downstream copies + // of the item which have not stored the actual event. Required for Diaspora event federation as Diaspora + // event_participation messages refer to the event resource_id as a parent, while out own event attendance + // activities refer to the item message_id as the parent. + + set_iconfig($item_arr, 'system','event_id',$event['event_hash'],true); + $res = item_store($item_arr); $item_id = $res['item_id']; -- cgit v1.2.3 From fef3155e6ac04dcbc5b414b8dbc252267282dd47 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Wed, 21 Feb 2018 16:41:33 -0800 Subject: cleanup the recent crypto code modifications. We need this stuff to be readable. --- include/crypto.php | 51 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/include/crypto.php b/include/crypto.php index ab33ba096..1040ac29b 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -119,21 +119,27 @@ function crypto_encapsulate($data,$pubkey,$alg='aes256cbc') { } function other_encapsulate($data,$pubkey,$alg) { + if(! $pubkey) logger('no key. data: ' . $data); - $oaep = false; + // This default will change in the future. For now make it backward compatible. - if(strpos($alg,'.oaep')) { - $oaep = true; - $subalg = substr($alg,0,-5); - } - else { - $subalg = $alg; + $padding = OPENSSL_PKCS1_PADDING; + $base = $alg; + + $exts = explode('.',$alg); + if(count($exts) > 1) { + switch($exts[1]) { + case 'oaep': + $padding = OPENSSL_PKCS1_OAEP_PADDING; + break; + } + $base = $exts[0]; } - $fn = strtoupper($subalg) . '_encrypt'; + $fn = strtoupper($base) . '_encrypt'; if(function_exists($fn)) { // A bit hesitant to use openssl_random_pseudo_bytes() as we know @@ -151,14 +157,14 @@ function other_encapsulate($data,$pubkey,$alg) { $iv = openssl_random_pseudo_bytes(256); $result['data'] = base64url_encode($fn($data,$key,$iv),true); // log the offending call so we can track it down - if(! openssl_public_encrypt($key,$k,$pubkey,(($oaep) ? OPENSSL_PKCS1_OAEP_PADDING : OPENSSL_PKCS1_PADDING))) { + if(! openssl_public_encrypt($key,$k,$pubkey,$padding)) { $x = debug_backtrace(); logger('RSA failed. ' . print_r($x[0],true)); } $result['alg'] = $alg; $result['key'] = base64url_encode($k,true); - openssl_public_encrypt($iv,$i,$pubkey,(($oaep) ? OPENSSL_PKCS1_OAEP_PADDING : OPENSSL_PKCS1_PADDING)); + openssl_public_encrypt($iv,$i,$pubkey,$padding); $result['iv'] = base64url_encode($i,true); return $result; } @@ -229,20 +235,25 @@ function crypto_unencapsulate($data,$prvkey) { function other_unencapsulate($data,$prvkey,$alg) { - $oaep = false; + // This default will change in the future. For now make it backward compatible. - if(strpos($alg,'.oaep')) { - $oaep = true; - $subalg = substr($alg,0,-5); - } - else { - $subalg = $alg; + $padding = OPENSSL_PKCS1_PADDING; + $base = $alg; + + $exts = explode('.',$alg); + if(count($exts) > 1) { + switch($exts[1]) { + case 'oaep': + $padding = OPENSSL_PKCS1_OAEP_PADDING; + break; + } + $base = $exts[0]; } - $fn = strtoupper($subalg) . '_decrypt'; + $fn = strtoupper($base) . '_decrypt'; if(function_exists($fn)) { - openssl_private_decrypt(base64url_decode($data['key']),$k,$prvkey,(($oaep) ? OPENSSL_PKCS1_OAEP_PADDING : OPENSSL_PKCS1_PADDING)); - openssl_private_decrypt(base64url_decode($data['iv']),$i,$prvkey,(($oaep) ? OPENSSL_PKCS1_OAEP_PADDING : OPENSSL_PKCS1_PADDING)); + openssl_private_decrypt(base64url_decode($data['key']),$k,$prvkey,$padding); + openssl_private_decrypt(base64url_decode($data['iv']),$i,$prvkey,$padding); return $fn(base64url_decode($data['data']),$k,$i); } else { -- cgit v1.2.3 From 2d69b419ff9a0b2186d9479447f75f37b9102fa6 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Wed, 21 Feb 2018 20:59:30 -0800 Subject: move Zotlabs\Zot\Verify to Zotlabs\Lib\Verify as part of the z6 re-org --- Zotlabs/Lib/Verify.php | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ Zotlabs/Module/Magic.php | 2 +- Zotlabs/Module/Owa.php | 2 +- Zotlabs/Zot/Verify.php | 63 ------------------------------------------------ include/zid.php | 4 +-- include/zot.php | 4 +-- 6 files changed, 69 insertions(+), 69 deletions(-) create mode 100644 Zotlabs/Lib/Verify.php delete mode 100644 Zotlabs/Zot/Verify.php diff --git a/Zotlabs/Lib/Verify.php b/Zotlabs/Lib/Verify.php new file mode 100644 index 000000000..8703e29e6 --- /dev/null +++ b/Zotlabs/Lib/Verify.php @@ -0,0 +1,63 @@ + Date: Wed, 21 Feb 2018 21:18:54 -0800 Subject: move dreport from zot to lib --- Zotlabs/Lib/DReport.php | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ Zotlabs/Zot/DReport.php | 55 ------------------------------------------------- include/zot.php | 8 +++---- 3 files changed, 59 insertions(+), 59 deletions(-) create mode 100644 Zotlabs/Lib/DReport.php delete mode 100644 Zotlabs/Zot/DReport.php diff --git a/Zotlabs/Lib/DReport.php b/Zotlabs/Lib/DReport.php new file mode 100644 index 000000000..a68d6c18f --- /dev/null +++ b/Zotlabs/Lib/DReport.php @@ -0,0 +1,55 @@ +location = $location; + $this->sender = $sender; + $this->recipient = $recipient; + $this->message_id = $message_id; + $this->status = $status; + $this->date = datetime_convert(); + } + + function update($status) { + $this->status = $status; + $this->date = datetime_convert(); + } + + function addto_recipient($name) { + $this->recipient = $this->recipient . ' ' . $name; + } + + function addto_update($status) { + $this->status = $this->status . ' ' . $status; + } + + + function set($arr) { + $this->location = $arr['location']; + $this->sender = $arr['sender']; + $this->recipient = $arr['recipient']; + $this->message_id = $arr['message_id']; + $this->status = $arr['status']; + $this->date = $arr['date']; + } + + function get() { + return array( + 'location' => $this->location, + 'sender' => $this->sender, + 'recipient' => $this->recipient, + 'message_id' => $this->message_id, + 'status' => $this->status, + 'date' => $this->date + ); + } +} diff --git a/Zotlabs/Zot/DReport.php b/Zotlabs/Zot/DReport.php deleted file mode 100644 index c90f4f670..000000000 --- a/Zotlabs/Zot/DReport.php +++ /dev/null @@ -1,55 +0,0 @@ -location = $location; - $this->sender = $sender; - $this->recipient = $recipient; - $this->message_id = $message_id; - $this->status = $status; - $this->date = datetime_convert(); - } - - function update($status) { - $this->status = $status; - $this->date = datetime_convert(); - } - - function addto_recipient($name) { - $this->recipient = $this->recipient . ' ' . $name; - } - - function addto_update($status) { - $this->status = $this->status . ' ' . $status; - } - - - function set($arr) { - $this->location = $arr['location']; - $this->sender = $arr['sender']; - $this->recipient = $arr['recipient']; - $this->message_id = $arr['message_id']; - $this->status = $arr['status']; - $this->date = $arr['date']; - } - - function get() { - return array( - 'location' => $this->location, - 'sender' => $this->sender, - 'recipient' => $this->recipient, - 'message_id' => $this->message_id, - 'status' => $this->status, - 'date' => $this->date - ); - } -} diff --git a/include/zot.php b/include/zot.php index 7ecd77c82..0cfc370a2 100644 --- a/include/zot.php +++ b/include/zot.php @@ -1728,7 +1728,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ foreach($deliveries as $d) { $local_public = $public; - $DR = new Zotlabs\Zot\DReport(z_root(),$sender['hash'],$d['hash'],$arr['mid']); + $DR = new Zotlabs\Lib\DReport(z_root(),$sender['hash'],$d['hash'],$arr['mid']); $r = q("select * from channel where channel_hash = '%s' limit 1", dbesc($d['hash']) @@ -2257,7 +2257,7 @@ function process_mail_delivery($sender, $arr, $deliveries) { foreach($deliveries as $d) { - $DR = new Zotlabs\Zot\DReport(z_root(),$sender['hash'],$d['hash'],$arr['mid']); + $DR = new Zotlabs\Lib\DReport(z_root(),$sender['hash'],$d['hash'],$arr['mid']); $r = q("select * from channel where channel_hash = '%s' limit 1", dbesc($d['hash']) @@ -3898,11 +3898,11 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { // we should probably do this for all items, but usually we only send one. if(array_key_exists('item',$arr) && is_array($arr['item'][0])) { - $DR = new Zotlabs\Zot\DReport(z_root(),$d['hash'],$d['hash'],$arr['item'][0]['message_id'],'channel sync processed'); + $DR = new Zotlabs\Lib\DReport(z_root(),$d['hash'],$d['hash'],$arr['item'][0]['message_id'],'channel sync processed'); $DR->addto_recipient($channel['channel_name'] . ' <' . channel_reddress($channel) . '>'); } else - $DR = new Zotlabs\Zot\DReport(z_root(),$d['hash'],$d['hash'],'sync packet','channel sync delivered'); + $DR = new Zotlabs\Lib\DReport(z_root(),$d['hash'],$d['hash'],'sync packet','channel sync delivered'); $result[] = $DR->get(); } -- cgit v1.2.3 From bb2ec5d8dc93ba81a3c156d647639eea131af5a3 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Wed, 21 Feb 2018 21:29:55 -0800 Subject: remove the unused ZotDriver and ProtoDriver classes --- Zotlabs/Lib/ProtoDriver.php | 19 ------------------- Zotlabs/Lib/ZotDriver.php | 30 ------------------------------ 2 files changed, 49 deletions(-) delete mode 100644 Zotlabs/Lib/ProtoDriver.php delete mode 100644 Zotlabs/Lib/ZotDriver.php diff --git a/Zotlabs/Lib/ProtoDriver.php b/Zotlabs/Lib/ProtoDriver.php deleted file mode 100644 index daf887dbb..000000000 --- a/Zotlabs/Lib/ProtoDriver.php +++ /dev/null @@ -1,19 +0,0 @@ -