]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/Crypto.php
Remove unneeded Config namespace usages
[friendica.git] / src / Util / Crypto.php
index 4f762964c93990c1b8063f04bc138ac24a830db7..3ac1c3b231640e82d024c51d0c60047c14db0097 100644 (file)
@@ -4,14 +4,15 @@
  */
 namespace Friendica\Util;
 
-use Friendica\Core\Config;
-use Friendica\Core\Hook;
-use Friendica\Core\Logger;
 use ASN_BASE;
 use ASNValue;
+use Friendica\Core\Hook;
+use Friendica\Core\Logger;
+use Friendica\Core\System;
+use Friendica\DI;
 
 /**
- * @brief Crypto class
+ * Crypto class
  */
 class Crypto
 {
@@ -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));
        }
 
@@ -202,8 +209,10 @@ class Crypto
 
                $r = ASN_BASE::parseASNString($x);
 
-               $m = Strings::base64UrlDecode($r[0]->asnData[1]->asnData[0]->asnData[0]->asnData);
-               $e = Strings::base64UrlDecode($r[0]->asnData[1]->asnData[0]->asnData[1]->asnData);
+               if (isset($r[0])) {
+                       $m = Strings::base64UrlDecode($r[0]->asnData[1]->asnData[0]->asnData[0]->asnData);
+                       $e = Strings::base64UrlDecode($r[0]->asnData[1]->asnData[0]->asnData[1]->asnData);
+               }
        }
 
        /**
@@ -231,7 +240,7 @@ class Crypto
                        'encrypt_key'      => false
                ];
 
-               $conf = Config::get('system', 'openssl_conf_file');
+               $conf = DI::config()->get('system', 'openssl_conf_file');
                if ($conf) {
                        $openssl_options['config'] = $conf;
                }
@@ -423,13 +432,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 +446,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);