return $entry;
}
+ /**
+ * @brief encrypts data via AES
+ *
+ * @param string $data The data that is to be encrypted
+ * @param string $key The AES key
+ *
+ * @return string encrypted data
+ */
+ private static function aes_encrypt($data, $key) {
+ return openssl_encrypt($data, 'aes-128-ecb', $key, OPENSSL_RAW_DATA);
+ }
+
+ /**
+ * @brief decrypts data via AES
+ *
+ * @param string $encrypted The encrypted data
+ * @param string $key The AES key
+ *
+ * @return string decrypted data
+ */
+ public static function aes_decrypt($encrypted, $key) {
+ return openssl_decrypt($encrypted, 'aes-128-ecb', $key, OPENSSL_RAW_DATA);
+ }
+
/**
* @brief Delivers the atom content to the contacts
*
$rino = get_config('system','rino_encrypt');
$rino = intval($rino);
- // use RINO1 if mcrypt isn't installed and RINO2 was selected
- if ($rino==2 and !function_exists('mcrypt_create_iv')) $rino=1;
logger("Local rino version: ". $rino, LOGGER_DEBUG);
$xml = $ret['body'];
$curl_stat = $a->get_curl_code();
- if(! $curl_stat)
+ if (!$curl_stat) {
return -3; // timed out
+ }
logger('dfrn_deliver: ' . $xml, LOGGER_DATA);
switch($rino_remote_version) {
case 1:
// Deprecated rino version!
- $key = substr(random_string(),0,16);
- $data = aes_encrypt($postvars['data'],$key);
+ $key = openssl_random_pseudo_bytes(16);
+ $data = self::aes_encrypt($postvars['data'], $key);
break;
case 2:
// RINO 2 based on php-encryption
logger('dfrn_deliver: ' . "RECEIVED: " . $xml, LOGGER_DATA);
$curl_stat = $a->get_curl_code();
- if((! $curl_stat) || (! strlen($xml)))
+ if ((!$curl_stat) || (!strlen($xml))) {
return -9; // timed out
+ }
- if(($curl_stat == 503) && (stristr($a->get_curl_headers(),'retry-after')))
+ if (($curl_stat == 503) && (stristr($a->get_curl_headers(),'retry-after'))) {
return -10;
+ }
if(strpos($xml,'<?xml') === false) {
logger('dfrn_deliver: phase 2: no valid XML returned');
return 3;
}
- if($contact['term-date'] != '0000-00-00 00:00:00') {
+ if ($contact['term-date'] > NULL_DATE) {
logger("dfrn_deliver: $url back from the dead - removing mark for death");
require_once('include/Contact.php');
unmark_for_death($contact);
$poco["photo"] = $author["avatar"];
$poco["hide"] = $hide;
$poco["contact-type"] = $contact["contact-type"];
- update_gcontact($poco);
+ $gcid = update_gcontact($poco);
+
+ link_gcontact($gcid, $importer["uid"], $contact["id"]);
}
return($author);