+ logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
+ logger('dfrn_notify: data: ' . $data, LOGGER_DATA);
+
+ if($importer['readonly']) {
+ // We aren't receiving stuff from this person. But we will quietly ignore them
+ // rather than a blatant "go away" message.
+ logger('dfrn_notify: ignoring');
+ xml_status(0);
+ //NOTREACHED
+ }
+
+ if(strlen($key)) {
+ $rawkey = hex2bin(trim($key));
+ logger('rino: md5 raw key: ' . md5($rawkey));
+ $final_key = '';
+
+ if((($importer['duplex']) && strlen($importer['cpubkey'])) || (! strlen($importer['cprvkey']))) {
+ openssl_public_decrypt($rawkey,$final_key,$importer['cpubkey']);
+ }
+ else {
+ openssl_private_decrypt($rawkey,$final_key,$importer['cprvkey']);
+ }
+
+ logger('rino: received key : ' . $final_key);
+ $data = aes_decrypt(hex2bin($data),$final_key);
+ logger('rino: decrypted data: ' . $data, LOGGER_DATA);
+ }
+
+ // Consume notification feed. This may differ from consuming a public feed in several ways
+ // - might contain email
+ // - might contain remote followup to our message
+ // - in which case we need to accept it and then notify other conversants
+ // - we may need to send various email notifications
+