]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/Crypto.php
Merge pull request #7009 from MrPetovan/bug/6952-fix-save-to-folder
[friendica.git] / src / Util / Crypto.php
index 4f762964c93990c1b8063f04bc138ac24a830db7..78f7c349a71eb855e2f05ebb3d8c528b4adcc83e 100644 (file)
@@ -7,6 +7,7 @@ namespace Friendica\Util;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
 use Friendica\Core\Logger;
+use Friendica\Core\System;
 use ASN_BASE;
 use ASNValue;
 
@@ -24,6 +25,9 @@ class Crypto
         */
        public static function rsaSign($data, $key, $alg = 'sha256')
        {
+               if (empty($key)) {
+                       Logger::warning('Empty key parameter', ['callstack' => System::callstack()]);
+               }
                openssl_sign($data, $sig, $key, (($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg));
                return $sig;
        }
@@ -37,6 +41,9 @@ class Crypto
         */
        public static function rsaVerify($data, $sig, $key, $alg = 'sha256')
        {
+               if (empty($key)) {
+                       Logger::warning('Empty key parameter', ['callstack' => System::callstack()]);
+               }
                return openssl_verify($data, $sig, $key, (($alg == 'sha1') ? OPENSSL_ALGO_SHA1 : $alg));
        }
 
@@ -423,13 +430,13 @@ class Crypto
         *
         * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/crypto.php
         *
-        * @param string $data
+        * @param array $data ['iv' => $iv, 'key' => $key, 'alg' => $alg, 'data' => $data]
         * @param string $prvkey The private key used for decryption.
         *
         * @return string|boolean The decrypted string or false on failure.
         * @throws \Exception
         */
-       public static function unencapsulate($data, $prvkey)
+       public static function unencapsulate(array $data, $prvkey)
        {
                if (!$data) {
                        return;
@@ -437,23 +444,23 @@ class Crypto
 
                $alg = ((array_key_exists('alg', $data)) ? $data['alg'] : 'aes256cbc');
                if ($alg === 'aes256cbc') {
-                       return self::encapsulateAes($data, $prvkey);
+                       return self::encapsulateAes($data['data'], $prvkey);
                }
-               return self::encapsulateOther($data, $prvkey, $alg);
+               return self::encapsulateOther($data['data'], $prvkey, $alg);
        }
 
        /**
         *
         * Ported from Hubzilla: https://framagit.org/hubzilla/core/blob/master/include/crypto.php
         *
-        * @param string $data
+        * @param array $data
         * @param string $prvkey The private key used for decryption.
         * @param string $alg
         *
         * @return string|boolean The decrypted string or false on failure.
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       private static function unencapsulateOther($data, $prvkey, $alg)
+       private static function unencapsulateOther(array $data, $prvkey, $alg)
        {
                $fn = 'decrypt' . strtoupper($alg);