From b0a1f5ba5479d6faca39916a6fd1794f76f2a80a Mon Sep 17 00:00:00 2001 From: Ogoun Date: Sun, 12 Feb 2023 20:47:45 +0300 Subject: [PATCH] Refactoring --- PartitionFileStorageTest/Program.cs | 2 +- TestApp/Program.cs | 5 +- ZeroLevel.SQL/SqlDbConnectionFactory.cs | 10 --- ZeroLevel/Services/Cache/TimerCachee.cs | 4 +- .../{RijndaelEncryptor.cs => AesEncryptor.cs} | 66 +++++++++--------- .../Collections/Specialized/LocalList.cs | 1 - .../Network/Utils/Networks/Network.cs | 69 +++++++++++-------- ZeroLevel/ZeroLevel.csproj | 2 + 8 files changed, 79 insertions(+), 80 deletions(-) rename ZeroLevel/Services/Encryption/{RijndaelEncryptor.cs => AesEncryptor.cs} (74%) diff --git a/PartitionFileStorageTest/Program.cs b/PartitionFileStorageTest/Program.cs index 3f1e4fa..ca3a7c8 100644 --- a/PartitionFileStorageTest/Program.cs +++ b/PartitionFileStorageTest/Program.cs @@ -451,7 +451,7 @@ namespace PartitionFileStorageTest } catch (Exception ex) { - + Log.Error(ex, "FaultUncompressedReadTest"); } } } diff --git a/TestApp/Program.cs b/TestApp/Program.cs index 4042c1f..c3d4b86 100644 --- a/TestApp/Program.cs +++ b/TestApp/Program.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Concurrent; +using ZeroLevel.Services.Network.Utils; namespace TestApp { @@ -7,9 +8,7 @@ namespace TestApp { private static void Main(string[] args) { - var test = new ConcurrentDictionary(); - var v = test.GetOrAdd("sss", 1); - Console.ReadKey(); + Console.WriteLine(Network.ExternalIP); } } } \ No newline at end of file diff --git a/ZeroLevel.SQL/SqlDbConnectionFactory.cs b/ZeroLevel.SQL/SqlDbConnectionFactory.cs index 710002e..4bfa71f 100644 --- a/ZeroLevel.SQL/SqlDbConnectionFactory.cs +++ b/ZeroLevel.SQL/SqlDbConnectionFactory.cs @@ -50,16 +50,6 @@ namespace ZeroLevel.SqlServer private void Initialize() { - try - { - var perm = new SqlClientPermission(PermissionState.Unrestricted); - perm.Demand(); - perm = null; - } - catch - { - throw new ApplicationException("No permission for access to SqlClient"); - } dbConnectionString = new SqlConnectionStringBuilder(_currentConnectionString); dbConnectionString.Pooling = true; } diff --git a/ZeroLevel/Services/Cache/TimerCachee.cs b/ZeroLevel/Services/Cache/TimerCachee.cs index b6f3a5b..2f3fdfa 100644 --- a/ZeroLevel/Services/Cache/TimerCachee.cs +++ b/ZeroLevel/Services/Cache/TimerCachee.cs @@ -7,9 +7,9 @@ namespace ZeroLevel.Services.Cache internal sealed class TimerCachee : IDisposable { - private sealed class CacheeItem + private sealed class CacheeItem { - public T Value { get; set; } + public I Value { get; set; } public DateTime LastAcessTime { get; set; } } diff --git a/ZeroLevel/Services/Encryption/RijndaelEncryptor.cs b/ZeroLevel/Services/Encryption/AesEncryptor.cs similarity index 74% rename from ZeroLevel/Services/Encryption/RijndaelEncryptor.cs rename to ZeroLevel/Services/Encryption/AesEncryptor.cs index 0b6685b..37995be 100644 --- a/ZeroLevel/Services/Encryption/RijndaelEncryptor.cs +++ b/ZeroLevel/Services/Encryption/AesEncryptor.cs @@ -4,7 +4,7 @@ using System.Security.Cryptography; namespace ZeroLevel.Services.Encryption { - public class RijndaelEncryptor + public class AesEncryptor : IDisposable { protected const int DEFAULT_STREAM_BUFFER_SIZE = 16384; @@ -12,20 +12,20 @@ namespace ZeroLevel.Services.Encryption #region Crypt fields - private Rijndael _rijndael; + private Aes _aes; private CryptoStream _stream; #endregion Crypt fields - public RijndaelEncryptor(Stream stream, string password, byte[] salt = null) + public AesEncryptor(Stream stream, string password, byte[] salt = null) { - _rijndael = Rijndael.Create(); + _aes = Aes.Create(); using (var pdb = new Rfc2898DeriveBytes(password, SALT)) { - _rijndael.Key = pdb.GetBytes(32); - _rijndael.IV = pdb.GetBytes(16); + _aes.Key = pdb.GetBytes(32); + _aes.IV = pdb.GetBytes(16); } - _stream = new CryptoStream(stream, _rijndael.CreateEncryptor(), CryptoStreamMode.Write); + _stream = new CryptoStream(stream, _aes.CreateEncryptor(), CryptoStreamMode.Write); } public void Write(byte[] data) @@ -56,15 +56,15 @@ namespace ZeroLevel.Services.Encryption public static byte[] Encrypt(byte[] plain, string password, byte[] salt = null) { - using (var rijndael = Rijndael.Create()) + using (var aes = Aes.Create()) { using (var pdb = new Rfc2898DeriveBytes(password, salt ?? SALT)) { - rijndael.Key = pdb.GetBytes(32); - rijndael.IV = pdb.GetBytes(16); + aes.Key = pdb.GetBytes(32); + aes.IV = pdb.GetBytes(16); using (var memoryStream = new MemoryStream()) { - using (var cryptoStream = new CryptoStream(memoryStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write)) + using (var cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write)) { cryptoStream.Write(plain, 0, plain.Length); cryptoStream.Close(); @@ -77,15 +77,15 @@ namespace ZeroLevel.Services.Encryption public static byte[] Encrypt(Stream stream, string password, byte[] salt = null) { - using (var rijndael = Rijndael.Create()) + using (var aes = Aes.Create()) { using (var pdb = new Rfc2898DeriveBytes(password, salt ?? SALT)) { - rijndael.Key = pdb.GetBytes(32); - rijndael.IV = pdb.GetBytes(16); + aes.Key = pdb.GetBytes(32); + aes.IV = pdb.GetBytes(16); using (var memoryStream = new MemoryStream()) { - using (var cryptoStream = new CryptoStream(memoryStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write)) + using (var cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write)) { Transfer(stream, cryptoStream); cryptoStream.Close(); @@ -98,13 +98,13 @@ namespace ZeroLevel.Services.Encryption public static void Encrypt(Stream inputStream, Stream outputStream, string password, byte[] salt = null) { - using (var rijndael = Rijndael.Create()) + using (var aes = Aes.Create()) { using (var pdb = new Rfc2898DeriveBytes(password, salt ?? SALT)) { - rijndael.Key = pdb.GetBytes(32); - rijndael.IV = pdb.GetBytes(16); - using (var cryptoStream = new CryptoStream(outputStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write)) + aes.Key = pdb.GetBytes(32); + aes.IV = pdb.GetBytes(16); + using (var cryptoStream = new CryptoStream(outputStream, aes.CreateEncryptor(), CryptoStreamMode.Write)) { Transfer(inputStream, cryptoStream); cryptoStream.Close(); @@ -115,15 +115,15 @@ namespace ZeroLevel.Services.Encryption public static byte[] Decrypt(byte[] cipher, string password, byte[] salt = null) { - using (var rijndael = Rijndael.Create()) + using (var aes = Aes.Create()) { using (var pdb = new Rfc2898DeriveBytes(password, salt ?? SALT)) { - rijndael.Key = pdb.GetBytes(32); - rijndael.IV = pdb.GetBytes(16); + aes.Key = pdb.GetBytes(32); + aes.IV = pdb.GetBytes(16); using (var memoryStream = new MemoryStream()) { - using (var cryptoStream = new CryptoStream(memoryStream, rijndael.CreateDecryptor(), CryptoStreamMode.Write)) + using (var cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Write)) { cryptoStream.Write(cipher, 0, cipher.Length); cryptoStream.Close(); @@ -136,15 +136,15 @@ namespace ZeroLevel.Services.Encryption public static byte[] Decrypt(Stream stream, string password, byte[] salt = null) { - using (var rijndael = Rijndael.Create()) + using (var aes = Aes.Create()) { using (var pdb = new Rfc2898DeriveBytes(password, salt ?? SALT)) { - rijndael.Key = pdb.GetBytes(32); - rijndael.IV = pdb.GetBytes(16); + aes.Key = pdb.GetBytes(32); + aes.IV = pdb.GetBytes(16); using (var memoryStream = new MemoryStream()) { - using (var cryptoStream = new CryptoStream(memoryStream, rijndael.CreateDecryptor(), CryptoStreamMode.Write)) + using (var cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(), CryptoStreamMode.Write)) { Transfer(stream, cryptoStream); cryptoStream.Close(); @@ -157,13 +157,13 @@ namespace ZeroLevel.Services.Encryption public static void Decrypt(Stream inputStream, Stream outputStream, string password, byte[] salt = null) { - using (var rijndael = Rijndael.Create()) + using (var aes = Aes.Create()) { using (var pdb = new Rfc2898DeriveBytes(password, salt ?? SALT)) { - rijndael.Key = pdb.GetBytes(32); - rijndael.IV = pdb.GetBytes(16); - using (var cryptoStream = new CryptoStream(outputStream, rijndael.CreateDecryptor(), CryptoStreamMode.Write)) + aes.Key = pdb.GetBytes(32); + aes.IV = pdb.GetBytes(16); + using (var cryptoStream = new CryptoStream(outputStream, aes.CreateDecryptor(), CryptoStreamMode.Write)) { Transfer(inputStream, cryptoStream); cryptoStream.Close(); @@ -183,8 +183,8 @@ namespace ZeroLevel.Services.Encryption _stream.Dispose(); } catch { } - _rijndael.Clear(); - _rijndael.Dispose(); + _aes.Clear(); + _aes.Dispose(); } } } \ No newline at end of file diff --git a/ZeroLevel/Services/MemoryPools/Collections/Specialized/LocalList.cs b/ZeroLevel/Services/MemoryPools/Collections/Specialized/LocalList.cs index 6b9f13b..ef61350 100644 --- a/ZeroLevel/Services/MemoryPools/Collections/Specialized/LocalList.cs +++ b/ZeroLevel/Services/MemoryPools/Collections/Specialized/LocalList.cs @@ -126,7 +126,6 @@ namespace MemoryPools.Collections.Specialized if (ReferenceEquals(_other, LengthIs2)) { - var done = false; if (ItemComparer.Equals(_items.Item2, item)) { _items.Item2 = default; diff --git a/ZeroLevel/Services/Network/Utils/Networks/Network.cs b/ZeroLevel/Services/Network/Utils/Networks/Network.cs index 84a7360..7b19ba7 100644 --- a/ZeroLevel/Services/Network/Utils/Networks/Network.cs +++ b/ZeroLevel/Services/Network/Utils/Networks/Network.cs @@ -1,37 +1,46 @@ using System; using System.IO; using System.Net; +using System.Net.Http; namespace ZeroLevel.Services.Network.Utils { - /// - /// Methods related to Network. - /// - public static class Network - { - /// - /// Gets the external IP Address. - /// - /// The external IP Address. - public static string ExternalIP - { - get - { - try - { - WebRequest request = WebRequest.Create("http://ipv4.icanhazip.com"); - using (var response = request.GetResponse()) - using (var sr = new StreamReader(response.GetResponseStream())) - { - return sr.ReadLine(); - } - } - catch (Exception e) - { - Console.WriteLine("Error: " + e.Message); - return ""; - } - } - } - } + /// + /// Methods related to Network. + /// + public static class Network + { + /// + /// Gets the external IP Address. + /// + /// The external IP Address. + public static string ExternalIP + { + get + { + try + { + using (var clientHandler = new HttpClientHandler()) + { + clientHandler.ServerCertificateCustomValidationCallback = (_, _, _, _) => true; + clientHandler.UseCookies = true; + clientHandler.CookieContainer = new CookieContainer(); + using (var client = new HttpClient(clientHandler)) + { + var message = new HttpRequestMessage(HttpMethod.Get, "http://ipv4.icanhazip.com"); + using (var response = client.Send(message)) + { + return response.Content.ReadAsStringAsync().Result; + } + } + } + } + catch (Exception e) + { + Console.WriteLine("Error: " + e.Message); + return ""; + } + } + } + } } diff --git a/ZeroLevel/ZeroLevel.csproj b/ZeroLevel/ZeroLevel.csproj index 8dcc733..d257944 100644 --- a/ZeroLevel/ZeroLevel.csproj +++ b/ZeroLevel/ZeroLevel.csproj @@ -29,6 +29,7 @@ true False + portable @@ -62,6 +63,7 @@ true False + none