1*f6dc9357SAndroid Build Coastguard Worker // CompressionMode.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_ZIP_COMPRESSION_MODE_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_ZIP_COMPRESSION_MODE_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/MyString.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker #ifndef Z7_ST 9*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/System.h" 10*f6dc9357SAndroid Build Coastguard Worker #endif 11*f6dc9357SAndroid Build Coastguard Worker 12*f6dc9357SAndroid Build Coastguard Worker #include "../Common/HandlerOut.h" 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker namespace NArchive { 15*f6dc9357SAndroid Build Coastguard Worker namespace NZip { 16*f6dc9357SAndroid Build Coastguard Worker 17*f6dc9357SAndroid Build Coastguard Worker const CMethodId kMethodId_ZipBase = 0x040100; 18*f6dc9357SAndroid Build Coastguard Worker const CMethodId kMethodId_BZip2 = 0x040202; 19*f6dc9357SAndroid Build Coastguard Worker 20*f6dc9357SAndroid Build Coastguard Worker struct CBaseProps: public CMultiMethodProps 21*f6dc9357SAndroid Build Coastguard Worker { 22*f6dc9357SAndroid Build Coastguard Worker bool IsAesMode; 23*f6dc9357SAndroid Build Coastguard Worker Byte AesKeyMode; 24*f6dc9357SAndroid Build Coastguard Worker InitCBaseProps25*f6dc9357SAndroid Build Coastguard Worker void Init() 26*f6dc9357SAndroid Build Coastguard Worker { 27*f6dc9357SAndroid Build Coastguard Worker CMultiMethodProps::Init(); 28*f6dc9357SAndroid Build Coastguard Worker 29*f6dc9357SAndroid Build Coastguard Worker IsAesMode = false; 30*f6dc9357SAndroid Build Coastguard Worker AesKeyMode = 3; 31*f6dc9357SAndroid Build Coastguard Worker } 32*f6dc9357SAndroid Build Coastguard Worker }; 33*f6dc9357SAndroid Build Coastguard Worker 34*f6dc9357SAndroid Build Coastguard Worker struct CCompressionMethodMode: public CBaseProps 35*f6dc9357SAndroid Build Coastguard Worker { 36*f6dc9357SAndroid Build Coastguard Worker CRecordVector<Byte> MethodSequence; 37*f6dc9357SAndroid Build Coastguard Worker AString Password; // _Wipe 38*f6dc9357SAndroid Build Coastguard Worker bool Password_Defined; 39*f6dc9357SAndroid Build Coastguard Worker bool Force_SeqOutMode; 40*f6dc9357SAndroid Build Coastguard Worker bool DataSizeReduce_Defined; 41*f6dc9357SAndroid Build Coastguard Worker UInt64 DataSizeReduce; 42*f6dc9357SAndroid Build Coastguard Worker IsRealAesModeCCompressionMethodMode43*f6dc9357SAndroid Build Coastguard Worker bool IsRealAesMode() const { return Password_Defined && IsAesMode; } 44*f6dc9357SAndroid Build Coastguard Worker CCompressionMethodModeCCompressionMethodMode45*f6dc9357SAndroid Build Coastguard Worker CCompressionMethodMode() 46*f6dc9357SAndroid Build Coastguard Worker { 47*f6dc9357SAndroid Build Coastguard Worker Password_Defined = false; 48*f6dc9357SAndroid Build Coastguard Worker Force_SeqOutMode = false; 49*f6dc9357SAndroid Build Coastguard Worker DataSizeReduce_Defined = false; 50*f6dc9357SAndroid Build Coastguard Worker DataSizeReduce = 0; 51*f6dc9357SAndroid Build Coastguard Worker } 52*f6dc9357SAndroid Build Coastguard Worker 53*f6dc9357SAndroid Build Coastguard Worker #ifdef Z7_CPP_IS_SUPPORTED_default 54*f6dc9357SAndroid Build Coastguard Worker CCompressionMethodMode(const CCompressionMethodMode &) = default; 55*f6dc9357SAndroid Build Coastguard Worker CCompressionMethodMode& operator =(const CCompressionMethodMode &) = default; 56*f6dc9357SAndroid Build Coastguard Worker #endif ~CCompressionMethodModeCCompressionMethodMode57*f6dc9357SAndroid Build Coastguard Worker ~CCompressionMethodMode() { Password.Wipe_and_Empty(); } 58*f6dc9357SAndroid Build Coastguard Worker }; 59*f6dc9357SAndroid Build Coastguard Worker 60*f6dc9357SAndroid Build Coastguard Worker }} 61*f6dc9357SAndroid Build Coastguard Worker 62*f6dc9357SAndroid Build Coastguard Worker #endif 63