xref: /aosp_15_r20/external/lzma/CPP/7zip/Archive/Zip/ZipCompressionMode.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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