• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package java.util.zip;
27 
28 /*
29  * This interface defines the constants that are used by the classes
30  * which manipulate ZIP files.
31  *
32  * @author      David Connelly
33  * @since 1.1
34  */
35 interface ZipConstants {
36     /*
37      * Header signatures
38      */
39     static long LOCSIG = 0x04034b50L;   // "PK\003\004"
40     static long EXTSIG = 0x08074b50L;   // "PK\007\008"
41     static long CENSIG = 0x02014b50L;   // "PK\001\002"
42     static long ENDSIG = 0x06054b50L;   // "PK\005\006"
43 
44     /*
45      * Header sizes in bytes (including signatures)
46      */
47     static final int LOCHDR = 30;       // LOC header size
48     static final int EXTHDR = 16;       // EXT header size
49     static final int CENHDR = 46;       // CEN header size
50     static final int ENDHDR = 22;       // END header size
51 
52     /*
53      * Local file (LOC) header field offsets
54      */
55     static final int LOCVER = 4;        // version needed to extract
56     static final int LOCFLG = 6;        // general purpose bit flag
57     static final int LOCHOW = 8;        // compression method
58     static final int LOCTIM = 10;       // modification time
59     static final int LOCCRC = 14;       // uncompressed file crc-32 value
60     static final int LOCSIZ = 18;       // compressed size
61     static final int LOCLEN = 22;       // uncompressed size
62     static final int LOCNAM = 26;       // filename length
63     static final int LOCEXT = 28;       // extra field length
64 
65     /*
66      * Extra local (EXT) header field offsets
67      */
68     static final int EXTCRC = 4;        // uncompressed file crc-32 value
69     static final int EXTSIZ = 8;        // compressed size
70     static final int EXTLEN = 12;       // uncompressed size
71 
72     /*
73      * Central directory (CEN) header field offsets
74      */
75     static final int CENVEM = 4;        // version made by
76     static final int CENVER = 6;        // version needed to extract
77     static final int CENFLG = 8;        // encrypt, decrypt flags
78     static final int CENHOW = 10;       // compression method
79     static final int CENTIM = 12;       // modification time
80     static final int CENCRC = 16;       // uncompressed file crc-32 value
81     static final int CENSIZ = 20;       // compressed size
82     static final int CENLEN = 24;       // uncompressed size
83     static final int CENNAM = 28;       // filename length
84     static final int CENEXT = 30;       // extra field length
85     static final int CENCOM = 32;       // comment length
86     static final int CENDSK = 34;       // disk number start
87     static final int CENATT = 36;       // internal file attributes
88     static final int CENATX = 38;       // external file attributes
89     static final int CENOFF = 42;       // LOC header offset
90 
91     /*
92      * End of central directory (END) header field offsets
93      */
94     static final int ENDSUB = 8;        // number of entries on this disk
95     static final int ENDTOT = 10;       // total number of entries
96     static final int ENDSIZ = 12;       // central directory size in bytes
97     static final int ENDOFF = 16;       // offset of first CEN header
98     static final int ENDCOM = 20;       // zip file comment length
99 }
100