From 36afcdf0988e753ae2178fb8220b02f2c4d0b2b2 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sun, 30 Jan 2022 01:41:08 +0100 Subject: refactor: Convert solution for file-scoped namespaces --- src/IOL.VippsEcommerce/Helpers.cs | 129 +++++++++++++++++++------------------- 1 file changed, 64 insertions(+), 65 deletions(-) (limited to 'src/IOL.VippsEcommerce/Helpers.cs') diff --git a/src/IOL.VippsEcommerce/Helpers.cs b/src/IOL.VippsEcommerce/Helpers.cs index f7645a5..7e61181 100644 --- a/src/IOL.VippsEcommerce/Helpers.cs +++ b/src/IOL.VippsEcommerce/Helpers.cs @@ -4,82 +4,81 @@ using System.Linq; using System.Security.Cryptography; using System.Text; -namespace IOL.VippsEcommerce +namespace IOL.VippsEcommerce; + +internal static class Helpers { - internal static class Helpers - { - private const int AES_BLOCK_BYTE_SIZE = 128 / 8; - private static readonly RandomNumberGenerator _random = RandomNumberGenerator.Create(); - - public static bool IsNullOrWhiteSpace(this string value) => string.IsNullOrWhiteSpace(value); - public static bool IsPresent(this string value) => !string.IsNullOrWhiteSpace(value); - - public static bool IsDirectoryWritable(this string dirPath, bool throwIfFails = false) { - try { - using (var fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), - 1, - FileOptions.DeleteOnClose) - ) { } - - return true; - } catch { - if (throwIfFails) - throw; - - return false; - } + private const int AES_BLOCK_BYTE_SIZE = 128 / 8; + private static readonly RandomNumberGenerator _random = RandomNumberGenerator.Create(); + + public static bool IsNullOrWhiteSpace(this string value) => string.IsNullOrWhiteSpace(value); + public static bool IsPresent(this string value) => !string.IsNullOrWhiteSpace(value); + + public static bool IsDirectoryWritable(this string dirPath, bool throwIfFails = false) { + try { + using (var fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), + 1, + FileOptions.DeleteOnClose) + ) { } + + return true; + } catch { + if (throwIfFails) + throw; + + return false; } + } - //https://tomrucki.com/posts/aes-encryption-in-csharp/ - public static string EncryptWithAes(this string toEncrypt, string password) { - var key = GetKey(password); + //https://tomrucki.com/posts/aes-encryption-in-csharp/ + public static string EncryptWithAes(this string toEncrypt, string password) { + var key = GetKey(password); - using var aes = CreateAes(); - var iv = GenerateRandomBytes(AES_BLOCK_BYTE_SIZE); - var plainText = Encoding.UTF8.GetBytes(toEncrypt); + using var aes = CreateAes(); + var iv = GenerateRandomBytes(AES_BLOCK_BYTE_SIZE); + var plainText = Encoding.UTF8.GetBytes(toEncrypt); - using var encryptor = aes.CreateEncryptor(key, iv); - var cipherText = encryptor - .TransformFinalBlock(plainText, 0, plainText.Length); + using var encryptor = aes.CreateEncryptor(key, iv); + var cipherText = encryptor + .TransformFinalBlock(plainText, 0, plainText.Length); - var result = new byte[iv.Length + cipherText.Length]; - iv.CopyTo(result, 0); - cipherText.CopyTo(result, iv.Length); + var result = new byte[iv.Length + cipherText.Length]; + iv.CopyTo(result, 0); + cipherText.CopyTo(result, iv.Length); - return Convert.ToBase64String(result); - } + return Convert.ToBase64String(result); + } - private static Aes CreateAes() { - var aes = Aes.Create(); - aes.Mode = CipherMode.CBC; - aes.Padding = PaddingMode.PKCS7; - return aes; - } + private static Aes CreateAes() { + var aes = Aes.Create(); + aes.Mode = CipherMode.CBC; + aes.Padding = PaddingMode.PKCS7; + return aes; + } - public static string DecryptWithAes(this string input, string password) { - var key = GetKey(password); - var encryptedData = Convert.FromBase64String(input); + public static string DecryptWithAes(this string input, string password) { + var key = GetKey(password); + var encryptedData = Convert.FromBase64String(input); - using var aes = CreateAes(); - var iv = encryptedData.Take(AES_BLOCK_BYTE_SIZE).ToArray(); - var cipherText = encryptedData.Skip(AES_BLOCK_BYTE_SIZE).ToArray(); + using var aes = CreateAes(); + var iv = encryptedData.Take(AES_BLOCK_BYTE_SIZE).ToArray(); + var cipherText = encryptedData.Skip(AES_BLOCK_BYTE_SIZE).ToArray(); - using var decryptor = aes.CreateDecryptor(key, iv); - var decryptedBytes = decryptor - .TransformFinalBlock(cipherText, 0, cipherText.Length); - return Encoding.UTF8.GetString(decryptedBytes); - } + using var decryptor = aes.CreateDecryptor(key, iv); + var decryptedBytes = decryptor + .TransformFinalBlock(cipherText, 0, cipherText.Length); + return Encoding.UTF8.GetString(decryptedBytes); + } - private static byte[] GetKey(string password) { - var keyBytes = Encoding.UTF8.GetBytes(password); - using var md5 = MD5.Create(); - return md5.ComputeHash(keyBytes); - } + private static byte[] GetKey(string password) { + var keyBytes = Encoding.UTF8.GetBytes(password); + using var md5 = MD5.Create(); + return md5.ComputeHash(keyBytes); + } - private static byte[] GenerateRandomBytes(int numberOfBytes) { - var randomBytes = new byte[numberOfBytes]; - _random.GetBytes(randomBytes); - return randomBytes; - } + private static byte[] GenerateRandomBytes(int numberOfBytes) { + var randomBytes = new byte[numberOfBytes]; + _random.GetBytes(randomBytes); + return randomBytes; } -} +} \ No newline at end of file -- cgit v1.3