File Coverage

blib/lib/IO/Compress/Zip/Constants.pm
Criterion Covered Total %
statement 126 126 100.0
branch n/a
condition n/a
subroutine 42 42 100.0
pod n/a
total 168 168 100.0


line stmt bran cond sub pod time code
1             package IO::Compress::Zip::Constants;
2              
3 111     111   2704 use strict ;
  111         220  
  111         4095  
4 111     111   547 use warnings;
  111         190  
  111         21305  
5              
6             require Exporter;
7              
8             our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
9              
10             $VERSION = '2.220';
11              
12             @ISA = qw(Exporter);
13              
14             @EXPORT= qw(
15              
16             ZIP_CM_STORE
17             ZIP_CM_DEFLATE
18             ZIP_CM_BZIP2
19             ZIP_CM_LZMA
20             ZIP_CM_PPMD
21             ZIP_CM_XZ
22             ZIP_CM_ZSTD
23             ZIP_CM_AES
24              
25             ZIP_LOCAL_HDR_SIG
26             ZIP_DATA_HDR_SIG
27             ZIP_CENTRAL_HDR_SIG
28             ZIP_END_CENTRAL_HDR_SIG
29             ZIP64_END_CENTRAL_REC_HDR_SIG
30             ZIP64_END_CENTRAL_LOC_HDR_SIG
31             ZIP64_ARCHIVE_EXTRA_SIG
32             ZIP64_DIGITAL_SIGNATURE_SIG
33              
34             ZIP_GP_FLAG_ENCRYPTED_MASK
35             ZIP_GP_FLAG_STREAMING_MASK
36             ZIP_GP_FLAG_PATCHED_MASK
37             ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK
38             ZIP_GP_FLAG_LZMA_EOS_PRESENT
39             ZIP_GP_FLAG_LANGUAGE_ENCODING
40              
41             ZIP_EXTRA_ID_ZIP64
42             ZIP_EXTRA_ID_EXT_TIMESTAMP
43             ZIP_EXTRA_ID_INFO_ZIP_UNIX2
44             ZIP_EXTRA_ID_INFO_ZIP_UNIXN
45             ZIP_EXTRA_ID_INFO_ZIP_Upath
46             ZIP_EXTRA_ID_INFO_ZIP_Ucom
47             ZIP_EXTRA_ID_JAVA_EXE
48              
49             ZIP_OS_CODE_UNIX
50             ZIP_OS_CODE_DEFAULT
51              
52             ZIP_IFA_TEXT_MASK
53              
54             %ZIP_CM_MIN_VERSIONS
55             ZIP64_MIN_VERSION
56              
57             ZIP_A_RONLY
58             ZIP_A_HIDDEN
59             ZIP_A_SYSTEM
60             ZIP_A_LABEL
61             ZIP_A_DIR
62             ZIP_A_ARCHIVE
63             );
64              
65             # Compression types supported
66 111     111   769 use constant ZIP_CM_STORE => 0 ;
  111         233  
  111         9133  
67 111     111   2267 use constant ZIP_CM_DEFLATE => 8 ;
  111         262  
  111         12318  
68 111     111   4647 use constant ZIP_CM_BZIP2 => 12 ;
  111         1422  
  111         6466  
69 111     111   1259 use constant ZIP_CM_LZMA => 14 ;
  111         217  
  111         5430  
70 111     111   695 use constant ZIP_CM_ZSTD => 93 ;
  111         437  
  111         5227  
71 111     111   740 use constant ZIP_CM_XZ => 95 ;
  111         240  
  111         5349  
72 111     111   604 use constant ZIP_CM_PPMD => 98 ; # Not Supported yet
  111         234  
  111         5356  
73 111     111   588 use constant ZIP_CM_AES => 99 ;
  111         241  
  111         6772  
74              
75             # General Purpose Flag
76 111     111   705 use constant ZIP_GP_FLAG_ENCRYPTED_MASK => (1 << 0) ;
  111         214  
  111         9556  
77 111     111   656 use constant ZIP_GP_FLAG_STREAMING_MASK => (1 << 3) ;
  111         246  
  111         6230  
78 111     111   745 use constant ZIP_GP_FLAG_PATCHED_MASK => (1 << 5) ;
  111         387  
  111         5860  
79 111     111   609 use constant ZIP_GP_FLAG_STRONG_ENCRYPTED_MASK => (1 << 6) ;
  111         272  
  111         5870  
80 111     111   586 use constant ZIP_GP_FLAG_LZMA_EOS_PRESENT => (1 << 1) ;
  111         219  
  111         5772  
81 111     111   643 use constant ZIP_GP_FLAG_LANGUAGE_ENCODING => (1 << 11) ;
  111         210  
  111         5853  
82              
83             # Internal File Attributes
84 111     111   625 use constant ZIP_IFA_TEXT_MASK => 1;
  111         233  
  111         5706  
85              
86             # Signatures for each of the headers
87 111     111   590 use constant ZIP_LOCAL_HDR_SIG => 0x04034b50;
  111         239  
  111         5256  
88 111     111   589 use constant ZIP_DATA_HDR_SIG => 0x08074b50;
  111         220  
  111         7148  
89 111     111   665 use constant packed_ZIP_DATA_HDR_SIG => pack "V", ZIP_DATA_HDR_SIG;
  111         256  
  111         5731  
90 111     111   565 use constant ZIP_CENTRAL_HDR_SIG => 0x02014b50;
  111         215  
  111         5795  
91 111     111   648 use constant ZIP_END_CENTRAL_HDR_SIG => 0x06054b50;
  111         210  
  111         6555  
92 111     111   629 use constant ZIP64_END_CENTRAL_REC_HDR_SIG => 0x06064b50;
  111         290  
  111         5741  
93 111     111   594 use constant ZIP64_END_CENTRAL_LOC_HDR_SIG => 0x07064b50;
  111         281  
  111         5153  
94 111     111   592 use constant ZIP64_ARCHIVE_EXTRA_SIG => 0x08064b50;
  111         236  
  111         6971  
95 111     111   555 use constant ZIP64_DIGITAL_SIGNATURE_SIG => 0x05054b50;
  111         229  
  111         5236  
96              
97 111     111   595 use constant ZIP_OS_CODE_UNIX => 3;
  111         243  
  111         5391  
98 111     111   588 use constant ZIP_OS_CODE_DEFAULT => 3;
  111         205  
  111         6488  
99              
100             # Extra Field ID's
101 111     111   599 use constant ZIP_EXTRA_ID_ZIP64 => pack "v", 1;
  111         225  
  111         6343  
102 111     111   701 use constant ZIP_EXTRA_ID_EXT_TIMESTAMP => "UT";
  111         268  
  111         10155  
103 111     111   718 use constant ZIP_EXTRA_ID_INFO_ZIP_UNIX2 => "Ux";
  111         262  
  111         7072  
104 111     111   673 use constant ZIP_EXTRA_ID_INFO_ZIP_UNIXN => "ux";
  111         264  
  111         5505  
105 111     111   581 use constant ZIP_EXTRA_ID_INFO_ZIP_Upath => "up";
  111         222  
  111         5558  
106 111     111   568 use constant ZIP_EXTRA_ID_INFO_ZIP_Ucom => "uc";
  111         195  
  111         6211  
107 111     111   596 use constant ZIP_EXTRA_ID_JAVA_EXE => pack "v", 0xCAFE;
  111         245  
  111         5655  
108              
109             # DOS Attributes
110 111     111   559 use constant ZIP_A_RONLY => 0x01;
  111         208  
  111         5212  
111 111     111   616 use constant ZIP_A_HIDDEN => 0x02;
  111         226  
  111         5078  
112 111     111   617 use constant ZIP_A_SYSTEM => 0x04;
  111         269  
  111         6504  
113 111     111   622 use constant ZIP_A_LABEL => 0x08;
  111         228  
  111         5306  
114 111     111   629 use constant ZIP_A_DIR => 0x10;
  111         221  
  111         5623  
115 111     111   579 use constant ZIP_A_ARCHIVE => 0x20;
  111         266  
  111         8367  
116              
117 111     111   574 use constant ZIP64_MIN_VERSION => 45;
  111         260  
  111         11137  
118              
119             %ZIP_CM_MIN_VERSIONS = (
120             ZIP_CM_STORE() => 20,
121             ZIP_CM_DEFLATE() => 20,
122             ZIP_CM_BZIP2() => 46,
123             ZIP_CM_LZMA() => 63,
124             ZIP_CM_PPMD() => 63,
125             ZIP_CM_ZSTD() => 20, # Winzip needs these to be 20
126             ZIP_CM_XZ() => 20,
127             );
128              
129              
130             1;
131              
132             __END__