104 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Controllers\Utility;
 | |
| 
 | |
| use App\Http\Controllers\Controller;
 | |
| use Config;
 | |
| use Exception;
 | |
| use Schema;
 | |
| 
 | |
| class LibraryController extends Controller
 | |
| {
 | |
|     public static function getFileVersion()
 | |
|     {
 | |
|         try {
 | |
|             $app = Config::get('app.version');
 | |
|             if ($app) {
 | |
|                 return preg_replace('/[^0-9,.]/', '', $app);
 | |
|             } else {
 | |
|                 return 0;
 | |
|             }
 | |
|         } catch (Exception $ex) {
 | |
|             return 0;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static function getDatabaseVersion()
 | |
|     {
 | |
|         try {
 | |
|             $database = self::isDatabaseSetup();
 | |
|             if ($database == true) {
 | |
|                 if (Schema::hasColumn('settings_system', 'version')) {
 | |
|                     return \DB::table('settings_system')->where('id', '=', '1')->first()->version;
 | |
|                 } else {
 | |
|                     return 0;
 | |
|                 }
 | |
|             } else {
 | |
|                 return 0;
 | |
|             }
 | |
|         } catch (Exception $ex) {
 | |
|             return 0;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static function isDatabaseSetup()
 | |
|     {
 | |
|         try {
 | |
|             if (Schema::hasTable('settings_system')) {
 | |
|                 return true;
 | |
|             }
 | |
|         } catch (Exception $e) {
 | |
|             return false;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static function encryptByFaveoPublicKey($data)
 | |
|     {
 | |
|         try {
 | |
|             $path = storage_path().DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'public.key';
 | |
|             //dd($path);
 | |
|             $key_content = file_get_contents($path);
 | |
|             $public_key = openssl_get_publickey($key_content);
 | |
| 
 | |
|             $encrypted = $e = null;
 | |
|             openssl_seal($data, $encrypted, $e, [$public_key]);
 | |
| 
 | |
|             $sealed_data = base64_encode($encrypted);
 | |
|             $envelope = base64_encode($e[0]);
 | |
| 
 | |
|             $result = ['seal' => $sealed_data, 'envelope' => $envelope];
 | |
| 
 | |
|             return json_encode($result);
 | |
|         } catch (Exception $ex) {
 | |
|             throw new Exception($ex->getMessage());
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static function decryptByFaveoPrivateKey($encrypted)
 | |
|     {
 | |
|         try {
 | |
|             $encrypted = json_decode($encrypted);
 | |
|             if ($encrypted) {
 | |
|                 $sealed_data = $encrypted->seal;
 | |
|                 $envelope = $encrypted->envelope;
 | |
|                 $input = base64_decode($sealed_data);
 | |
|                 $einput = base64_decode($envelope);
 | |
|                 $path = storage_path('app'.DIRECTORY_SEPARATOR.'private.key');
 | |
|                 $key_content = file_get_contents($path);
 | |
|                 $private_key = openssl_get_privatekey($key_content);
 | |
|                 $plaintext = null;
 | |
|                 openssl_open($input, $plaintext, $einput, $private_key);
 | |
| 
 | |
|                 return $plaintext;
 | |
|             }
 | |
|         } catch (Exception $ex) {
 | |
|             dd($ex);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static function _isCurl()
 | |
|     {
 | |
|         return function_exists('curl_version');
 | |
|     }
 | |
| }
 | 
