Set representative license: LGPL-2.1
[platform/upstream/7zip.git] / DOC / Methods.txt
1 7-Zip method IDs (9.18)\r
2 -----------------------\r
3 \r
4 Each compression or crypto method in 7z has unique binary value (ID).\r
5 The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes).\r
6 \r
7 If you want to add some new ID, you have two ways:\r
8 1) Write request for allocating IDs to 7-zip developers.\r
9 2) Generate 8-bytes ID:\r
10 \r
11     3F ZZ ZZ ZZ ZZ ZZ MM MM \r
12 \r
13     3F              - Prefix for random IDs (1 byte)\r
14     ZZ ZZ ZZ ZZ ZZ  - Developer ID (5 bytes). Use real random bytes. \r
15                       \r
16     MM MM           - Method ID (2 bytes)\r
17 \r
18     You can notify 7-Zip developers about your Developer ID / Method ID.\r
19 \r
20     Note: Use new ID only if old codec can not decode data encoded with new version.\r
21 \r
22 \r
23 List of defined IDs\r
24 -------------------\r
25       \r
26 00 - Copy\r
27 \r
28 03 - Delta\r
29 04 - x86 (BCJ)\r
30 05 - PPC (Big Endian)\r
31 06 - IA64\r
32 07 - ARM (little endian)\r
33 08 - ARM Thumb (little endian)\r
34 09 - SPARC\r
35 21 - LZMA2\r
36           \r
37 02.. - Common\r
38    03 Swap\r
39       - 2 Swap2\r
40       - 4 Swap4\r
41 \r
42 03.. - 7z\r
43    01 - LZMA\r
44       01 - Version\r
45   \r
46    03 - Branch\r
47       01 - x86\r
48          03  - BCJ\r
49          1B  - BCJ2\r
50       02 - PPC\r
51          05 - PPC (Big Endian)\r
52       03 - Alpha\r
53          01 - Alpha\r
54       04 - IA64\r
55          01 - IA64\r
56       05 - ARM\r
57          01 - ARM\r
58       06 - M68\r
59          05 - M68 (Big Endian)\r
60       07 - ARM Thumb\r
61          01 - ARMT\r
62       08 - SPARC\r
63          05 - SPARC\r
64 \r
65    04 - PPMD\r
66       01 - Version\r
67 \r
68    7F -\r
69       01 - experimental methods.\r
70 \r
71 \r
72 04.. - Misc\r
73    00 - Reserved\r
74    01 - Zip\r
75       00 - Copy (not used). Use {00} instead\r
76       01 - Shrink\r
77       06 - Implode\r
78       08 - Deflate\r
79       09 - Deflate64\r
80       10 - Imploding\r
81       12 - BZip2 (not used). Use {04 02 02} instead\r
82       14 - LZMA\r
83       60 - Jpeg\r
84       61 - WavPack\r
85       62 - PPMd\r
86       63 - wzAES\r
87    02 - BZip\r
88       02 - BZip2\r
89    03 - Rar\r
90       01 - Rar15\r
91       02 - Rar20\r
92       03 - Rar29\r
93    04 - Arj\r
94       01 - Arj (1,2,3)\r
95       02 - Arj 4\r
96    05 - Z\r
97    06 - Lzh\r
98    07 - Reserved for 7z\r
99    08 - Cab\r
100    09 - NSIS\r
101       01 - DeflateNSIS\r
102       02 - BZip2NSIS\r
103 \r
104 \r
105 06.. - Crypto \r
106    00 - \r
107    01 - AES\r
108       0x - AES-128\r
109       4x - AES-192\r
110       8x - AES-256\r
111       Cx - AES\r
112 \r
113       x0 - ECB\r
114       x1 - CBC\r
115       x2 - CFB\r
116       x3 - OFB\r
117 \r
118    07 - Reserved\r
119    0F - Reserved\r
120 \r
121    F0 - Misc Ciphers (Real Ciphers without hashing algo)\r
122 \r
123    F1 - Misc Ciphers (Combine)\r
124       01 - Zip\r
125          01 - Main Zip crypto algo\r
126       03 - RAR\r
127          02 - \r
128          03 - Rar29 AES-128 + (modified SHA-1)\r
129       07 - 7z\r
130          01 - AES-256 + SHA-256\r
131 \r
132 07.. - Hash (subject to change)\r
133    00 - \r
134    01 - CRC\r
135    02 - SHA-1\r
136    03 - SHA-256\r
137    04 - SHA-384\r
138    05 - SHA-512\r
139 \r
140    F0 - Misc Hash\r
141 \r
142    F1 - Misc\r
143       03 - RAR\r
144          03 - Rar29 Password Hashing (modified SHA1)\r
145       07 - 7z \r
146          01 - SHA-256 Password Hashing\r
147     \r
148    \r
149 \r
150 \r
151 ---\r
152 End of document\r