VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Setup/ComSetup.rgs
blob: b8201c10e30e6587cef982a555895c4591484fa1 (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.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { col
HKCR
{
	ForceRemove VeraCrypt.1 = s 'VeraCrypt class'
	{
		CLSID = s '{FE8B3B95-C80C-41f7-830F-FBA271C26F7E}'
	}

	ForceRemove VeraCrypt = s 'VeraCrypt class'
	{
		CLSID = s '{FE8B3B95-C80C-41f7-830F-FBA271C26F7E}'
		CurVer = s 'VeraCrypt.1'
	}

	NoRemove CLSID
	{
		ForceRemove {FE8B3B95-C80C-41f7-830F-FBA271C26F7E} = s 'VeraCrypt class'
		{
			ProgID = s 'VeraCrypt.1'
			VersionIndependentProgID = s 'VeraCrypt'
			LocalServer32 = s '"%MAIN_MODULE%"'

			TypeLib = s '{9ACF6176-5FC4-4690-A025-B3306A50EB6A}'

			Elevation
            {
				val Enabled = d 1
				val IconReference = s '@%MAIN_MODULE%,-501'
            }

			val AppId = s '{FE8B3B95-C80C-41f7-830F-FBA271C26F7E}'
            val LocalizedString = s '@%MAIN_MODULE%,-110'
		}
	}

	NoRemove AppId
	{
		ForceRemove {FE8B3B95-C80C-41f7-830F-FBA271C26F7E} = s 'VeraCrypt class'
		{
			val AccessPermission = b 010004803000000040000000000000001400000002001c000100000000001400070000000101000000000005040000000102000000000005200000002002000001020000000000052000000020020000
		}

		ForceRemove VeraCrypt.exe
		{
			val AppId = s '{FE8B3B95-C80C-41f7-830F-FBA271C26F7E}'
		}
	}

	ForceRemove VeraCryptFormat.1 = s 'VeraCryptFormat class'
	{
		CLSID = s '{A96D3797-9F31-49f4-A0CE-9657392CF789}'
	}

	ForceRemove VeraCryptFormat = s 'VeraCryptFormat class'
	{
		CLSID = s '{A96D3797-9F31-49f4-A0CE-9657392CF789}'
		CurVer = s 'VeraCryptFormat.1'
	}

	NoRemove CLSID
	{
		ForceRemove {A96D3797-9F31-49f4-A0CE-9657392CF789} = s 'VeraCryptFormat class'
		{
			ProgID = s 'VeraCryptFormat.1'
			VersionIndependentProgID = s 'VeraCryptFormat'
			LocalServer32 = s '"%FORMAT_MODULE%"'

			TypeLib = s '{56327DDA-F1A7-4e13-B128-520D129BDEF6}'

			Elevation
            {
				val Enabled = d 1
				val IconReference = s '@%FORMAT_MODULE%,-501'
            }

			val AppId = s '{A96D3797-9F31-49f4-A0CE-9657392CF789}'
            val LocalizedString = s '@%FORMAT_MODULE%,-112'
		}
	}

	NoRemove AppId
	{
		ForceRemove {A96D3797-9F31-49f4-A0CE-9657392CF789} = s 'VeraCryptFormat class'
		{
			val AccessPermission = b 010004803000000040000000000000001400000002001c000100000000001400070000000101000000000005040000000102000000000005200000002002000001020000000000052000000020020000
		}

		ForceRemove 'VeraCrypt Format.exe'
		{
			val AppId = s '{A96D3797-9F31-49f4-A0CE-9657392CF789}'
		}
	}
}
">newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, shared_ptr <Pkcs5Kdf> newPkcs5Kdf = shared_ptr <Pkcs5Kdf> (), int wipeCount = PRAND_HEADER_WIPE_PASSES) const; virtual void ChangePassword (shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr <Pkcs5Kdf> kdf, bool truecryptMode, shared_ptr <KeyfileList> keyfiles, shared_ptr <VolumePassword> newPassword, int newPim, shared_ptr <KeyfileList> newKeyfiles, shared_ptr <Pkcs5Kdf> newPkcs5Kdf = shared_ptr <Pkcs5Kdf> (), int wipeCount = PRAND_HEADER_WIPE_PASSES) const; virtual void CheckFilesystem (shared_ptr <VolumeInfo> mountedVolume, bool repair = false) const = 0; virtual void CoalesceSlotNumberAndMountPoint (MountOptions &options) const; virtual void CreateKeyfile (const FilePath &keyfilePath) const; virtual void DismountFilesystem (const DirectoryPath &mountPoint, bool force) const = 0; virtual shared_ptr <VolumeInfo> DismountVolume (shared_ptr <VolumeInfo> mountedVolume, bool ignoreOpenFiles = false, bool syncVolumeInfo = false) = 0; virtual bool FilesystemSupportsLargeFiles (const FilePath &filePath) const = 0; virtual DirectoryPath GetDeviceMountPoint (const DevicePath &devicePath) const = 0; virtual uint32 GetDeviceSectorSize (const DevicePath &devicePath) const = 0; virtual uint64 GetDeviceSize (const DevicePath &devicePath) const = 0; virtual VolumeSlotNumber GetFirstFreeSlotNumber (VolumeSlotNumber startFrom = 0) const; virtual VolumeSlotNumber GetFirstSlotNumber () const { return 1; } virtual VolumeSlotNumber GetLastSlotNumber () const { return 64; } virtual HostDeviceList GetHostDevices (bool pathListOnly = false) const = 0; virtual FilePath GetApplicationExecutablePath () const { return ApplicationExecutablePath; } virtual uint64 GetMaxHiddenVolumeSize (shared_ptr <Volume> outerVolume) const; virtual int GetOSMajorVersion () const = 0; virtual int GetOSMinorVersion () const = 0; virtual shared_ptr <VolumeInfo> GetMountedVolume (const VolumePath &volumePath) const; virtual shared_ptr <VolumeInfo> GetMountedVolume (VolumeSlotNumber slot) const; virtual VolumeInfoList GetMountedVolumes (const VolumePath &volumePath = VolumePath()) const = 0; virtual bool HasAdminPrivileges () const = 0; virtual void Init () { } virtual bool IsDeviceChangeInProgress () const { return DeviceChangeInProgress; } virtual bool IsDevicePresent (const DevicePath &device) const = 0; virtual bool IsInPortableMode () const = 0; virtual bool IsMountPointAvailable (const DirectoryPath &mountPoint) const = 0; virtual bool IsOSVersion (int major, int minor) const = 0; virtual bool IsOSVersionLower (int major, int minor) const = 0; virtual bool IsPasswordCacheEmpty () const = 0; virtual bool IsSlotNumberAvailable (VolumeSlotNumber slotNumber) const; virtual bool IsSlotNumberValid (VolumeSlotNumber slotNumber) const { return slotNumber >= GetFirstSlotNumber() && slotNumber <= GetLastSlotNumber(); } virtual bool IsVolumeMounted (const VolumePath &volumePath) const; virtual VolumeSlotNumber MountPointToSlotNumber (const DirectoryPath &mountPoint) const = 0; virtual shared_ptr <VolumeInfo> MountVolume (MountOptions &options) = 0; virtual shared_ptr <Volume> OpenVolume (shared_ptr <VolumePath> volumePath, bool preserveTimestamps, shared_ptr <VolumePassword> password, int pim, shared_ptr<Pkcs5Kdf> Kdf, bool truecryptMode, shared_ptr <KeyfileList> keyfiles, VolumeProtection::Enum protection = VolumeProtection::None, shared_ptr <VolumePassword> protectionPassword = shared_ptr <VolumePassword> (), int protectionPim = 0, shared_ptr<Pkcs5Kdf> protectionKdf = shared_ptr<Pkcs5Kdf> (), shared_ptr <KeyfileList> protectionKeyfiles = shared_ptr <KeyfileList> (), bool sharedAccessAllowed = false, VolumeType::Enum volumeType = VolumeType::Unknown, bool useBackupHeaders = false, bool partitionInSystemEncryptionScope = false) const; virtual void RandomizeEncryptionAlgorithmKey (shared_ptr <EncryptionAlgorithm> encryptionAlgorithm) const; virtual void ReEncryptVolumeHeaderWithNewSalt (const BufferPtr &newHeaderBuffer, shared_ptr <VolumeHeader> header, shared_ptr <VolumePassword> password, int pim, shared_ptr <KeyfileList> keyfiles) const; virtual void SetAdminPasswordCallback (shared_ptr <GetStringFunctor> functor) { } virtual void SetApplicationExecutablePath (const FilePath &path) { ApplicationExecutablePath = path; } virtual void SetFileOwner (const FilesystemPath &path, const UserId &owner) const = 0; virtual DirectoryPath SlotNumberToMountPoint (VolumeSlotNumber slotNumber) const = 0; virtual void WipePasswordCache () const = 0; Event VolumeDismountedEvent; Event VolumeMountedEvent; Event WarningEvent; protected: CoreBase (); bool DeviceChangeInProgress; FilePath ApplicationExecutablePath; private: CoreBase (const CoreBase &); CoreBase &operator= (const CoreBase &); }; struct VolumeEventArgs : EventArgs { VolumeEventArgs (shared_ptr <VolumeInfo> volume) : mVolume (volume) { } shared_ptr <VolumeInfo> mVolume; }; } #endif // TC_HEADER_Core_CoreBase