diff options
Diffstat (limited to 'Zotlabs/Zot6/Receiver.php')
-rw-r--r-- | Zotlabs/Zot6/Receiver.php | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Zotlabs/Zot6/Receiver.php b/Zotlabs/Zot6/Receiver.php index 964c61651..b276cbe31 100644 --- a/Zotlabs/Zot6/Receiver.php +++ b/Zotlabs/Zot6/Receiver.php @@ -34,6 +34,7 @@ class Receiver { $this->rawdata = null; $this->site_id = null; $this->prvkey = Config::get('system','prvkey'); + $this->hub = null; if($localdata) { $this->rawdata = $localdata; @@ -71,12 +72,16 @@ class Receiver { if ($this->encrypted && $this->prvkey) { $uncrypted = Crypto::unencapsulate($this->data,$this->prvkey); - if ($uncrypted) { + + // openssl_decrypt() will sometimes return garbage instead of false when + // a wrong key is used. This can happen in case of hub re-installs. + // Hence also check with str_starts_with(). + if ($uncrypted && str_starts_with($uncrypted, '{')) { $this->data = json_decode($uncrypted,true); } else { $this->error = true; - $this->response['message'] = 'no data'; + $this->response['message'] = 'no data (decryption failed)'; } } } |