mirror of
				https://github.com/elyby/accounts.git
				synced 2025-05-31 14:11:46 +05:30 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			903 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			903 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| declare(strict_types=1);
 | |
| 
 | |
| namespace common\components\OAuth2;
 | |
| 
 | |
| use LogicException;
 | |
| use RangeException;
 | |
| use SodiumException;
 | |
| use Yii;
 | |
| 
 | |
| /**
 | |
|  * This trait is intended to override the standard data encryption behavior
 | |
|  * with the help of \Defuse\Crypto\Crypto class, because the resultant string
 | |
|  * is much larger than the original one.
 | |
|  *
 | |
|  * The implementation under the hood relies on using libsodium library
 | |
|  * that provides more compact result values.
 | |
|  */
 | |
| trait CryptTrait {
 | |
| 
 | |
|     protected function encrypt(string $unencryptedData): string {
 | |
|         return Yii::$app->tokens->encryptValue($unencryptedData);
 | |
|     }
 | |
| 
 | |
|     protected function decrypt(string $encryptedData): string {
 | |
|         try {
 | |
|             return Yii::$app->tokens->decryptValue($encryptedData);
 | |
|         } catch (SodiumException|RangeException $e) {
 | |
|             throw new LogicException($e->getMessage(), 0, $e);
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 |