diff options
Diffstat (limited to 'src/Main')
-rwxr-xr-x | src/Main/GraphicUserInterface.cpp | 37 | ||||
-rw-r--r-- | src/Main/TextUserInterface.cpp | 35 |
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"); } } |