VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Main
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main')
-rwxr-xr-xsrc/Main/GraphicUserInterface.cpp37
-rw-r--r--src/Main/TextUserInterface.cpp35
2 files changed, 70 insertions, 2 deletions
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index ba283af4..99b2caad 100755
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -208,7 +208,42 @@ namespace VeraCrypt
}
catch (PasswordException &e)
{
- ShowWarning (e);
+ bool bFailed = true;
+ if (!options->UseBackupHeaders)
+ {
+ try
+ {
+ OpenVolumeThreadRoutine routine2(
+ options->Path,
+ options->PreserveTimestamps,
+ options->Password,
+ options->Pim,
+ options->Kdf,
+ false,
+ options->Keyfiles,
+ options->Protection,
+ options->ProtectionPassword,
+ options->ProtectionPim,
+ options->ProtectionKdf,
+ options->ProtectionKeyfiles,
+ true,
+ volumeType,
+ true
+ );
+
+ ExecuteWaitThreadRoutine (parent, &routine2);
+ volume = routine2.m_pVolume;
+ bFailed = false;
+ }
+ catch (...)
+ {
+ }
+ }
+
+ if (bFailed)
+ ShowWarning (e);
+ else
+ ShowWarning ("HEADER_DAMAGED_AUTO_USED_HEADER_BAK");
}
}
diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp
index 8cd010b3..61b8b8a6 100644
--- a/src/Main/TextUserInterface.cpp
+++ b/src/Main/TextUserInterface.cpp
@@ -317,7 +317,40 @@ namespace VeraCrypt
}
catch (PasswordException &e)
{
- ShowInfo (e);
+ bool bFailed = true;
+ if (!options->UseBackupHeaders)
+ {
+ try
+ {
+ volume = Core->OpenVolume (
+ options->Path,
+ options->PreserveTimestamps,
+ options->Password,
+ options->Pim,
+ kdf,
+ false,
+ options->Keyfiles,
+ options->Protection,
+ options->ProtectionPassword,
+ options->ProtectionPim,
+ options->ProtectionKdf,
+ options->ProtectionKeyfiles,
+ true,
+ volumeType,
+ true
+ );
+
+ bFailed = false;
+ }
+ catch (...)
+ {
+ }
+ }
+
+ if (bFailed)
+ ShowInfo (e);
+ else
+ ShowInfo ("HEADER_DAMAGED_AUTO_USED_HEADER_BAK");
}
}