static void EncryptFolder(string folder, string password) { Logger.Info(folder); var subFolders = System.IO.Directory.GetDirectories(folder); foreach (var subFolder in subFolders) { EncryptFolder(subFolder, password); } var fe = new FileEncryptionService(); var gch = GCHandle.Alloc(password, GCHandleType.Pinned); var files = System.IO.Directory.GetFiles(folder, "*.*", System.IO.SearchOption.TopDirectoryOnly); foreach (var file in files) { var fi = new System.IO.FileInfo(file); if (ExtensionToEncrypt.Contains(fi.Extension) == false) { continue; } Logger.Info(" " + file); fe.EncryptFile(file, password); } FileEncryptionService.ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2); gch.Free(); }
static void SimpleTest() { var fe = new FileEncryptionService(); var password = "******"; Console.WriteLine("Password: {0}", password); Console.WriteLine("Press Enter to start encrypting"); Console.ReadLine(); // For additional security Pin the password of your files var gch = GCHandle.Alloc(password, GCHandleType.Pinned); // Encrypt the file fe.EncryptFile(@"C:\TFSProjects\Playground\C#\Sovor.Crypto\Sovor.Crypto\testfile.zip", password); Console.WriteLine("Press Enter to start decrypting"); Console.ReadLine(); fe.DecryptFile(@"C:\TFSProjects\Playground\C#\Sovor.Crypto\Sovor.Crypto\testfile.zip.aes", password); // To increase the security of the encryption, delete the given password from the memory ! FileEncryptionService.ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2); gch.Free(); Console.WriteLine(password); }
public void Setup() { var config = new ApplyConfig { FileStorage = new FileStorageConfig { FileEncryptionKey = _fileEncryptionKey } }; var _configurationService = new Mock <IConfigurationService>(); _configurationService.Setup(x => x.GetConfig()).ReturnsAsync(config); _fileEncryptionService = new FileEncryptionService(_configurationService.Object); }