Timeline


and

4/18/2012:

02:37 Ticket #432 (Crashes upon loading - Eraser 6.1.0.2615) closed by Joel
duplicate: I'll mark this as a duplicate (of #431). Please do not report similar bugs …

4/16/2012:

11:03 Ticket #432 (Crashes upon loading - Eraser 6.1.0.2615) created by tekeek
In addition to my previous ticket this version also crashes upon starting …
10:56 Ticket #431 (Crashes upon loading - Eraser 6.1.0.2617) created by tekeek
After installing Eraser 6.1.0.2617 crashes upon running it. Windows 7 …

4/11/2012:

06:07 Ticket #430 (ERASER will NOT scan unuse space on ext or C drives) closed by Joel
duplicate: Do not duplicate tickets. Use the old one to make comments. Count …
06:07 Ticket #429 (ERASER will NOT scan unuse space on ext or C drives) closed by Joel
duplicate: Do not duplicate tickets. Use the old one to make comments. Count …
01:18 Ticket #430 (ERASER will NOT scan unuse space on ext or C drives) created by genethomas@…
#428 Joel, What you offered made no differene. RIGHT click on desktop …
01:18 Ticket #429 (ERASER will NOT scan unuse space on ext or C drives) created by genethomas@…
#428 Joel, What you offered made no differene. RIGHT click on desktop …

4/5/2012:

16:01 Ticket #428 (Will not run scan ever since installed) created by genethomas@…
Trying to RUN NOW erase of unused space gets immediate message>> …

4/4/2012:

19:05 Build of Eraser 6.2 [2617] on Windows completed
06:57 Changeset [2617] by lowjoel
  • trunk/eraser/Eraser/Program.cs

Fixed crash when running "eraser help" reported in http://eraser.heidi.ie/forum/viewtopic.php?f=36&t=8716

4/2/2012:

11:04 Ticket #427 (Task List and log saving behaviour improvement) created by DavidHB
In Version 6.0.x onwards, updates to the Task List and logs are saved to …
05:32 Changeset [2616] by lowjoel
  • trunk/website/scripts/Build.php

Fixed invalid property access because the Build class bypassed the get of the Download class.

4/1/2012:

07:05 Build of Eraser 6.2 [2615] on Windows completed

3/31/2012:

23:03 Changeset [2615] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/Strings.en.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.it.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.nl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.pl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.resx

New strings.

23:02 Changeset [2614] by lowjoel
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs

Pass the entire XmlReader? to the targets for deserialization since passing a subtree would cause the graph to not load correctly (the parent XmlReader? will not reach the end element, even when the subtree has been read to the end). This prevents us from deserializing multiple items properly if the subitem is an empty element.

23:00 Changeset [2613] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs

We should error out if we call the ErasureTargetBase?.ReadXml? class directly.

19:05 Build of Eraser 6.2 [2612] on Windows completed
10:05 Changesets [2611-2612] by lowjoel
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
  • trunk/eraser/Eraser.Manager/Schedule.cs
  • trunk/eraser/Eraser.Manager/Task.cs
  • trunk/eraser/Eraser.Util/Logger.cs

Follow the advice in http://www.codeproject.com/Articles/43237/How-to-Implement-IXmlSerializable-Correctly since the MSDN documentation is very vague about proper behaviour of IXmlSerializable.ReadXml?.

08:28 Changeset [2610] by lowjoel
  • trunk/eraser/Eraser.Manager/Executor.cs

Fixed broken XmlDoc? tag.

08:16 Changeset [2609] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureMethods/ErasureMethodBase.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureMethod.cs
  • trunk/eraser/Eraser.Plugins/Settings.cs
  • trunk/eraser/Eraser/Program.cs
  • trunk/eraser/Eraser/SettingsPanel.Designer.cs
  • trunk/eraser/Eraser/SettingsPanel.cs
  • trunk/eraser/Eraser/SettingsPanel.it.resx
  • trunk/eraser/Eraser/SettingsPanel.nl.resx
  • trunk/eraser/Eraser/SettingsPanel.resx
  • trunk/eraser/Eraser/Strings.en.resx
  • trunk/eraser/Eraser/Strings.it.resx
  • trunk/eraser/Eraser/Strings.nl.resx
  • trunk/eraser/Eraser/Strings.pl.resx
  • trunk/eraser/Eraser/Strings.resx
  • trunk/eraser/Eraser/TaskDataSelectionForm.cs

Replace all references to "Unused disk space" with "Drives" since we have generalised erasures for any drives now. Unused disk space is therefore a subset of the Drive erasure.

07:05 Build of Eraser 6.2 [2608] on Windows completed
01:00 Ticket #420 (will not run upon install) closed by trac-robot
This ticket was closed automatically by the system. It was previously set …
00:54 Changeset [2608] by lowjoel
  • trunk/eraser/Eraser.Manager/Schedule.cs
  • trunk/eraser/Eraser/SchedulerPanel.cs

Use ToString?() instead of the clumsy UIText property.

00:45 Changeset [2607] by lowjoel
  • branches/eraser6/XmlTaskLists

Close the branch: I've merged to trunk in r2606.

00:44 Changeset [2606] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • trunk/eraser/Eraser.Manager/DirectExecutor.cs
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs
  • trunk/eraser/Eraser.Manager/Executor.cs
  • trunk/eraser/Eraser.Manager/Schedule.cs
  • trunk/eraser/Eraser.Manager/Task.cs
  • trunk/eraser/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
  • trunk/eraser/Eraser.Plugins/ITask.cs
  • trunk/eraser/Eraser.Util/Logger.cs
  • trunk/eraser/Eraser/LogForm.cs
  • trunk/eraser/Eraser/MainForm.cs
  • trunk/eraser/Eraser/Program.cs
  • trunk/eraser/Eraser/SchedulerPanel.cs
  • trunk/eraser/Installer/DirectoryStructure.wxs

Merged the XML Task Lists branch back to trunk. Implements #362: Use XML to store task lists

00:39 Ticket #426 (Include a list of drives on the computer when generating BlackBox reports) created by Joel
Include the geometry and list of drives on the user's computer, similar to …
00:38 Ticket #425 (Program a Web Interface for the BlackBox component) created by Joel
- Allow developers to mark reports as read - One-click scripts which …
00:25 Ticket #424 (Reset File times with values from the last 3 months) created by Joel
Instead of setting dates to Jan 1 1600, set it to sometime in the last 3 …
00:20 Ticket #423 (Update About Dialog) created by Joel
We're using new libraries in Eraser 6.2, we need to credit them in the …

3/30/2012:

14:50 Changeset [2605] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

Fixed infinite recursion.

14:50 Changeset [2604] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/DirectExecutor.cs
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Executor.cs
  • branches/eraser6/XmlTaskLists/Eraser/Program.cs

When saving our task list, used the separated log/task list saving functions instead. Fall back to the aggregated format when we are serializing for other purposes.

14:48 Changeset [2603] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser/LogForm.cs

Allow us to view logs for Lazy-loading log sinks.

11:16 Changeset [2602] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Task.cs
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs
  • branches/eraser6/XmlTaskLists/Eraser/LogForm.cs

Make the LogSink? a base class (LogSinkBase?) and implement a normal LogSink? (API compatible with the old LogSink?) and a new LazyLogSink? class which will load a log from disk as required.
As a result of this change, Task will have two WriteXml? functions: The default will continue to generate the same code; the new overload will place references to logs if the logs are larger than a certain threshold. This is to optimize the task list for size when loading/unloading.

09:52 Changeset [2601] by lowjoel
  • branches/eraser6/XmlTaskLists/Installer/DirectoryStructure.wxs

We will make ersy file associations now, in accordance to the change in file format.

09:51 Changeset [2600] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/DirectExecutor.cs

Make our root element TaskList?.

09:44 Changeset [2599] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Task.cs

Future-proof the format in case we got new types of schedules. In those situations, we will assume the user means a Manual schedule.

09:39 Changeset [2598] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs

Implement a different ReadXml? overload that allows derived classes to instruct base classes whether to advance the XML Reader pointer forward. This allows us to read attributes of the same element.
Also fixed the ordering of saving targets to disk.

09:15 Changeset [2597] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Task.cs

Implemented XML Serialization of Task objects.

09:14 Changeset [2596] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Schedule.cs

*Properly* follow the contract specified in IXmlSerializable.ReadXml?: the reader is placed at the start of our element, and our ReadXml? implementation must read the entire element to the end of the element before returning.

08:56 Changeset [2595] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs

Follow the contract specified in IXmlSerializable.ReadXml?: the reader is placed one before the start of our element, and our ReadXml? implementation must read the entire element to the end of the element.

08:55 Changeset [2594] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Schedule.cs
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

Follow the contract specified in IXmlSerializable.ReadXml?: the reader is placed one before the start of our element, and our ReadXml? implementation must read the entire element to the end of the element.
Also, use the O format when storing DateTime? values in the XML file. It has greater precision than the normal ToString?() call.

08:16 Changeset [2593] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

Allow log entries to be serialized to XML too.

03/30/12:

08:04 Changeset [2592] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/Schedule.cs

Implemented XML Serialization for the Schedule types.

07:52 Changesets [2590-2591] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser/MainForm.cs
  • branches/eraser6/XmlTaskLists/Eraser/SchedulerPanel.cs
  • branches/eraser6/XmlTaskLists/Eraser/MainForm.cs
  • branches/eraser6/XmlTaskLists/Eraser/Program.cs

Since we've changed our task list format to a different one, we need to change the file extension for differentiation.

07:51 Changeset [2589] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/DirectExecutor.cs

Save and load XML Task Lists instead for better compatibility between versions.

07:50 Changeset [2588] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Manager/ErasureTargetCollection.cs

Let ErasureTargetCollection? support reading/writing to XML streams.

07:46 Changeset [2587] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs

XmlSerializer? can only deal with public types.

07:05 Build of Eraser 6.2 [2581] on Windows completed
06:30 Changeset [2586] by EraserSlave
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs

Compile fix.

06:12 Changeset [2585] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ITask.cs

Partially reverted r2583-r2584: We should not remove the normal binary serialization code, since RemoteExecutor? still depends on it.

05:52 Changeset [2584] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/DriveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/ErasureTargetBase.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FileSystemObjectErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/RecycleBinErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.DefaultPlugins/ErasureTargets/UnusedSpaceErasureTarget.cs

Switch the Default Plugin's erasure targets to follow the new IXmlSerializable interface.

04:26 Changeset [2583] by lowjoel
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ExtensionPoints/IErasureTarget.cs
  • branches/eraser6/XmlTaskLists/Eraser.Plugins/ITask.cs

First change: Remove references to the System.Runtime.Serialization namespace and make all the serializable types serialize to XML.

03:43 Changeset [2582] by lowjoel
  • branches/eraser6/XmlTaskLists

Start the XML Task Lists branch

03:23 Changeset [2581] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/SecureMoveErasureTargetConfigurer.cs

Fixed Context Menu Secure Move handling bug reported in http://eraser.heidi.ie/forum/viewtopic.php?f=36&t=8705

03/23/12:

11:36 Ticket #422 (Properly detect SSDs and warn when erasing them) created by Joel
The IOCTL_STORAGE_QUERY_PROPERTY control code may be of use.

03/22/12:

20:56 TestingBuilds edited by DavidHB
(diff)
20:45 TestingBuilds edited by DavidHB
(diff)
18:05 Build of Eraser 6.2 [2580] on Windows completed
07:00 Changeset [2580] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Handle PlatformNotSupportedException? when trying our list of hash algorithms for compatibility with XP (precisely the reason for our list!)

06:47 Changeset [2579] by lowjoel
  • trunk/eraser/Eraser/Program.cs

Handle situations where the provided window handle is already a top-level window or the desktop handle.

06:46 Changeset [2578] by lowjoel
  • trunk/eraser/Eraser.Util/NativeMethods/User.cs
  • trunk/eraser/Eraser.Util/UserApi.cs
  • trunk/eraser/Eraser/Program.cs

Improve support for context menu erasures' confirmation dialog: the code will now set the owner window for the dialog to be a top-level window, for better minimise/maximise behaviour.

06:10 Build of Eraser 6 [2576] on Windows completed
06:05 Build of Eraser 6.2 [2577] on Windows completed
05:13 Ticket #376 (Context Menu - Add as schedule) closed by Joel
fixed: Eraser 6.2 currently lets you edit tasks before erasure, so tasks may not …
05:06 Ticket #421 (Eraser 6.1.2532 leaves jobs erased from context in schedule screen) closed by Joel
fixed: This has been fixed in a later build, please upgrade.
04:16 Ticket #421 (Eraser 6.1.2532 leaves jobs erased from context in schedule screen) created by phkhgh
In Vista hm prem x64, bld 2532 creates & leaves the erased file / folder …
04:01 Ticket #389 (Can not leave "Custom Erasure Method Editor") closed by Joel
fixed
04:01 Changeset [2577] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
  • trunk/eraser/Eraser.DefaultPlugins/CustomMethodEditorForm.resx

Forward-port r2576 Eraser 6.0: Do not validate the form when the user clicks on the Cancel button.

Fixes #389.

03:58 Changeset [2576] by lowjoel
  • branches/eraser6/6.0/Eraser.DefaultPlugins/CustomMethodEditorForm.Designer.cs
  • branches/eraser6/6.0/Eraser.DefaultPlugins/CustomMethodEditorForm.resx

Do not validate the form when the user clicks on the Cancel button.

Fixes #389.

03:51 Ticket #407 (Task List Erasure method reseted to default) closed by Joel
fixed: Fixed in r2575 for Eraser 6.0, and confirmed that Eraser 6.2 is not …
03:48 Changeset [2575] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/Task.cs

Specify that we have a specific method defined when we load the task from the stream. This is so that user-specified erasure methods persist across Eraser sessions.

Fixes #407.

03:36 Changeset [2574] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Don't run the GetSecondaryHashAlgorithm? function again if we've already tried once.

03:35 Ticket #406 (Not able to acquire a Cryptographic Service Provider on startup) closed by Joel
fixed: r2569-r2571 added some performance improvements, …
03:31 Changeset [2573] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Our entropy polling thread should have the lowest thread priority to reduce overhead when other tasks are running.

03:29 Changeset [2572] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs
  • trunk/eraser/Eraser.Manager/Strings.en.resx
  • trunk/eraser/Eraser.Manager/Strings.it.resx
  • trunk/eraser/Eraser.Manager/Strings.nl.resx
  • trunk/eraser/Eraser.Manager/Strings.pl.resx
  • trunk/eraser/Eraser.Manager/Strings.resx

Added a priority list for the primary and secondary hash algorithms. Favour the Crypto Next Gen APIs first, since they have higher speed on Vista+, fallback to the CryptoAPI implementations if they can't be created, and finally use the Managed implementations if the above two fail.

Should close #406.

02:58 Changeset [2571] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Use our MemoryXor? function to invert the pool, instead of writing another loop. Performance for this code is about 10% faster than the unsafe loop, on average, on x64.

01:38 Changeset [2570] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Wrong order of arguments, so the wrong array was XORed in place.

01:21 Changeset [2569] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs
  • Rewrote the MemoryXor? function to follow the API specification for Buffer.BlockCopy? for consistency.
  • Use ulong as the Xor word since tests showed that the ulong versions work almost twice as fast as the uint versions (even when running a 32-bit binary)
  • Rewrote the AddEntropy? function to use the new MemoryXor? API.

03/21/12:

18:11 Build of Eraser 6 [2565] on Windows completed
18:05 Build of Eraser 6.2 [2568] on Windows completed
14:09 TestingBuilds created by Joel
Create page.
14:09 WikiStart edited by Joel
Add link to new wiki article on testing Eraser (diff)
11:49 Changeset [2568] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Use shorthand for easier understanding.

11:31 Changeset [2567] by lowjoel
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs
  • trunk/eraser/Eraser.Manager/ManagerLibrary.cs
  • Fixed entropy poller registration: The plugins rewrite broke entropy source and entropy poller integration.
  • Rewrote the MixPool? routine to use max/min instead of repeated ternary operators for clarity.
  • Fixed the circular buffer which is the pool: the previous code always wrote new entropy to the start of the pool.
  • Every time the entropy pool wraps, mix the pool so that previous entropy is not wasted.
10:26 Changeset [2566] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.Manager/EntropyPoller.cs

Merged revisions 2563 and 2565 from Eraser 6.0:

  • Remove the unused PRFAlgorithms enum.
  • Removed the capability for switchable algorithms at runtime, and changed the default pool mixing function to SHA-1 since under FIPS compliance mode on Windows XP the SHA-2 family of hashes are not available. RIPEMD-160 is likewise not available. As such, under FIPS compliance mode, we will only use SHA-1, even on later OSes, and make primer mixing with RIPEMD-160 unavailable.
  • The sleep time between polls is now variable between 2 and 5 seconds. The previous one tended to pick the same amounts of time since it would effectively make one loop double the time it took to gather entropy from all entropy sources.
  • Only push entropy to the PRNGs every 10 minutes

Addresses #406

09:40 Changeset [2565] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/EntropySource.cs

Supplements r2563: Remove the unused PRFAlgorithms enum.

09:21 Changeset [2564] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/AdvApi.cs

Use null as the parameters for the Container and Provider parameters instead of the empty string, since that is what MSDN documentation says we should specify if we want defaults. In addition, specify CRYPT_VERIFYCONTEXT for accounts which do not have a persistent key container (e.g. Guest accounts).

Addresses #406: Not able to acquire a Cryptographic Service Provider on startup

06:10 Build of Eraser 6 [2563] on Windows completed
06:05 Build of Eraser 6.2 [2561] on Windows completed
03:40 Changeset [2563] by lowjoel
  • branches/eraser6/6.0/Eraser.Manager/EntropySource.cs

Behavioural change: Removed the capability for switchable algorithms at runtime, and changed the default pool mixing function to SHA-1 since under FIPS compliance mode on Windows XP the SHA-2 family of hashes are not available. RIPEMD-160 is likewise not available. As such, under FIPS compliance mode, we will only use SHA-1, even on later OSes, and make primer mixing with RIPEMD-160 unavailable.

Addresses #406. Eraser 6.2 will require a different fix; which would be to use proper fallback mechanisms (with the using the Crypto Next Gen APIs, which are said to be 10% faster)

02:15 Changeset [2562] by EraserSlave
  • branches/eraser6/6.0
  • branches/eraser6/6.0/Eraser.DefaultPlugins/FileSystems/Windows.cs
  • branches/eraser6/6.0/Eraser.Manager/DirectExecutor.cs
  • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

Backport from Eraser trunk: Better reparse point handling for Eraser 6.0 (https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966)
r2561: Part 2 fix for https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966 since erasing the actual reparse point would cause Eraser to crash if the reparse point references an invalid target.
r2560: Supplements r2549: Resolve reparse points only for as long as the reparse point we are referring to exists; otherwise fall back to volume name resolution.
r2559: We should only check for FileSystemInfos? in the directory being erased if the directory is not a symbolic link. Otherwise, the check is meaningless.
r2558: When we are setting file times for reparse points, we should fall back to setting the file times for the reparse point itself if we cannot set it on the target of the reparse point (such as if the reparse point points to an invalid object.)

01:46 Changeset [2561] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTarget.cs

Part 2 fix for https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966 since erasing the actual reparse point would cause Eraser to crash if the reparse point references an invalid target.

01:45 Changeset [2560] by lowjoel
  • trunk/eraser/Eraser.Util/VolumeInfo.cs

Supplements r2549: Resolve reparse points only for as long as the reparse point we are referring to exists; otherwise fall back to volume name resolution.

01:36 Changeset [2559] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/FileSystems/Windows.cs

We should only check for FileSystemInfos? in the directory being erased if the directory is not a symbolic link. Otherwise, the check is meaningless.

01:01 Changeset [2558] by lowjoel
  • trunk/eraser/Eraser.Util/ExtensionMethods/IO.cs
  • trunk/eraser/Eraser.Util/Strings.en.resx
  • trunk/eraser/Eraser.Util/Strings.it.resx
  • trunk/eraser/Eraser.Util/Strings.nl.resx
  • trunk/eraser/Eraser.Util/Strings.pl.resx
  • trunk/eraser/Eraser.Util/Strings.resx

When we are setting file times for reparse points, we should fall back to setting the file times for the reparse point itself if we cannot set it on the target of the reparse point (such as if the reparse point points to an invalid object.)

Fixes the first bug in https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684&p=25969#p25966 when erasing a folder containing reparse points.

03/20/12:

06:10 Build of Eraser 6 [2554] on Windows completed
06:05 Build of Eraser 6.2 [2557] on Windows completed
01:46 Changeset [2557] by lowjoel
  • trunk/eraser/Eraser/ShellConfirmationDialog.Designer.cs
  • trunk/eraser/Eraser/ShellConfirmationDialog.resx

Do not display the shell confirmation dialog with TopMost? set to true, since that would prevent child dialogs from being displayed properly.

01:40 Changeset [2556] by lowjoel
  • trunk/eraser/Eraser.Manager/ErasureTargetCollection.cs

Fixed exception when the Erasure Target owner is assigned the same value as what we currently have. The operation should be idempotent.

01:37 Changeset [2555] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
  • trunk/eraser/Eraser.Util/Strings.en.resx
  • trunk/eraser/Eraser.Util/Strings.it.resx
  • trunk/eraser/Eraser.Util/Strings.nl.resx
  • trunk/eraser/Eraser.Util/Strings.pl.resx
  • trunk/eraser/Eraser.Util/Strings.resx
  • trunk/eraser/Eraser.Util/VolumeInfo.cs

Forward-port from Eraser 6.0: Supplements r2551: Support direct volume reparse points, similar to what would occur before the code change.

01:34 Changeset [2554] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/NTApi.cs
  • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

Supplements r2550: Support direct volume reparse points, similar to what would occur before the code change.

01:10 Changeset [2553] by lowjoel
  • trunk/eraser/Eraser/SchedulerPanel.cs

Fixed exception when a timer tick event is raised after the completion of the task, but not before the TaskFinished? event is processed.

00:42 Changeset [2552] by lowjoel
  • trunk/website/scripts/updates/index.php

PHP warning fix for non-standard requests.

03/19/12:

12:10 Build of Eraser 6 [2550] on Windows completed
12:05 Build of Eraser 6.2 [2551] on Windows completed
08:31 Changeset [2551] by lowjoel
  • trunk/eraser
  • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
  • trunk/eraser/Eraser.Util/NativeMethods/Kernel.cs

Forward-port from Eraser 6.0: When we are dereferencing a reparse point, we only need FILE_READ_ATTRIBUTES | FILE_READ_EA access. Do not request GENERIC_READ access since for reduced permissions links (e.g. the junctions in the Vista+ User Profile folder) those permissions are not granted at the directory level (soi even administrators can't have those rights!)

Fixes #412.

08:26 Changeset [2550] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/KernelApi.cs
  • branches/eraser6/6.0/Eraser.Util/NTApi.cs

When we are dereferencing a reparse point, we only need FILE_READ_ATTRIBUTES | FILE_READ_EA access. Do not request GENERIC_READ access since for reduced permissions links (e.g. the junctions in the Vista+ User Profile folder) those permissions are not granted at the directory level (soi even administrators can't have those rights!)

Fixes #412.

08:06 Changeset [2549] by lowjoel
  • trunk/eraser/Eraser.Util/ExtensionMethods/PathUtil.cs
  • trunk/eraser/Eraser.Util/NativeMethods/Kernel.cs
  • trunk/eraser/Eraser.Util/VolumeInfo.cs

Forward-port from Eraser 6.0: We need to recursively dereference all reparse points before we call GetVolumeNameForVolumeMountPoint?. This prevents a situation where we we get an invalid parameter error from GetVolumeNameForVolumeMountPoint? when we hand it a reparse point but it is not a volume reparse point.

Fixes bug in https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684.

07:53 Changeset [2548] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/Strings.en.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.it.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.nl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.pl.resx
  • trunk/eraser/Eraser.DefaultPlugins/Strings.resx

New strings.

07:51 Changeset [2547] by lowjoel
  • branches/eraser6/6.0/Eraser.Util/NTApi.cs
  • branches/eraser6/6.0/Eraser.Util/VolumeInfo.cs

We need to recursively dereference all reparse points before we call GetVolumeNameForVolumeMountPoint?. This prevents a situation where we we get an invalid parameter error from GetVolumeNameForVolumeMountPoint? when we hand it a reparse point but it is not a volume reparse point.

Fixes bug in https://eraser.heidi.ie/forum/viewtopic.php?f=2&t=8684.

02:36 Changeset [2546] by lowjoel
  • trunk/eraser/Eraser.DefaultPlugins/ErasureTargets/FolderErasureTargetConfigurer.cs

If the user does not specify that he wants to delete the folder if it is empty, we should assume he wants to (this is a more reasonable default)

02:27 Changeset [2545] by lowjoel
  • trunk/eraser/Dependencies/CommonLibrary.XML
  • trunk/eraser/Dependencies/CommonLibrary.dll
  • trunk/eraser/Dependencies/CommonLibrary.pdb
  • trunk/eraser/Eraser/Program.cs

Experimental fix for allowing context menu erasures to require confirmation again.

02:10 Changeset [2544] by lowjoel
  • trunk/eraser/Eraser.Util/Shell.cs

Fixed a FileNotFound? exception when we are given a GUID we do not have registered in the Shell namespace.

02:09 Changeset [2543] by lowjoel
  • trunk/eraser/Eraser.Manager/DirectExecutor.cs
  • trunk/eraser/Eraser.Manager/Task.cs

Tasks were not being cleared from the task list upon successful completion because they were reset to Manually executed tasks before returning to the Executor. This scheduling ability should be dealt with in the Executor and not the Task. Therefore, the Task Completion event will still have the schedule of the initial configuration, and not after the schedule has been reset to Manual. This allows context menu tasks which completed successfully to be cleared automatically.

Fixes bug in https://eraser.heidi.ie/forum/viewtopic.php?f=36&p=25922#p25922.

01:55 Changeset [2542] by lowjoel
  • trunk/eraser/UpdateVersions.bat

Fixed syntax error with the batch script.

Note: See TracTimeline for information about the timeline view.