Changeset 338
- Timestamp:
- 4/1/2008 1:23:39 PM (5 years ago)
- Location:
- branches/eraser6
- Files:
-
- 7 edited
-
Eraser/Program.cs (modified) (3 diffs)
-
Eraser/SettingsPanel.Designer.cs (modified) (12 diffs)
-
Eraser/SettingsPanel.cs (modified) (4 diffs)
-
Eraser/SettingsPanel.resx (modified) (1 diff)
-
Manager/DirectExecutor.cs (modified) (1 diff)
-
Manager/Manager.csproj (modified) (1 diff)
-
Manager/Settings.cs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eraser6/Eraser/Program.cs
r332 r338 29 29 //Load the task list 30 30 RegistryKey key = Application.UserAppDataRegistry; 31 byte[] savedTaskList = (byte[])key.GetValue("TaskList", new byte[ ] { });31 byte[] savedTaskList = (byte[])key.GetValue("TaskList", new byte[0]); 32 32 using (MemoryStream stream = new MemoryStream(savedTaskList)) 33 33 { … … 97 97 S.Language = new CultureInfo(UILanguage); 98 98 99 //Load the plausible deniability files 100 byte[] plausibleDeniabilityFiles = (byte[]) 101 key.GetValue("PlausibleDeniabilityFiles", new byte[0]); 102 if (plausibleDeniabilityFiles.Length != 0) 103 using (MemoryStream stream = new MemoryStream(plausibleDeniabilityFiles)) 104 { 105 try 106 { 107 this.PlausibleDeniabilityFiles = (List<string>) 108 new BinaryFormatter().Deserialize(stream); 109 } 110 catch (Exception) 111 { 112 key.DeleteValue("PlausibleDeniabilityFiles"); 113 MessageBox.Show(S._("Could not load list of files used for plausible " + 114 "deniability.\n\nThe list of files have been lost."), 115 S._("Eraser"), MessageBoxButtons.OK, MessageBoxIcon.Error); 116 } 117 } 118 99 119 //Load the plugin settings. 100 byte[] pluginSettings = (byte[])key.GetValue("PluginSettings", new byte[ ] { });120 byte[] pluginSettings = (byte[])key.GetValue("PluginSettings", new byte[0]); 101 121 if (pluginSettings.Length != 0) 102 122 using (MemoryStream stream = new MemoryStream(pluginSettings)) … … 139 159 key.SetValue("PluginSettings", stream.ToArray(), RegistryValueKind.Binary); 140 160 } 161 162 using (MemoryStream stream = new MemoryStream()) 163 { 164 new BinaryFormatter().Serialize(stream, PlausibleDeniabilityFiles); 165 key.SetValue("PlausibleDeniabilityFiles", stream.ToArray(), RegistryValueKind.Binary); 166 } 141 167 } 142 168 } -
branches/eraser6/Eraser/SettingsPanel.Designer.cs
r307 r338 58 58 this.uiLanguageLbl = new System.Windows.Forms.Label(); 59 59 this.uiLanguage = new System.Windows.Forms.ComboBox(); 60 this.plausibleDeniabilityFiles = new System.Windows.Forms.ListBox(); 61 this.plausibleDeniabilityFilesAddFile = new System.Windows.Forms.Button(); 62 this.plausibleDeniabilityFilesRemove = new System.Windows.Forms.Button(); 63 this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); 64 this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); 65 this.plausibleDeniabilityFilesAddFolder = new System.Windows.Forms.Button(); 60 66 ((System.ComponentModel.ISupportInitialize)(this.titleIcon)).BeginInit(); 61 67 this.content.SuspendLayout(); … … 75 81 // content 76 82 // 83 this.content.Controls.Add(this.plausibleDeniabilityFilesAddFolder); 84 this.content.Controls.Add(this.plausibleDeniabilityFilesRemove); 85 this.content.Controls.Add(this.plausibleDeniabilityFilesAddFile); 86 this.content.Controls.Add(this.plausibleDeniabilityFiles); 77 87 this.content.Controls.Add(this.uiLanguage); 78 88 this.content.Controls.Add(this.uiLanguageLbl); … … 95 105 this.content.Controls.Add(this.uiContextMenu); 96 106 this.content.Controls.Add(this.ui); 97 this.content.Size = new System.Drawing.Size(712, 630);107 this.content.Size = new System.Drawing.Size(712, 780); 98 108 // 99 109 // ui … … 196 206 this.plugins.AutoSize = true; 197 207 this.plugins.Label = "Plugins"; 198 this.plugins.Location = new System.Drawing.Point(0, 357);208 this.plugins.Location = new System.Drawing.Point(0, 507); 199 209 this.plugins.Name = "plugins"; 200 210 this.plugins.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); … … 213 223 this.pluginsManager.ContextMenuStrip = this.pluginsMenu; 214 224 this.pluginsManager.FullRowSelect = true; 215 this.pluginsManager.Location = new System.Drawing.Point(20, 395);225 this.pluginsManager.Location = new System.Drawing.Point(20, 545); 216 226 this.pluginsManager.Name = "pluginsManager"; 217 227 this.pluginsManager.Size = new System.Drawing.Size(689, 234); … … 261 271 this.scheduler.AutoSize = true; 262 272 this.scheduler.Label = "Scheduler settings"; 263 this.scheduler.Location = new System.Drawing.Point(0, 263);273 this.scheduler.Location = new System.Drawing.Point(0, 413); 264 274 this.scheduler.Name = "scheduler"; 265 275 this.scheduler.Padding = new System.Windows.Forms.Padding(0, 10, 0, 5); … … 270 280 // 271 281 this.schedulerMissed.AutoSize = true; 272 this.schedulerMissed.Location = new System.Drawing.Point(17, 298);282 this.schedulerMissed.Location = new System.Drawing.Point(17, 448); 273 283 this.schedulerMissed.Name = "schedulerMissed"; 274 284 this.schedulerMissed.Size = new System.Drawing.Size(242, 13); … … 280 290 this.schedulerMissedImmediate.AutoSize = true; 281 291 this.schedulerMissedImmediate.Checked = true; 282 this.schedulerMissedImmediate.Location = new System.Drawing.Point(36, 314);292 this.schedulerMissedImmediate.Location = new System.Drawing.Point(36, 464); 283 293 this.schedulerMissedImmediate.Name = "schedulerMissedImmediate"; 284 294 this.schedulerMissedImmediate.Size = new System.Drawing.Size(217, 17); … … 291 301 // 292 302 this.schedulerMissedIgnore.AutoSize = true; 293 this.schedulerMissedIgnore.Location = new System.Drawing.Point(36, 334);303 this.schedulerMissedIgnore.Location = new System.Drawing.Point(36, 484); 294 304 this.schedulerMissedIgnore.Name = "schedulerMissedIgnore"; 295 305 this.schedulerMissedIgnore.Size = new System.Drawing.Size(339, 17); … … 339 349 this.plausibleDeniability.Location = new System.Drawing.Point(20, 240); 340 350 this.plausibleDeniability.Name = "plausibleDeniability"; 341 this.plausibleDeniability.Size = new System.Drawing.Size(3 61, 17);351 this.plausibleDeniability.Size = new System.Drawing.Size(359, 17); 342 352 this.plausibleDeniability.TabIndex = 14; 343 this.plausibleDeniability.Text = " Copy other files from the same volume over the deleted file after erasing";353 this.plausibleDeniability.Text = "Replace erased files with the following files to allow plausible deniability"; 344 354 this.plausibleDeniability.UseVisualStyleBackColor = true; 355 this.plausibleDeniability.CheckedChanged += new System.EventHandler(this.plausibleDeniability_CheckedChanged); 345 356 // 346 357 // uiLanguageLbl … … 362 373 this.uiLanguage.TabIndex = 3; 363 374 // 375 // plausibleDeniabilityFiles 376 // 377 this.plausibleDeniabilityFiles.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 378 | System.Windows.Forms.AnchorStyles.Right))); 379 this.plausibleDeniabilityFiles.FormattingEnabled = true; 380 this.plausibleDeniabilityFiles.Location = new System.Drawing.Point(36, 263); 381 this.plausibleDeniabilityFiles.Name = "plausibleDeniabilityFiles"; 382 this.plausibleDeniabilityFiles.Size = new System.Drawing.Size(673, 147); 383 this.plausibleDeniabilityFiles.TabIndex = 21; 384 // 385 // plausibleDeniabilityFilesAddFile 386 // 387 this.plausibleDeniabilityFilesAddFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 388 this.plausibleDeniabilityFilesAddFile.Location = new System.Drawing.Point(462, 236); 389 this.plausibleDeniabilityFilesAddFile.Name = "plausibleDeniabilityFilesAddFile"; 390 this.plausibleDeniabilityFilesAddFile.Size = new System.Drawing.Size(75, 23); 391 this.plausibleDeniabilityFilesAddFile.TabIndex = 22; 392 this.plausibleDeniabilityFilesAddFile.Text = "Add File..."; 393 this.plausibleDeniabilityFilesAddFile.UseVisualStyleBackColor = true; 394 this.plausibleDeniabilityFilesAddFile.Click += new System.EventHandler(this.plausibleDeniabilityFilesAddFile_Click); 395 // 396 // plausibleDeniabilityFilesRemove 397 // 398 this.plausibleDeniabilityFilesRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 399 this.plausibleDeniabilityFilesRemove.Location = new System.Drawing.Point(634, 236); 400 this.plausibleDeniabilityFilesRemove.Name = "plausibleDeniabilityFilesRemove"; 401 this.plausibleDeniabilityFilesRemove.Size = new System.Drawing.Size(75, 23); 402 this.plausibleDeniabilityFilesRemove.TabIndex = 23; 403 this.plausibleDeniabilityFilesRemove.Text = "Remove"; 404 this.plausibleDeniabilityFilesRemove.UseVisualStyleBackColor = true; 405 this.plausibleDeniabilityFilesRemove.Click += new System.EventHandler(this.plausibleDeniabilityFilesRemove_Click); 406 // 407 // openFileDialog 408 // 409 this.openFileDialog.Filter = "All Files (*.*)|*.*"; 410 this.openFileDialog.Multiselect = true; 411 // 412 // plausibleDeniabilityFilesAddFolder 413 // 414 this.plausibleDeniabilityFilesAddFolder.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 415 this.plausibleDeniabilityFilesAddFolder.Location = new System.Drawing.Point(543, 236); 416 this.plausibleDeniabilityFilesAddFolder.Name = "plausibleDeniabilityFilesAddFolder"; 417 this.plausibleDeniabilityFilesAddFolder.Size = new System.Drawing.Size(85, 23); 418 this.plausibleDeniabilityFilesAddFolder.TabIndex = 24; 419 this.plausibleDeniabilityFilesAddFolder.Text = "Add Folder..."; 420 this.plausibleDeniabilityFilesAddFolder.UseVisualStyleBackColor = true; 421 this.plausibleDeniabilityFilesAddFolder.Click += new System.EventHandler(this.plausibleDeniabilityFilesAddFolder_Click); 422 // 364 423 // SettingsPanel 365 424 // 366 425 this.Controls.Add(this.saveSettings); 367 426 this.Name = "SettingsPanel"; 368 this.Size = new System.Drawing.Size(752, 702);427 this.Size = new System.Drawing.Size(752, 852); 369 428 this.Controls.SetChildIndex(this.saveSettings, 0); 370 429 this.Controls.SetChildIndex(this.titleLbl, 0); … … 411 470 private System.Windows.Forms.ComboBox uiLanguage; 412 471 private System.Windows.Forms.Label uiLanguageLbl; 472 private System.Windows.Forms.Button plausibleDeniabilityFilesRemove; 473 private System.Windows.Forms.Button plausibleDeniabilityFilesAddFile; 474 private System.Windows.Forms.ListBox plausibleDeniabilityFiles; 475 private System.Windows.Forms.OpenFileDialog openFileDialog; 476 private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog; 477 private System.Windows.Forms.Button plausibleDeniabilityFilesAddFolder; 413 478 } 414 479 } -
branches/eraser6/Eraser/SettingsPanel.cs
r318 r338 97 97 break; 98 98 } 99 100 foreach (string path in ManagerLibrary.Instance.Settings.PlausibleDeniabilityFiles) 101 plausibleDeniabilityFiles.Items.Add(path); 99 102 100 103 lockedAllow.Checked = … … 163 166 } 164 167 168 private void plausibleDeniability_CheckedChanged(object sender, EventArgs e) 169 { 170 plausibleDeniabilityFiles.Enabled = plausibleDeniabilityFilesAddFile.Enabled = 171 plausibleDeniabilityFilesRemove.Enabled = plausibleDeniability.Checked; 172 } 173 174 private void plausibleDeniabilityFilesAddFile_Click(object sender, EventArgs e) 175 { 176 if (openFileDialog.ShowDialog() == DialogResult.OK) 177 plausibleDeniabilityFiles.Items.AddRange(openFileDialog.FileNames); 178 } 179 180 private void plausibleDeniabilityFilesAddFolder_Click(object sender, EventArgs e) 181 { 182 if (folderBrowserDialog.ShowDialog() == DialogResult.OK) 183 plausibleDeniabilityFiles.Items.Add(folderBrowserDialog.SelectedPath); 184 } 185 186 private void plausibleDeniabilityFilesRemove_Click(object sender, EventArgs e) 187 { 188 if (plausibleDeniabilityFiles.SelectedIndex != -1) 189 plausibleDeniabilityFiles.Items.RemoveAt(plausibleDeniabilityFiles.SelectedIndex); 190 } 191 165 192 private void pluginsMenu_Opening(object sender, CancelEventArgs e) 166 193 { … … 208 235 errorProvider.SetError(erasePRNG, S._("An invalid randomness data " + 209 236 "source was selected.")); 237 return; 238 } 239 else if (plausibleDeniability.Checked && plausibleDeniabilityFiles.Items.Count == 0) 240 { 241 errorProvider.SetError(plausibleDeniabilityFiles, S._("Erasures with plausible deniability " + 242 "was selected, but no files were selected to be used as decoys.")); 243 errorProvider.SetIconPadding(plausibleDeniabilityFiles, -16); 210 244 return; 211 245 } … … 230 264 ManagerLibrary.Instance.Settings.ConfirmEraseOnRestart = 231 265 lockedConfirm.Checked; 266 267 List<string> plausibleDeniabilityFilesList = new List<string>(); 268 foreach (string str in this.plausibleDeniabilityFiles.Items) 269 plausibleDeniabilityFilesList.Add(str); 270 ManagerLibrary.Instance.Settings.PlausibleDeniabilityFiles = plausibleDeniabilityFilesList; 271 232 272 ManagerLibrary.Instance.Settings.ExecuteMissedTasksImmediately = 233 273 schedulerMissedImmediate.Checked; -
branches/eraser6/Eraser/SettingsPanel.resx
r303 r338 124 124 <value>17, 17</value> 125 125 </metadata> 126 <metadata name="openFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 127 <value>257, 17</value> 128 </metadata> 129 <metadata name="folderBrowserDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 130 <value>397, 17</value> 131 </metadata> 126 132 </root> -
branches/eraser6/Manager/DirectExecutor.cs
r335 r338 792 792 { 793 793 //Get the template file to copy 794 string shadowFile;795 794 FileInfo shadowFileInfo; 796 do 797 { 798 shadowFile = GetRandomFileName(info.Directory.Root); 795 { 796 string shadowFile; 797 List<string> entries = ManagerLibrary.Instance.Settings.PlausibleDeniabilityFiles.GetRange( 798 0, ManagerLibrary.Instance.Settings.PlausibleDeniabilityFiles.Count); 799 PRNG prng = PRNGManager.GetInstance(ManagerLibrary.Instance.Settings.ActivePRNG); 800 do 801 { 802 if (entries.Count == 0) 803 throw new FatalException("Plausible deniability was selected, but no decoy files " + 804 "were found. The current file has been only replaced with random data."); 805 806 int index = prng.Next(entries.Count - 1); 807 if ((System.IO.File.GetAttributes(entries[index]) & FileAttributes.Directory) != 0) 808 shadowFile = GetRandomFileName(new DirectoryInfo(entries[index])); 809 else 810 shadowFile = entries[index]; 811 812 entries.RemoveAt(index); 813 } 814 while (shadowFile.Length == 0 || Path.GetDirectoryName(shadowFile) == info.DirectoryName); 799 815 shadowFileInfo = new FileInfo(shadowFile); 800 816 } 801 while (shadowFileInfo.DirectoryName == info.DirectoryName); 802 817 803 818 //Rename the file to have the same name as the shadow 804 819 info.MoveTo(info.DirectoryName + shadowFileInfo.Name); -
branches/eraser6/Manager/Manager.csproj
r307 r338 10 10 <RootNamespace>Eraser.Manager</RootNamespace> 11 11 <AssemblyName>Eraser.Manager</AssemblyName> 12 <RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent> 12 13 </PropertyGroup> 13 14 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> -
branches/eraser6/Manager/Settings.cs
r324 r338 149 149 /// before removing it. 150 150 /// </summary> 151 /// <seealso cref="PlausibleDeniabilityFiles"/> 151 152 public bool PlausibleDeniability 152 153 { … … 160 161 lock (this) 161 162 plausibleDeniability = value; 163 } 164 } 165 166 /// <summary> 167 /// The files which are overwritten with when a file has been erased. 168 /// </summary> 169 public List<string> PlausibleDeniabilityFiles 170 { 171 get 172 { 173 lock (this) 174 return plausibleDeniabilityFiles; 175 } 176 set 177 { 178 lock (this) 179 plausibleDeniabilityFiles = value; 162 180 } 163 181 } … … 216 234 private bool executeMissedTasksImmediately = true; 217 235 private bool plausibleDeniability = true; 236 private List<string> plausibleDeniabilityFiles = new List<string>(); 218 237 219 238 protected Dictionary<Guid, Dictionary<string, object>> pluginSettings =
Note: See TracChangeset
for help on using the changeset viewer.
