File: Methods.txt

package info (click to toggle)
libphysfs 2.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,480 kB
  • ctags: 9,636
  • sloc: cpp: 30,944; ansic: 27,440; cs: 4,374; java: 3,077; makefile: 796; ruby: 461; perl: 59; sh: 8
file content (141 lines) | stat: -rw-r--r-- 2,668 bytes parent folder | download | duplicates (6)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
7-Zip method IDs (4.56)
-----------------------

Each compression or crypto method in 7z has unique binary value (ID).
The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes).

If you want to add some new ID, you have two ways:
1) Write request for allocating IDs to 7-zip developers.
2) Generate 8-bytes ID:

    7F ZZ ZZ ZZ ZZ ZZ MM MM 

    7F              - Prefix for random IDs (1 byte)
    ZZ ZZ ZZ ZZ ZZ  - Developer ID (5 bytes). Use real random bytes. 
                      
    MM MM           - Method ID (2 bytes)

    You can notify 7-Zip developers about your Developer ID / Method ID.

    Note: Use new ID only if old codec can not decode data encoded with new version.


List of defined IDs
-------------------
      
00 - Copy
01 - Reserved
02 - Common
   03 Swap
      - 2 Swap2
      - 4 Swap4
   04 Delta (subject to change)

03 - 7z
   01 - LZMA
      01 - Version
  
   03 - Branch
      01 - x86
         03  - BCJ
         1B  - BCJ2
      02 - PPC
         05 - BC_PPC_B (Big Endian)
      03 - Alpha
         01 - BC_Alpha
      04 - IA64
         01 - BC_IA64
      05 - ARM
         01 - BC_ARM
      06 - M68
         05 - BC_M68_B (Big Endian)
      07 - ARM Thumb
         01 - BC_ARMThumb
      08 - SPARC
         05 - BC_SPARC

   04 - PPMD
      01 - Version

   7F -
      01 - experimental methods.

   80 - reserved for independent developers

   E0 - Random IDs

04 - Misc
   00 - Reserved
   01 - Zip
      00 - Copy (not used). Use {00} instead
      01 - Shrink
      06 - Implode
      08 - Deflate
      09 - Deflate64
      12 - BZip2 (not used). Use {04 02 02} instead
   02 - BZip
      02 - BZip2
   03 - Rar
      01 - Rar15
      02 - Rar20
      03 - Rar29
   04 - Arj
      01 - Arj (1,2,3)
      02 - Arj 4
   05 - Z
   06 - Lzh
   07 - Reserved for 7z
   08 - Cab
   09 - NSIS
      01 - DeflateNSIS
      02 - BZip2NSIS


06 - Crypto 
   00 - 
   01 - AES
      0x - AES-128
      4x - AES-192
      8x - AES-256
      Cx - AES

      x0 - ECB
      x1 - CBC
      x2 - CFB
      x3 - OFB

   07 - Reserved
   0F - Reserved

   F0 - Misc Ciphers (Real Ciphers without hashing algo)

   F1 - Misc Ciphers (Combine)
      01 - Zip
         01 - Main Zip crypto algo
      03 - RAR
         02 - 
         03 - Rar29 AES-128 + (modified SHA-1)
      07 - 7z
         01 - AES-256 + SHA-256

07 - Hash (subject to change)
   00 - 
   01 - CRC
   02 - SHA-1
   03 - SHA-256
   04 - SHA-384
   05 - SHA-512

   F0 - Misc Hash

   F1 - Misc
      03 - RAR
         03 - Rar29 Password Hashing (modified SHA1)
      07 - 7z 
         01 - SHA-256 Password Hashing
    
   


---
End of document