X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fdfrn.php;h=4002bb4268de07a2dca041789dfac033ff557666;hb=2952e2b3e47d0d16e89c6ff81353a9059bfe474c;hp=25f8c9358e2047bd324fe1081b72360bf151c3f4;hpb=7dfe6d158045e87f31f25aa99670e701a172740e;p=friendica.git diff --git a/include/dfrn.php b/include/dfrn.php index 25f8c9358e..4002bb4268 100644 --- a/include/dfrn.php +++ b/include/dfrn.php @@ -864,6 +864,30 @@ class dfrn { 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 * @@ -888,8 +912,6 @@ class dfrn { $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); @@ -1015,8 +1037,8 @@ class dfrn { 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 @@ -1352,7 +1374,9 @@ class dfrn { $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);