From 36154b23b6bb67cac6978e4623f5a5a6ae53cf22 Mon Sep 17 00:00:00 2001 From: May Meow <3164256+MayMeow@users.noreply.github.com> Date: Sun, 1 Jun 2025 16:23:56 +0200 Subject: [PATCH 1/2] Refactor AESCryptoServiceProvider to improve method signatures for seal and open, enhancing clarity and functionality --- src/AESCryptoServiceProvider.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/AESCryptoServiceProvider.php b/src/AESCryptoServiceProvider.php index 47ddaea..9a196b9 100644 --- a/src/AESCryptoServiceProvider.php +++ b/src/AESCryptoServiceProvider.php @@ -168,7 +168,11 @@ public function decrypt(string $encryptedData): string * @param bool $humanReadableData whether to return base64 encoded data * @return array Sealed data */ - public function seal(string $plain_text, RSAParameters $rSAParameters, bool $humanReadableData = false): array + public function seal( + string $plain_text, + RSAParameters $rSAParameters, + bool $humanReadableData = false + ): array { $this->generateIV('aes-256-cbc'); @@ -197,7 +201,8 @@ public function seal(string $plain_text, RSAParameters $rSAParameters, bool $hum * @param RSAParameters $rSAParameters * @return string Opened data */ - public function open(string $sealed_data, string $ekeys, RSAParameters $rSAParameters): string + public function open(string $sealed_data, string $ekeys, RSAParameters $rSAParameters, string $privateKeyPass, + string $salt): string { if (preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $sealed_data)) { $sealed_data = base64_decode($sealed_data); @@ -216,7 +221,7 @@ public function open(string $sealed_data, string $ekeys, RSAParameters $rSAParam $iv = substr($sealed_data, 0, $iv_len); $encryptedData = substr($sealed_data, $iv_len); - openssl_open($encryptedData, $open_data, $ekeys, $rSAParameters->getPrivateKey(), 'aes-256-cbc', $iv); + openssl_open($encryptedData, $open_data, $ekeys, $rSAParameters->getPrivateKey(passphrase: $privateKeyPass, salt: $salt), 'aes-256-cbc', $iv); return $open_data; } From 225d06791bb385a6dbeb562a191ee7611cf1d181 Mon Sep 17 00:00:00 2001 From: May Meow <3164256+MayMeow@users.noreply.github.com> Date: Sun, 1 Jun 2025 16:24:04 +0200 Subject: [PATCH 2/2] Refactor RSACryptoServiceProvider to update decrypt, privateEncrypt, and sign methods for improved parameter handling, enhancing security and functionality --- src/RSACryptoServiceProvider.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/RSACryptoServiceProvider.php b/src/RSACryptoServiceProvider.php index c85429f..e908a9a 100644 --- a/src/RSACryptoServiceProvider.php +++ b/src/RSACryptoServiceProvider.php @@ -32,10 +32,10 @@ public function encrypt(string $plainText): string /** * decrypt with private key */ - public function decrypt(string $encryptedText): string + public function decrypt(string $encryptedText, string $privateKeyPass, string $salt): string { $plainText = ''; - $privKey = $this->parameters->getPrivateKey(); + $privKey = $this->parameters->getPrivateKey(passphrase: $privateKeyPass, salt: $salt); openssl_private_decrypt(base64_decode($encryptedText), $plainText, $privKey); @@ -48,10 +48,10 @@ public function decrypt(string $encryptedText): string * @param string $plainText * @return string */ - public function privateEncrypt(string $plainText): string + public function privateEncrypt(string $plainText, string $privateKeyPass, string $salt): string { $encrypted = ''; - $privKey = $this->parameters->getPrivateKey(); + $privKey = $this->parameters->getPrivateKey(passphrase: $privateKeyPass, salt: $salt); openssl_private_encrypt($plainText, $encrypted, $privKey); @@ -78,9 +78,9 @@ public function publicDecrypt(string $encryptedText): string * @param string $data * @return string */ - public function sign(string $data): string + public function sign(string $data, string $privateKeyPass, string $salt): string { - $privKey = $this->getPrivateKey(); + $privKey = $this->parameters->getPrivateKey(passphrase: $privateKeyPass, salt: $salt); $result = openssl_sign($data, $signature, $privKey, OPENSSL_ALGO_SHA512);