diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2014-12-28 19:04:05 +0100 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2014-12-28 23:27:56 +0100 |
commit | 25c3d15ed7edcb8483dc3de7a55cf4579f6504c4 (patch) | |
tree | 6705c8c3be5ca44f6a7ab583c4cd802e9c6fc944 /src/Common/Password.c | |
parent | ec9ff0fc1d96d9af399bf2aab25965734bd984e7 (diff) | |
download | VeraCrypt-25c3d15ed7edcb8483dc3de7a55cf4579f6504c4.tar.gz VeraCrypt-25c3d15ed7edcb8483dc3de7a55cf4579f6504c4.zip |
Windows: support loading TrueCrypt volumes. Implement converting TrueCrypt volumes to VeraCrypt using the change password functionality.
Diffstat (limited to 'src/Common/Password.c')
-rw-r--r-- | src/Common/Password.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Common/Password.c b/src/Common/Password.c index db7ad7f7..f8fd3c1c 100644 --- a/src/Common/Password.c +++ b/src/Common/Password.c @@ -119,7 +119,7 @@ BOOL CheckPasswordLength (HWND hwndDlg, HWND hwndItem) return TRUE;
}
-int ChangePwd (const char *lpszVolume, Password *oldPassword, int old_pkcs5, Password *newPassword, int pkcs5, int wipePassCount, HWND hwndDlg)
+int ChangePwd (const char *lpszVolume, Password *oldPassword, int old_pkcs5, BOOL truecryptMode, Password *newPassword, int pkcs5, int wipePassCount, HWND hwndDlg)
{
int nDosLinkCreated = 1, nStatus = ERR_OS_ERROR;
char szDiskFile[TC_MAX_PATH], szCFDevice[TC_MAX_PATH];
@@ -143,7 +143,7 @@ int ChangePwd (const char *lpszVolume, Password *oldPassword, int old_pkcs5, Pas if (oldPassword->Length == 0 || newPassword->Length == 0) return -1;
- if (wipePassCount <= 0)
+ if ((wipePassCount <= 0) || (truecryptMode && (old_pkcs5 == SHA256)))
{
nStatus = ERR_PARAMETER_INCORRECT;
handleError (hwndDlg, nStatus);
@@ -281,7 +281,7 @@ int ChangePwd (const char *lpszVolume, Password *oldPassword, int old_pkcs5, Pas /* Try to decrypt the header */
- nStatus = ReadVolumeHeader (FALSE, buffer, oldPassword, old_pkcs5, &cryptoInfo, NULL);
+ nStatus = ReadVolumeHeader (FALSE, buffer, oldPassword, old_pkcs5, truecryptMode, &cryptoInfo, NULL);
if (nStatus == ERR_CIPHER_INIT_WEAK_KEY)
nStatus = 0; // We can ignore this error here
@@ -353,7 +353,7 @@ int ChangePwd (const char *lpszVolume, Password *oldPassword, int old_pkcs5, Pas (volumeType == TC_VOLUME_TYPE_HIDDEN) ? cryptoInfo->hiddenVolumeSize : 0,
cryptoInfo->EncryptedAreaStart.Value,
cryptoInfo->EncryptedAreaLength.Value,
- cryptoInfo->RequiredProgramVersion,
+ truecryptMode? 0 : cryptoInfo->RequiredProgramVersion,
cryptoInfo->HeaderFlags,
cryptoInfo->SectorSize,
wipePass < wipePassCount - 1);
|