Winify – Diff between revs 41 and 61

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 41 Rev 61
Line 26... Line 26...
26 /////////////////////////////////////////////////////////////////////////// 26 ///////////////////////////////////////////////////////////////////////////
27 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 // 27 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
28 /////////////////////////////////////////////////////////////////////////// 28 ///////////////////////////////////////////////////////////////////////////
29 public static async Task<byte[]> Encrypt(byte[] plain, string password) 29 public static async Task<byte[]> Encrypt(byte[] plain, string password)
30 { 30 {
31 using (var rijndael = Rijndael.Create()) 31 using var rijndael = Rijndael.Create();
32 { -  
33 rijndael.BlockSize = 128; 32 rijndael.BlockSize = 128;
34 rijndael.Mode = CipherMode.CBC; 33 rijndael.Mode = CipherMode.CBC;
35 rijndael.KeySize = 256; 34 rijndael.KeySize = 256;
36 rijndael.Padding = PaddingMode.PKCS7; 35 rijndael.Padding = PaddingMode.PKCS7;
37 var salt = new byte[AESKeySaltBytes]; 36 var salt = new byte[AESKeySaltBytes];
38 Rng.GetBytes(salt); 37 Rng.GetBytes(salt);
39 using (var pdb = new Rfc2898DeriveBytes(password, salt, 1000)) 38 using var pdb = new Rfc2898DeriveBytes(password, salt, 1000);
40 { -  
41 rijndael.Key = pdb.GetBytes(rijndael.KeySize / 8); 39 rijndael.Key = pdb.GetBytes(rijndael.KeySize / 8);
42 rijndael.IV = pdb.GetBytes(rijndael.BlockSize / 8); 40 rijndael.IV = pdb.GetBytes(rijndael.BlockSize / 8);
43   41  
44 using (var memoryStream = new MemoryStream()) 42 using var memoryStream = new MemoryStream();
45 { -  
46 using (var cryptoStream = 43 using var cryptoStream =
47 new CryptoStream(memoryStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write)) 44 new CryptoStream(memoryStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write);
48 { -  
49 await cryptoStream.WriteAsync(plain, 0, plain.Length); 45 await cryptoStream.WriteAsync(plain, 0, plain.Length);
50 cryptoStream.Close(); 46 cryptoStream.Close();
51   47  
52 var ciphertext = memoryStream.ToArray(); 48 var ciphertext = memoryStream.ToArray();
53   49  
54 return salt.Concat(ciphertext).ToArray(); 50 return salt.Concat(ciphertext).ToArray();
55 } -  
56 } -  
57 } -  
58 } -  
59 } 51 }
Line 60... Line 52...
60   52  
61 /////////////////////////////////////////////////////////////////////////// 53 ///////////////////////////////////////////////////////////////////////////
62 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 // 54 // Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
63 /////////////////////////////////////////////////////////////////////////// 55 ///////////////////////////////////////////////////////////////////////////
64 public static async Task<byte[]> Decrypt(byte[] cipher, string password) 56 public static async Task<byte[]> Decrypt(byte[] cipher, string password)
65 { 57 {
66 using (var rijndael = Rijndael.Create()) -  
67 { 58 using var rijndael = Rijndael.Create();
68 rijndael.BlockSize = 128; 59 rijndael.BlockSize = 128;
69 rijndael.Mode = CipherMode.CBC; 60 rijndael.Mode = CipherMode.CBC;
70 rijndael.KeySize = 256; 61 rijndael.KeySize = 256;
71 rijndael.Padding = PaddingMode.PKCS7; 62 rijndael.Padding = PaddingMode.PKCS7;
72   63  
73 var salt = cipher.Take(AESKeySaltBytes).ToArray(); 64 var salt = cipher.Take(AESKeySaltBytes).ToArray();
74   65  
75 var ciphertext = cipher.Skip(AESKeySaltBytes).ToArray(); 66 var ciphertext = cipher.Skip(AESKeySaltBytes).ToArray();
76   67  
77 using (var pdb = new Rfc2898DeriveBytes(password, salt, 1000)) -  
78 { 68 using var pdb = new Rfc2898DeriveBytes(password, salt, 1000);
79 rijndael.Key = pdb.GetBytes(rijndael.KeySize / 8); 69 rijndael.Key = pdb.GetBytes(rijndael.KeySize / 8);
80 rijndael.IV = pdb.GetBytes(rijndael.BlockSize / 8); 70 rijndael.IV = pdb.GetBytes(rijndael.BlockSize / 8);
81   71  
82 using (var memoryStream = new MemoryStream()) -  
83 { 72 using var memoryStream = new MemoryStream();
84 using (var cryptoStream = 73 using var cryptoStream =
85 new CryptoStream(memoryStream, rijndael.CreateDecryptor(), CryptoStreamMode.Write)) -  
86 { 74 new CryptoStream(memoryStream, rijndael.CreateDecryptor(), CryptoStreamMode.Write);
87 await cryptoStream.WriteAsync(ciphertext, 0, ciphertext.Length); 75 await cryptoStream.WriteAsync(ciphertext, 0, ciphertext.Length);
88 cryptoStream.Close(); 76 cryptoStream.Close();
89   77  
90 return memoryStream.ToArray(); -  
91 } -  
92 } -  
93 } -  
94 } 78 return memoryStream.ToArray();
Line 95... Line 79...
95 } 79 }
96   80  
97 #endregion 81 #endregion
98 } 82 }