55namespace BrosSquad \LaravelCrypto \Encryption ;
66
77use BrosSquad \LaravelCrypto \Encoder \Encoder ;
8+ use BrosSquad \LaravelCrypto \Encoder \JsonEncoder ;
89use BrosSquad \LaravelCrypto \Keys \Loader ;
910use BrosSquad \LaravelCrypto \Support \Base64 ;
1011use Exception ;
@@ -18,8 +19,8 @@ final class XChaCha20Poly1305Encryptor
1819
1920 public function __construct (
2021 private readonly Loader $ keyLoader ,
21- private readonly LoggerInterface $ logger ,
22- private readonly Encoder $ encoder ,
22+ private readonly Encoder $ encoder = new JsonEncoder () ,
23+ private readonly ? LoggerInterface $ logger = null ,
2324 ) {
2425 }
2526
@@ -39,12 +40,12 @@ public function encrypt($value, $serialize = true): string
3940 );
4041 return Base64::constantUrlEncodeNoPadding ($ nonce . $ encrypted );
4142 } catch (Exception $ e ) {
42- $ this ->logger ->error ($ e ->getMessage (), [
43+ $ this ->logger ? ->error($ e ->getMessage (), [
4344 'exception ' => $ e ,
4445 'value ' => $ value ,
4546 'serialize ' => $ serialize ,
4647 ]);
47- throw new EncryptException ('Value cannot be encrypted ' );
48+ throw new EncryptException ('Value cannot be encrypted ' . $ e -> getMessage () );
4849 }
4950 }
5051
@@ -62,10 +63,9 @@ public function decrypt($payload, $unserialize = true)
6263 $ this ->keyLoader ->getKey ()
6364 );
6465 } catch (Exception $ e ) {
65- $ this ->logger ->error ($ e ->getMessage (), [
66+ $ this ->logger ? ->error($ e ->getMessage (), [
6667 'exception ' => $ e ,
67- 'value ' => $ value ,
68- 'serialize ' => $ serialize ,
68+ 'serialize ' => $ unserialize ,
6969 ]);
7070 throw new DecryptException ('Payload cannot be decrypted ' );
7171 }
@@ -77,7 +77,7 @@ public function decrypt($payload, $unserialize = true)
7777 return $ decrypted ;
7878 }
7979
80- public static function generateKey (string $ cipher ): string
80+ public static function generateKey (string $ _ ): string
8181 {
8282 return sodium_crypto_aead_xchacha20poly1305_ietf_keygen ();
8383 }
0 commit comments