misc/libphysfs/lzma/Methods.txt
author nemo
Mon, 10 Apr 2017 12:06:43 -0400
changeset 12218 bb5522e88ab2
permissions -rw-r--r--
bulk copy of latest physfs to our misc/libphysfs since this seems to fix an off-by-1 error reliably hit in readln read of 1 byte probably introduced in the addition of the buffered read. Whether this is excessive or whether libphysfs should even be maintained by us is another matter. But at least we shouldn't crash

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