src/lzma/Methods.txt
author Ryan C. Gordon <icculus@icculus.org>
Thu, 25 Feb 2016 01:16:42 -0500
changeset 1371 da48b9ff4c9b
parent 972 254427fc42ab
permissions -rw-r--r--
Fixed a comment.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
917
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     1
7-Zip method IDs (4.56)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     2
-----------------------
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     3
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     4
Each compression or crypto method in 7z has unique binary value (ID).
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     5
The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes).
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     6
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     7
If you want to add some new ID, you have two ways:
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     8
1) Write request for allocating IDs to 7-zip developers.
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
     9
2) Generate 8-bytes ID:
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    10
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    11
    7F ZZ ZZ ZZ ZZ ZZ MM MM 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    12
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    13
    7F              - Prefix for random IDs (1 byte)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    14
    ZZ ZZ ZZ ZZ ZZ  - Developer ID (5 bytes). Use real random bytes. 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    15
                      
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    16
    MM MM           - Method ID (2 bytes)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    17
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    18
    You can notify 7-Zip developers about your Developer ID / Method ID.
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    19
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    20
    Note: Use new ID only if old codec can not decode data encoded with new version.
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    21
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    22
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    23
List of defined IDs
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    24
-------------------
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    25
      
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    26
00 - Copy
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    27
01 - Reserved
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    28
02 - Common
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    29
   03 Swap
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    30
      - 2 Swap2
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    31
      - 4 Swap4
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    32
   04 Delta (subject to change)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    33
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    34
03 - 7z
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    35
   01 - LZMA
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    36
      01 - Version
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    37
  
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    38
   03 - Branch
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    39
      01 - x86
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    40
         03  - BCJ
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    41
         1B  - BCJ2
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    42
      02 - PPC
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    43
         05 - BC_PPC_B (Big Endian)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    44
      03 - Alpha
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    45
         01 - BC_Alpha
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    46
      04 - IA64
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    47
         01 - BC_IA64
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    48
      05 - ARM
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    49
         01 - BC_ARM
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    50
      06 - M68
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    51
         05 - BC_M68_B (Big Endian)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    52
      07 - ARM Thumb
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    53
         01 - BC_ARMThumb
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    54
      08 - SPARC
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    55
         05 - BC_SPARC
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    56
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    57
   04 - PPMD
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    58
      01 - Version
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    59
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    60
   7F -
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    61
      01 - experimental methods.
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    62
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    63
   80 - reserved for independent developers
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    64
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    65
   E0 - Random IDs
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    66
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    67
04 - Misc
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    68
   00 - Reserved
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    69
   01 - Zip
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    70
      00 - Copy (not used). Use {00} instead
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    71
      01 - Shrink
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    72
      06 - Implode
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    73
      08 - Deflate
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    74
      09 - Deflate64
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    75
      12 - BZip2 (not used). Use {04 02 02} instead
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    76
   02 - BZip
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    77
      02 - BZip2
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    78
   03 - Rar
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    79
      01 - Rar15
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    80
      02 - Rar20
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    81
      03 - Rar29
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    82
   04 - Arj
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    83
      01 - Arj (1,2,3)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    84
      02 - Arj 4
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    85
   05 - Z
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    86
   06 - Lzh
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    87
   07 - Reserved for 7z
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    88
   08 - Cab
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    89
   09 - NSIS
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    90
      01 - DeflateNSIS
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    91
      02 - BZip2NSIS
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    92
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    93
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    94
06 - Crypto 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    95
   00 - 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    96
   01 - AES
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    97
      0x - AES-128
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    98
      4x - AES-192
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
    99
      8x - AES-256
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   100
      Cx - AES
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   101
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   102
      x0 - ECB
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   103
      x1 - CBC
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   104
      x2 - CFB
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   105
      x3 - OFB
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   106
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   107
   07 - Reserved
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   108
   0F - Reserved
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   109
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   110
   F0 - Misc Ciphers (Real Ciphers without hashing algo)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   111
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   112
   F1 - Misc Ciphers (Combine)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   113
      01 - Zip
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   114
         01 - Main Zip crypto algo
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   115
      03 - RAR
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   116
         02 - 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   117
         03 - Rar29 AES-128 + (modified SHA-1)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   118
      07 - 7z
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   119
         01 - AES-256 + SHA-256
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   120
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   121
07 - Hash (subject to change)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   122
   00 - 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   123
   01 - CRC
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   124
   02 - SHA-1
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   125
   03 - SHA-256
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   126
   04 - SHA-384
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   127
   05 - SHA-512
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   128
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   129
   F0 - Misc Hash
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   130
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   131
   F1 - Misc
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   132
      03 - RAR
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   133
         03 - Rar29 Password Hashing (modified SHA1)
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   134
      07 - 7z 
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   135
         01 - SHA-256 Password Hashing
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   136
    
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   137
   
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   138
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   139
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   140
---
d299a58a274f Upgraded lzma sdk to 4.57.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
   141
End of document