blob: 795d77633a395b7031b347dc17104007dd3d4a75 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
/*
Copyright (c) 2013-2017 IDRIX. All rights reserved.
Governed by the Apache License 2.0 the full text of which is
contained in the file License.txt included in VeraCrypt binary and source
code distribution packages.
*/
#include "System.h"
#include "Volume/EncryptionModeXTS.h"
#include "Main/GraphicUserInterface.h"
#include "Common/SecurityToken.h"
#include "WaitDialog.h"
namespace VeraCrypt
{
DEFINE_EVENT_TYPE(wxEVT_COMMAND_WAITDIALOGTHREAD_COMPLETED)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_WAITDIALOG_ADMIN_PASSWORD)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_WAITDIALOG_PIN)
DEFINE_EVENT_TYPE(wxEVT_COMMAND_WAITDIALOG_SHOW_MSG)
wxThread::ExitCode WaitThread::Entry()
{
m_pRoutine->Execute();
wxQueueEvent (m_pHandler, new wxCommandEvent( wxEVT_COMMAND_WAITDIALOGTHREAD_COMPLETED,0));
return (wxThread::ExitCode)0; // success
}
void WaitDialog::ThrowException(Exception* ex)
{
#define VC_CONVERT_EXCEPTION(NAME) if (dynamic_cast<NAME*> (ex)) throw (NAME&) *ex;
VC_CONVERT_EXCEPTION (PasswordIncorrect);
VC_CONVERT_EXCEPTION (PasswordKeyfilesIncorrect);
VC_CONVERT_EXCEPTION (PasswordOrKeyboardLayoutIncorrect);
VC_CONVERT_EXCEPTION (PasswordOrMountOptionsIncorrect);
VC_CONVERT_EXCEPTION (ProtectionPasswordIncorrect);
VC_CONVERT_EXCEPTION (ProtectionPasswordKeyfilesIncorrect);
VC_CONVERT_EXCEPTION (PasswordEmpty);
VC_CONVERT_EXCEPTION (PasswordTooLong);
VC_CONVERT_EXCEPTION (PasswordUTF8TooLong);
VC_CONVERT_EXCEPTION (PasswordLegacyUTF8TooLong);
VC_CONVERT_EXCEPTION (PasswordUTF8Invalid);
VC_CONVERT_EXCEPTION (UnportablePassword);
VC_CONVERT_EXCEPTION (ElevationFailed);
VC_CONVERT_EXCEPTION (RootDeviceUnavailable);
VC_CONVERT_EXCEPTION (DriveLetterUnavailable);
VC_CONVERT_EXCEPTION (DriverError);
VC_CONVERT_EXCEPTION (DeviceSectorSizeMismatch);
VC_CONVERT_EXCEPTION (EncryptedSystemRequired);
VC_CONVERT_EXCEPTION (HigherFuseVersionRequired);
VC_CONVERT_EXCEPTION (KernelCryptoServiceTestFailed);
VC_CONVERT_EXCEPTION (LoopDeviceSetupFailed);
VC_CONVERT_EXCEPTION (MountPointRequired);
VC_CONVERT_EXCEPTION (MountPointUnavailable);
VC_CONVERT_EXCEPTION (NoDriveLetterAvailable);
VC_CONVERT_EXCEPTION (TemporaryDirectoryFailure);
VC_CONVERT_EXCEPTION (UnsupportedSectorSizeHiddenVolumeProtection);
VC_CONVERT_EXCEPTION (UnsupportedSectorSizeNoKernelCrypto);
VC_CONVERT_EXCEPTION (VolumeAlreadyMounted);
VC_CONVERT_EXCEPTION (VolumeSlotUnavailable);
VC_CONVERT_EXCEPTION (UserInterfaceException);
VC_CONVERT_EXCEPTION (MissingArgument);
VC_CONVERT_EXCEPTION (NoItemSelected);
VC_CONVERT_EXCEPTION (StringFormatterException);
VC_CONVERT_EXCEPTION (ExecutedProcessFailed);
VC_CONVERT_EXCEPTION (AlreadyInitialized);
VC_CONVERT_EXCEPTION (AssertionFailed);
VC_CONVERT_EXCEPTION (ExternalException);
VC_CONVERT_EXCEPTION (InsufficientData);
VC_CONVERT_EXCEPTION (NotApplicable);
VC_CONVERT_EXCEPTION (NotImplemented);
VC_CONVERT_EXCEPTION (NotInitialized);
VC_CONVERT_EXCEPTION (ParameterIncorrect);
VC_CONVERT_EXCEPTION (ParameterTooLarge);
VC_CONVERT_EXCEPTION (PartitionDeviceRequired);
VC_CONVERT_EXCEPTION (StringConversionFailed);
VC_CONVERT_EXCEPTION (TerminalNotFound);
VC_CONVERT_EXCEPTION (TestFailed);
VC_CONVERT_EXCEPTION (TimeOut);
VC_CONVERT_EXCEPTION (UnknownException);
VC_CONVERT_EXCEPTION (UserAbort)
VC_CONVERT_EXCEPTION (CipherInitError);
VC_CONVERT_EXCEPTION (WeakKeyDetected);
VC_CONVERT_EXCEPTION (HigherVersionRequired);
VC_CONVERT_EXCEPTION (KeyfilePathEmpty);
VC_CONVERT_EXCEPTION (MissingVolumeData);
VC_CONVERT_EXCEPTION (MountedVolumeInUse);
VC_CONVERT_EXCEPTION (UnsupportedSectorSize);
VC_CONVERT_EXCEPTION (VolumeEncryptionNotCompleted);
VC_CONVERT_EXCEPTION (VolumeHostInUse);
VC_CONVERT_EXCEPTION (VolumeProtected);
VC_CONVERT_EXCEPTION (VolumeReadOnly);
VC_CONVERT_EXCEPTION (Pkcs11Exception);
VC_CONVERT_EXCEPTION (InvalidSecurityTokenKeyfilePath);
VC_CONVERT_EXCEPTION (SecurityTokenLibraryNotInitialized);
VC_CONVERT_EXCEPTION (SecurityTokenKeyfileAlreadyExists);
VC_CONVERT_EXCEPTION (SecurityTokenKeyfileNotFound);
VC_CONVERT_EXCEPTION (UnsupportedAlgoInTrueCryptMode);
VC_CONVERT_EXCEPTION (UnsupportedTrueCryptFormat);
VC_CONVERT_EXCEPTION (SystemException);
VC_CONVERT_EXCEPTION (CipherException);
VC_CONVERT_EXCEPTION (VolumeException);
VC_CONVERT_EXCEPTION (PasswordException);
throw *ex;
}
}
|