Don't risk incompatibilities
authorMichael <heluecht@pirati.ca>
Wed, 12 Sep 2018 06:13:04 +0000 (06:13 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 12 Sep 2018 06:13:04 +0000 (06:13 +0000)
mod/dfrn_notify.php
src/Protocol/DFRN.php

index 2f76b59..8a53ac0 100644 (file)
@@ -326,7 +326,7 @@ function dfrn_notify_content(App $a) {
                $pub_key = trim($importer['cpubkey']);
                $dplx    = intval($importer['duplex']);
 
-               if (!empty($prv_key) && empty($pub_key)) {
+               if (($dplx && strlen($prv_key)) || (strlen($prv_key) && !strlen($pub_key))) {
                        openssl_private_encrypt($hash, $challenge, $prv_key);
                        openssl_private_encrypt($id_str, $encrypted_id, $prv_key);
                } elseif (strlen($pub_key)) {
index 3832e38..b207c3c 100644 (file)
@@ -1280,7 +1280,10 @@ class DFRN
                        }
                }
 
-               if (empty($contact['prvkey']) && !empty($contact['pubkey'])) {
+               if (($contact['duplex'] && strlen($contact['pubkey']))
+                       || ($owner['page-flags'] == Contact::PAGE_COMMUNITY && strlen($contact['pubkey']))
+                       || ($contact['rel'] == Contact::SHARING && strlen($contact['pubkey']))
+               ) {
                        openssl_public_decrypt($sent_dfrn_id, $final_dfrn_id, $contact['pubkey']);
                        openssl_public_decrypt($challenge, $postvars['challenge'], $contact['pubkey']);
                } else {