internal TC_Data_File(ProgramData thisProg, TrueCryptSWObj tcswobjpassed) { thisProginst = thisProg; tcSWobj = tcswobjpassed; if (Directory.Exists(tCryptDriveName)) { CloseTcFile(); //attempt a file close if (Directory.Exists(tCryptDriveName)) { // test again after trial close MessageBox.Show("The P Drive exists. Please close it and restart this program", thisProginst.mbCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(1); } } if (!Environment.GetEnvironmentVariable("HomeDrive").StartsWith(thisProginst.drvLetter, StringComparison.CurrentCultureIgnoreCase) | Environment.OSVersion.Version.Major < 6) {//traveler or xp tpdataPath = thisProginst.drvLetter + ":\\" + dataFileName; } else {//not traveler, not xp tpdataPath = Environment.GetEnvironmentVariable("Public") + "\\" + dataFileName; } //Find out if we have errors conditions // First see if migration registry key is set if (thisProginst.removable == false) { migration = (string)Microsoft.Win32.Registry.GetValue(regKeyName, "TFTAOld", ""); } else { migration = (string)Microsoft.Win32.Registry.GetValue(regKeyName, "TFTATravOld", ""); } if (migration == "") { if (File.Exists(tpdataPath)) { return; //non error path is return here error path below here } //ERROR PATH BELOW HERE #region Deal with Migration errors else { DialogResult mbResult = MessageBox.Show("The Tax-Aide TrueCypt data file does not exist, Create it?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (mbResult == DialogResult.OK) { StartTAUtility("format"); // go create the file Use Format argument } else { Environment.Exit(1); } } } // below this point have a registry entry when we should not have one means something went wrong in migration string migrationS = string.Empty; if (migration.Contains(",")) { // we have old P & old S migrationS = migration.Substring(migration.IndexOf(",") + 1); migration = migration.Remove(migration.IndexOf(",")); // gets the P string } if (File.Exists(migration)) {//We have reg entry plus old P if (File.Exists(tpdataPath)) { migrationFileActionForm migForm = new migrationFileActionForm(); if (thisProg.removable == true) {//Setup migration form for traveler DriveInfo drv = new DriveInfo(thisProginst.drvLetter); string drvName = thisProginst.drvLetter + " (" + drv.VolumeLabel + ") "; migForm.delInitialExplain.Text = "A TrueCrypt TPDATA file (the P drive) exists on the Traveler Drive\n" + drvName + "In addition an old Traveler TrueCrypt file exists \non the Hard Drive.This looks like a failed migration of user data from \nan old Traveler based Truecrypt file to a new Traveler TrueCrypt file."; migForm.delNewPStartTAutil.Text = "Delete the current traveler TPDATA file, Start the Tax-Aide Utility \nto create a new Traveler TPDATA file and complete the migration \nthat failed. Effectively start the whole process over."; migForm.delOldTCFiles.Text = "Delete the old Traveler TrueCrypt file, Assumes data migration is \ndone correctly, and the old file is not needed. Warning - it will be \npermanently deleted. Then open the traveler file as the P drive."; migForm.radBtGrpBox.Text += " for " + drvName; } DialogResult mbResult = migForm.ShowDialog(); if (mbResult == DialogResult.OK) { return; // have to simply open p drive ignore state of old stuff } else if (mbResult == DialogResult.Retry) {//Delete new tp File and start over File.Delete(tpdataPath); StartTAUtility(""); } else if (mbResult == DialogResult.Yes) {// delete old TC file(s) and open P drive File.Delete(migration); if (migrationS != string.Empty) { File.Delete(migrationS); } DeleteMigrationRegEntries(); return; } } else {// have registry entry and old tpdataa no new tpdata DialogResult mbResult = MessageBox.Show("An old TrueCrypt TPDATA file exists, with a migration flag set.\rNo new TrueCrypt TPDATA file exists, the Tax-Aide utility will be started to create a new data file, migration will happen automatically?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (mbResult == DialogResult.OK) { StartTAUtility(""); } else { Environment.Exit(1); } } } else {// reg entry no old file if (File.Exists(tpdataPath)) { DialogResult mbResult = MessageBox.Show("There is a migration data flag set, but no old TPDATA file, \r\nDelete the Migration Flag?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); //Delete reg entries and return on OK, exit on cancel if (mbResult == DialogResult.OK) { DeleteMigrationRegEntries(); return; } else { Environment.Exit(1); } } else { DialogResult mbResult = MessageBox.Show("There is a migration data flag set, but no old TPDATA file, \r\nDelete the Migration Flag?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (mbResult == DialogResult.OK) { DeleteMigrationRegEntries(); StartTAUtility(""); } else { Environment.Exit(1); } } } #endregion }
internal TC_Data_File(ProgramData thisProg,TrueCryptSWObj tcswobjpassed) { thisProginst = thisProg; tcSWobj = tcswobjpassed; if (Directory.Exists(tCryptDriveName)) { CloseTcFile(); //attempt a file close if (Directory.Exists(tCryptDriveName)) {// test again after trial close MessageBox.Show("The P Drive exists. Please close it and restart this program", thisProginst.mbCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(1); } } if (!Environment.GetEnvironmentVariable("HomeDrive").StartsWith(thisProginst.drvLetter, StringComparison.CurrentCultureIgnoreCase) | Environment.OSVersion.Version.Major < 6) {//traveler or xp tpdataPath = thisProginst.drvLetter + ":\\" + dataFileName; } else {//not traveler, not xp tpdataPath = Environment.GetEnvironmentVariable("Public") + "\\" + dataFileName; } //Find out if we have errors conditions // First see if migration registry key is set if (thisProginst.removable == false) { migration = (string)Microsoft.Win32.Registry.GetValue(regKeyName, "TFTAOld", ""); } else { migration = (string)Microsoft.Win32.Registry.GetValue(regKeyName, "TFTATravOld", ""); } if (migration == "") { if (File.Exists(tpdataPath)) { return; //non error path is return here error path below here } //ERROR PATH BELOW HERE #region Deal with Migration errors else { DialogResult mbResult = MessageBox.Show("The Tax-Aide TrueCypt data file does not exist, Create it?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (mbResult == DialogResult.OK) { StartTAUtility("format"); // go create the file Use Format argument } else { Environment.Exit(1); } } } // below this point have a registry entry when we should not have one means something went wrong in migration string migrationS = string.Empty; if (migration.Contains(",")) {// we have old P & old S migrationS = migration.Substring(migration.IndexOf(",") + 1); migration = migration.Remove(migration.IndexOf(",")); // gets the P string } if (File.Exists(migration)) {//We have reg entry plus old P if (File.Exists(tpdataPath)) { migrationFileActionForm migForm = new migrationFileActionForm(); if (thisProg.removable == true) {//Setup migration form for traveler DriveInfo drv = new DriveInfo(thisProginst.drvLetter); string drvName = thisProginst.drvLetter + " (" + drv.VolumeLabel + ") "; migForm.delInitialExplain.Text = "A TrueCrypt TPDATA file (the P drive) exists on the Traveler Drive\n" + drvName + "In addition an old Traveler TrueCrypt file exists \non the Hard Drive.This looks like a failed migration of user data from \nan old Traveler based Truecrypt file to a new Traveler TrueCrypt file."; migForm.delNewPStartTAutil.Text = "Delete the current traveler TPDATA file, Start the Tax-Aide Utility \nto create a new Traveler TPDATA file and complete the migration \nthat failed. Effectively start the whole process over."; migForm.delOldTCFiles.Text = "Delete the old Traveler TrueCrypt file, Assumes data migration is \ndone correctly, and the old file is not needed. Warning - it will be \npermanently deleted. Then open the traveler file as the P drive."; migForm.radBtGrpBox.Text += " for " + drvName; } DialogResult mbResult = migForm.ShowDialog(); if (mbResult == DialogResult.OK) return; // have to simply open p drive ignore state of old stuff else if (mbResult == DialogResult.Retry) {//Delete new tp File and start over File.Delete(tpdataPath); StartTAUtility(""); } else if (mbResult == DialogResult.Yes) {// delete old TC file(s) and open P drive File.Delete(migration); if (migrationS != string.Empty) File.Delete(migrationS); DeleteMigrationRegEntries(); return; } } else {// have registry entry and old tpdataa no new tpdata DialogResult mbResult = MessageBox.Show("An old TrueCrypt TPDATA file exists, with a migration flag set.\rNo new TrueCrypt TPDATA file exists, the Tax-Aide utility will be started to create a new data file, migration will happen automatically?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (mbResult == DialogResult.OK) { StartTAUtility(""); } else { Environment.Exit(1); } } } else {// reg entry no old file if (File.Exists(tpdataPath)) { DialogResult mbResult = MessageBox.Show("There is a migration data flag set, but no old TPDATA file, \r\nDelete the Migration Flag?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); //Delete reg entries and return on OK, exit on cancel if (mbResult == DialogResult.OK) { DeleteMigrationRegEntries(); return; } else Environment.Exit(1); } else { DialogResult mbResult = MessageBox.Show("There is a migration data flag set, but no old TPDATA file, \r\nDelete the Migration Flag?", thisProginst.mbCaption, MessageBoxButtons.OKCancel, MessageBoxIcon.Error); if (mbResult == DialogResult.OK) { DeleteMigrationRegEntries(); StartTAUtility(""); } else Environment.Exit(1); } } #endregion }