}
}
- 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 {