diff --git a/Assets/Scripts/SensitiveInfo.cs b/Assets/Scripts/SensitiveInfo.cs index 10802a4..6941502 100644 --- a/Assets/Scripts/SensitiveInfo.cs +++ b/Assets/Scripts/SensitiveInfo.cs @@ -9,6 +9,7 @@ public class SensitiveInfo public static readonly string SERVER_DATABASE_PREFIX = "https://berrydash.lncvrt.xyz/database/"; public static readonly string SERVER_RECEIVE_TRANSFER_KEY = ""; public static readonly string SERVER_SEND_TRANSFER_KEY = ""; + public static readonly string BAZOOKA_MANAGER_KEY = ""; public static string Encrypt(string plainText, string key) { @@ -39,6 +40,35 @@ public class SensitiveInfo } } + public static byte[] EncryptRaw(string text, string key) + { + if (SERVER_RECEIVE_TRANSFER_KEY.Trim() == string.Empty || SERVER_SEND_TRANSFER_KEY.Trim() == string.Empty) return null; + try + { + using Aes aes = Aes.Create(); + aes.Key = Encoding.UTF8.GetBytes(key); + aes.Mode = CipherMode.CBC; + aes.Padding = PaddingMode.PKCS7; + aes.GenerateIV(); + + using MemoryStream ms = new(); + ms.Write(aes.IV, 0, aes.IV.Length); + + using (var cryptoStream = new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write)) + using (var writer = new StreamWriter(cryptoStream)) + { + writer.Write(text); + } + + return ms.ToArray(); + } + catch + { + Application.Quit(); + return null; + } + } + public static string Decrypt(string dataB64, string key) { if (SERVER_RECEIVE_TRANSFER_KEY.Trim() == string.Empty || SERVER_SEND_TRANSFER_KEY.Trim() == string.Empty) @@ -69,4 +99,34 @@ public class SensitiveInfo return "-997"; //the server returns this if theres an issue with encryption/decryption so the client will too ig } } + + public static string DecryptRaw(byte[] data, string key) + { + if (BAZOOKA_MANAGER_KEY.Trim() == string.Empty) + { + return null; + } + try + { + using Aes aes = Aes.Create(); + aes.Key = Encoding.UTF8.GetBytes(key); + aes.Mode = CipherMode.CBC; + aes.Padding = PaddingMode.PKCS7; + + byte[] iv = new byte[16]; + Array.Copy(data, 0, iv, 0, iv.Length); + aes.IV = iv; + + using MemoryStream ms = new(data, iv.Length, data.Length - iv.Length); + using var cryptoStream = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read); + using StreamReader reader = new(cryptoStream); + + return reader.ReadToEnd(); + } + catch + { + Application.Quit(); + return null; + } + } } \ No newline at end of file