|
1 | 1 | using System;
|
2 | 2 | using System.Collections.Generic;
|
| 3 | +using System.IO; |
3 | 4 | using System.Text;
|
4 | 5 | using Xunit;
|
5 | 6 |
|
@@ -187,5 +188,51 @@ public void Aes_Decrypt_With_ErrorIV_Fail_Test()
|
187 | 188 | //Assert
|
188 | 189 | Assert.Throws<ArgumentOutOfRangeException>(() => EncryptProvider.AESDecrypt(srcString, key, iv));
|
189 | 190 | }
|
| 191 | + |
| 192 | + [Fact(DisplayName = "AES encrypt and decrypt about file stream")] |
| 193 | + public void Aes_File_Test() |
| 194 | + { |
| 195 | + var rootDir = Path.Combine(AppContext.BaseDirectory, "Assets"); |
| 196 | + if (!Directory.Exists(rootDir)) |
| 197 | + { |
| 198 | + Directory.CreateDirectory(rootDir); |
| 199 | + } |
| 200 | + |
| 201 | + var file = Path.Combine(rootDir, "AES_File_Test.txt"); |
| 202 | + if (!File.Exists(file)) |
| 203 | + { |
| 204 | + using (var fileStream = File.OpenWrite(file)) |
| 205 | + { |
| 206 | + var tempDatas = Encoding.UTF8.GetBytes("May be you shoud get all the buffer of file,and then decrypt by EncryptProvider."); |
| 207 | + fileStream.Write(tempDatas, 0, tempDatas.Length); |
| 208 | + } |
| 209 | + } |
| 210 | + |
| 211 | + var aesKey = EncryptProvider.CreateAesKey(); |
| 212 | + |
| 213 | + //encrypt |
| 214 | + var text = File.ReadAllText(file); |
| 215 | + var datas = File.ReadAllBytes(file); |
| 216 | + |
| 217 | + var encryptedDatas = EncryptProvider.AESEncrypt(datas, aesKey.Key, aesKey.IV); |
| 218 | + var encryptedFile = Path.Combine(rootDir, "AES_File_Test_Encrypted.txt"); |
| 219 | + |
| 220 | + using (var fileStream = File.OpenWrite(encryptedFile)) |
| 221 | + { |
| 222 | + fileStream.Write(encryptedDatas, 0, encryptedDatas.Length); |
| 223 | + } |
| 224 | + |
| 225 | + //decrypt |
| 226 | + var encryptedFileDatas = File.ReadAllBytes(encryptedFile); |
| 227 | + var decryptedDatas = EncryptProvider.AESDecrypt(encryptedFileDatas, aesKey.Key, aesKey.IV); |
| 228 | + |
| 229 | + var decryptedText = Encoding.UTF8.GetString(decryptedDatas); |
| 230 | + |
| 231 | + //assert |
| 232 | + Assert.NotNull(decryptedDatas); |
| 233 | + Assert.Equal(decryptedText, text); |
| 234 | + |
| 235 | + |
| 236 | + } |
190 | 237 | }
|
191 | 238 | }
|
0 commit comments