1 /* 2 Derived from source code of TrueCrypt 7.1a, which is 3 Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed 4 by the TrueCrypt License 3.0. 5 6 Modifications and additions to the original source code (contained in this file) 7 and all other portions of this file are Copyright (c) 2013-2017 IDRIX 8 and are governed by the Apache License 2.0 the full text of which is 9 contained in the file License.txt included in VeraCrypt binary and source 10 code distribution packages. 11 */ 12 13 #ifndef TC_HEADER_Volume_VolumeInfo 14 #define TC_HEADER_Volume_VolumeInfo 15 16 #include "Platform/Platform.h" 17 #include "Platform/Serializable.h" 18 #include "Volume/Volume.h" 19 #include "Volume/VolumeSlot.h" 20 21 namespace VeraCrypt 22 { 23 class VolumeInfo; 24 typedef list < shared_ptr <VolumeInfo> > VolumeInfoList; 25 26 class VolumeInfo : public Serializable 27 { 28 public: 29 VolumeInfo () { } 30 virtual ~VolumeInfo () { } 31 32 TC_SERIALIZABLE (VolumeInfo); 33 static bool FirstVolumeMountedAfterSecond (shared_ptr <VolumeInfo> first, shared_ptr <VolumeInfo> second); 34 void Set (const Volume &volume); 35 36 // Modifying this structure can introduce incompatibility with previous versions 37 DirectoryPath AuxMountPoint; 38 uint32 EncryptionAlgorithmBlockSize; 39 uint32 EncryptionAlgorithmKeySize; 40 uint32 EncryptionAlgorithmMinBlockSize; 41 wstring EncryptionAlgorithmName; 42 wstring EncryptionModeName; 43 VolumeTime HeaderCreationTime; 44 bool HiddenVolumeProtectionTriggered; 45 DevicePath LoopDevice; 46 uint32 MinRequiredProgramVersion; 47 DirectoryPath MountPoint; 48 VolumePath Path; 49 uint32 Pkcs5IterationCount; 50 wstring Pkcs5PrfName; 51 uint32 ProgramVersion; 52 VolumeProtection::Enum Protection; 53 uint64 SerialInstanceNumber; 54 uint64 Size; 55 VolumeSlotNumber SlotNumber; 56 bool SystemEncryption; 57 uint64 TopWriteOffset; 58 uint64 TotalDataRead; 59 uint64 TotalDataWritten; 60 VolumeType::Enum Type; 61 DevicePath VirtualDevice; 62 VolumeTime VolumeCreationTime; 63 bool TrueCryptMode; 64 int Pim; 65 66 private: 67 VolumeInfo (const VolumeInfo &); 68 VolumeInfo &operator= (const VolumeInfo &); 69 }; 70 } 71 72 #endif // TC_HEADER_Volume_VolumeInfo