content: /*
  * Copyright 2010 Srikanth Reddy Lingala  
  * 
  * Licensed under the Apache License, Version 2.0 (the "License"); 
  * you may not use this file except in compliance with the License. 
  * You may obtain a copy of the License at 
  * 
  * https://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, 
  * software distributed under the License is distributed on an "AS IS" BASIS, 
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  * See the License for the specific language governing permissions and 
  * limitations under the License. 
  */
  
  package net.lingala.zip4j.util;
  
  public interface InternalZipConstants {
  	
  	/*
       * Header signatures
       */
  	// Whenever a new Signature is added here, make sure to add it
  	// in Zip4jUtil.getAllHeaderSignatures()
      static long LOCSIG = 0x04034b50L;	// "PK\003\004"
      static long EXTSIG = 0x08074b50L;	// "PK\007\008"
      static long CENSIG = 0x02014b50L;	// "PK\001\002"
      static long ENDSIG = 0x06054b50L;	// "PK\005\006"
      static long DIGSIG = 0x05054b50L;
      static long ARCEXTDATREC = 0x08064b50L;
      static long SPLITSIG = 0x08074b50L;
      static long ZIP64ENDCENDIRLOC = 0x07064b50L;
      static long ZIP64ENDCENDIRREC = 0x06064b50;
      static int EXTRAFIELDZIP64LENGTH = 0x0001;
      static int AESSIG = 0x9901;
  
      /*
       * Header sizes in bytes (including signatures)
       */
      static final int LOCHDR = 30;	// LOC header size
      static final int EXTHDR = 16;	// EXT header size
      static final int CENHDR = 46;	// CEN header size
      static final int ENDHDR = 22;	// END header size
  
      /*
       * Local file (LOC) header field offsets
       */
      static final int LOCVER = 4;	// version needed to extract
      static final int LOCFLG = 6;	// general purpose bit flag
      static final int LOCHOW = 8;	// compression method
      static final int LOCTIM = 10;	// modification time
      static final int LOCCRC = 14;	// uncompressed file crc-32 value
      static final int LOCSIZ = 18;	// compressed size
      static final int LOCLEN = 22;	// uncompressed size
      static final int LOCNAM = 26;	// filename length
      static final int LOCEXT = 28;	// extra field length
  
      /*
       * Extra local (EXT) header field offsets
       */
      static final int EXTCRC = 4;	// uncompressed file crc-32 value
      static final int EXTSIZ = 8;	// compressed size
      static final int EXTLEN = 12;	// uncompressed size
  
      /*
       * Central directory (CEN) header field offsets
       */
      static final int CENVEM = 4;	// version made by
      static final int CENVER = 6;	// version needed to extract
      static final int CENFLG = 8;	// encrypt, decrypt flags
      static final int CENHOW = 10;	// compression method
      static final int CENTIM = 12;	// modification time
      static final int CENCRC = 16;	// uncompressed file crc-32 value
      static final int CENSIZ = 20;	// compressed size
      static final int CENLEN = 24;	// uncompressed size
      static final int CENNAM = 28;	// filename length
      static final int CENEXT = 30;	// extra field length
      static final int CENCOM = 32;	// comment length
      static final int CENDSK = 34;	// disk number start
      static final int CENATT = 36;	// internal file attributes
      static final int CENATX = 38;	// external file attributes
      static final int CENOFF = 42;	// LOC header offset
  
      /*
       * End of central directory (END) header field offsets
       */
      static final int ENDSUB = 8;	// number of entries on this disk
      static final int ENDTOT = 10;	// total number of entries
      static final int ENDSIZ = 12;	// central directory size in bytes
      static final int ENDOFF = 16;	// offset of first CEN header
      static final int ENDCOM = 20;	// zip file comment length
      
      static final int STD_DEC_HDR_SIZE = 12;
      
      //AES Constants
      static final int AES_AUTH_LENGTH = 10;
      static final int AES_BLOCK_SIZE = 16;
      
      static final int MIN_SPLIT_LENGTH = 65536;
      
      static final long ZIP_64_LIMIT = 4294967295L;
  	
  	public static String OFFSET_CENTRAL_DIR = "offsetCentralDir";
  	
  	public static final String VERSION = "1.3.2";
  	
  	public static final int MODE_ZIP = 1;
  	
  	public static final int MODE_UNZIP = 2;
  	
  	public static final String WRITE_MODE = "rw";
  	
  	public static final String READ_MODE = "r";
  	
  	public static final int BUFF_SIZE = 1024 * 4;
  	
  	public static final int FILE_MODE_NONE = 0;
  	
  	public static final int FILE_MODE_READ_ONLY = 1;
  	
  	public static final int FILE_MODE_HIDDEN = 2;
  	
  	public static final int FILE_MODE_ARCHIVE = 32;
  	
  	public static final int FILE_MODE_READ_ONLY_HIDDEN = 3;
  	
  	public static final int FILE_MODE_READ_ONLY_ARCHIVE = 33;
  	
  	public static final int FILE_MODE_HIDDEN_ARCHIVE = 34;
  	
  	public static final int FILE_MODE_READ_ONLY_HIDDEN_ARCHIVE = 35;
  	
  	public static final int FILE_MODE_SYSTEM = 38;
  	
  	public static final int FOLDER_MODE_NONE = 16;
  	
  	public static final int FOLDER_MODE_HIDDEN = 18;
  
  	public static final int FOLDER_MODE_ARCHIVE = 48;
  	
  	public static final int FOLDER_MODE_HIDDEN_ARCHIVE = 50;
  	
  	// Update local file header constants
  	// This value holds the number of bytes to skip from
  	// the offset of start of local header
  	public static final int UPDATE_LFH_CRC = 14;
  	
  	public static final int UPDATE_LFH_COMP_SIZE = 18;
  	
  	public static final int UPDATE_LFH_UNCOMP_SIZE = 22;
  	
  	public static final int LIST_TYPE_FILE = 1;
  	
  	public static final int LIST_TYPE_STRING = 2;
  	
  	public static final int UFT8_NAMES_FLAG = 1 << 11;
  	
  	public static final String CHARSET_UTF8 = "UTF8";
  	
  	public static final String CHARSET_CP850 = "Cp850";
  	
  	public static final String CHARSET_COMMENTS_DEFAULT = "windows-1254";
  	
  	public static final String CHARSET_DEFAULT = System.getProperty("file.encoding");
  	
  	public static final String FILE_SEPARATOR = System.getProperty("file.separator");
  	
  	public static final String ZIP_FILE_SEPARATOR = "/";
  	
  	public static final String THREAD_NAME = "Zip4j";
  	
  	public static final int MAX_ALLOWED_ZIP_COMMENT_LENGTH = 0xFFFF;
  }
  